Content

Overview

Reports

Execute Reports

Run Report

About Report Parameters

Example Reports

List Page Integration of Jasper Reports

Using Jaspersoft Studio with LabVantage

Business Objects Report Registration

Registering Reports

Viewing Reports through the URL

Connection Test

 

Controlled Reports

Overview

Mechanics

Pages

Creating a Controlled Report

Generating an Event

Viewing an Event

Viewing a List of Events

Report Generation Checks

AdhocQuery Reports

Embedded Jasper Reports

 

Overview

Top ../images/arwup.gif (846 bytes)

This topic covers two variants of Report List and Maintenance pages that are provided with LabVantage:

Reports (System Admin → Reporting → Reports) lets you register new Reports and define parameters (arguments).
Execute Reports (LIMS → Reports → Execute Reports) lets you run reports.

This topic concentrates on the operation and use of the LabVantage Reporting interfaces. As provided, LabVantage uses TIBCO Jasper Reports to generate Reports. Please see Execute Reports and List Page Integration of Jasper Reports. Accordingly, the topic Using Jaspersoft Studio with LabVantage is also provided to assist in generating custom Jasper Reports. This covers operations such as:

Installing Jaspersoft Studio   Using the Wizard to Create a New Report
Creating a Data Adapter   PDF/A Support for Jasper Reports
Configuring a Project   Using Unicode in Jasper Reports
Importing LabVantage Templates into your Library   Rich Text Support in Jasper Reports
Importing LabVantage OOB Reports into a Project      

For a broad overview of LabVantage Reporting features, see Concepts of Reporting. Supported versions of reporting software are specified in the "Installation Requirements" section of the LabVantage Installation Documentation.

 

Reports

Top ../images/arwup.gif (846 bytes)

Access the Report Maintenance page through the Report List page. There are several "Report List" pages. The example below is the SapphireReportList page at System Admin → Reporting → Reports:

The Report Maintenance page lets you register new Reports and define parameters (arguments):

Fields of the "Report" element:

Field Description
Report Identifier of the Report.
Type

Manufacturer of the reporting engine used to generate the source file: Jasper Reports, Talend, Java, or Business Objects.

Type Choose if you want to...
Jasper Upload a single Jaspersoft report design. This can be either a JRMXL file or a JASPER file.
BOXI Upload a report design file that you have designed in Business Objects. This requires that you have set your BO settings in your System Configuration or individually in a user's profile.
Java Upload a JAR file. This code needs to be compiled outside of LabVantage. The code will be dynamically loaded when the report is run. This will be accomplished as an attachment to the Report. Alternatively, place your code in the classpath of your server. An additional "Report Libraries" detail is available after save. An example of a Java report can be found in the example embedded in the JavaDoc of the BaseJavaReport.java
Talend Similar to the Java option, upload a library of files that you have developed using the Talend ETL design tool. This could be one or more JAR files exported as a Job from the Talend Studio designer.
Embedded Jasper Similar to the Java option, upload a ZIP file that contains a set of files. In the Location field (below) identify the file that is the 'main' report. The other files in your ZIP could be subreports, images, icons, or other items exported from Jaspersoft Studio.
Description Description of Report content.
Version Version number of the Report.
Version Status Version Status of the Report.
Location

Applicable when the Type is set to Jasper, Embedded Jasper, or BOXI. This opens a lookup that lets you choose the allowed file type (according to policy) for Jasper Reports or BO. When the Type is set to "Embedded Jasper", the Location is no longer a lookup. In this case, enter the name and extension of the file that is the 'main' report in the ZIP that you will attach using the "Report Libraries" detail tab (available after a Save).

As provided, the lookup is configured to browse "client-side" (providing access to files residing on the local machine). As described below, it can also be configured to browse "server-side". This would provide access to files residing on the machine hosting the application server. The lookup mechanism involves the File Location Policy and the maint Element for the Report Maintenance page:

In the File Location Policy, the "File Location" property for the "ReportLookUp → Custom" node is set to [applicationhome]/reports.
In the maint Element for the Report Maintenance page, the "Columns → Lookup URL → HRef" property for the "Location" column uses the reportLookup JavaScript method to open the lookup:

reportLookup(fieldid, report_root, reporttype, locationpolicy, subdir, accessServerReport)

The "subdir" parameter lets you specify the subfolder under [applicationhome]/reports. In the OOB configuration, subdir is set to "Custom", so files will be saved under [applicationhome]/reports/Custom:

JavaScript:reportLookup('pr0_librarydir','','pr0_reporttypeflag_radio','ReportLookUp','Custom')

You can also pass in a multilevel subfolder (such as "Custom/Uploads"). Note that this allows subfolders to be created only in the root of the "File Location" upload folder configured in the File Location Policy.

The lookup can also be configured for server-side browse (LabVantage 8.3 behavior) by setting the "accessServerReport" parameter to "Y". The default (if not specified) is "N" (client-side browse). The following example shows this method configured for a "Custom" subfolder with server-side browse enabled, both indicated by red text:

JavaScript:reportLookup('pr0_librarydir','','pr0_reporttypeflag_radio','ReportLookUp','Custom','Y').

After you select your jrxml file, the "Location" is shown (assuming the "Custom" subdirectory in the OOB configuration) as Custom/ReportName.jrxml and saved in APPLICATION_HOME\reports\Custom. If the file already exists in the upload path, it is not overwritten; rather, it is automatically renamed using a numerical suffix (ReportNamennn.jrxml, where nnn = 001 through 00n).

Java Object Name (including package)

Applicable when the Type is Java or Talend.

Type Example
Java

The "java object name" is stored in the report.objectname column. "Report Libraries" tab includes all the dependant jars for this java report. Alternatively, you can store the JAR file in the classpath on your application server.

Example: sapphire.report.QCBatchRunFile

Talend

A Job has been exported from Talend.

Example: project_name.job_name_0_1.Class

labvantage.instrument_run_file_0_1.Instrument_Run_File

"Default Output Format" and "Add PDF Watermark" are not supported for Java/Talend report types.

NOTE:   Dynamic loading of a class file in a JAR could require that you adjust your Security Policy to allow this. See the "Java Based Attachments" properties in this policy for allowing JAR files on reports.
Default Output Format

Alternate Output Format

These determine the output formats that will be available when the Report is run (see Run Report). If neither is specified, all supported formats are available. If a "Default" is specified, that will the selected format when the Report Execution dialog opens. If an "Alternate" is specified, it will also be available in addition to the default.
SDCID This determines the Report definitions used for different SDCs. The Reports popup dialog (when running new Reports) uses this field to filter the compatible Reports for this SDC in the dropdown.
Generate Report Event This is used to generate Controlled Reports. Setting this to Yes generates the events specified in the Report Event element. See Controlled Reports below.

Fields of the "Report Parameters" element:

Field Description
Param Identifier of the parameter.
Param Name in Report Name of the parameter as it appears in the report.
Required When checked, the parameter is a required input.
title title of the parameter as it appears in the report.
Type Determines how the value of the parameter is entered in the prompt:
Type Choose if you want to... Comments
String Enter a non-numeric text value. Passed to a Jasper report without quotes.
Number Enter a numeric value.  
Date Choose a date/time value (renders a calendar). Passed to a Jasper report without quotes, and in the Application Server's locale format.
Date Only Specify Date without Time. Passed as a date. Dates with no time are always represented as midnight. For example, 'today' is [date] 00:00:00
SDC Enter the identifier of an SDI. Use the "Param From SDC" field to qualify which SDC to use. Frequently, a lookup page is leveraged to assist in choosing the primary key value from the SDC in question. Enter this lookup page URL in the "Look Up URL" field. 
SDC DropDown Choose from a dropdown list of SDIs. If a description is available, the dropdown will show the description while passing the primary key value. If the SDI has no description, the identifier is shown in the dropdown. Passed to a Jasper report without quotes.
SQL DropDown Use a query to create a list of values for selection in a dropdown. If a description is available, the dropdown will show the description while passing the primary key value. If the SDI has no description, the identifier is shown in the dropdown. Enter your SQL statement in the "Param From SQL" field. This will be pure database SQL. Example:
select departmentid from department where workareatype = 'Analytical' order by 1
SQL DropDown Combo Use a query to create a list of values for selection in a dropdown. This type of list will only return the identifier and will not show a description. Enter your SQL statement in the "Param From SQL" field. This will be pure database SQL. Example:
select departmentid from department where workareatype = 'Analytical' order by 1
Ref Type Choose from a dropdown list of Reference Type values. Use the 'Ref Type' field to identify the reference type.
Multiple List Select from a list of parameter values. For example, for the keyid1 param, the param name in the report is SAPPHIRE_KEYID1List. If your SQL is "select s_sampleid from s_sample", running the Report returns the multiple list, which (in this example) would be the list of Sample KeyId1 values. Passed to a Jasper report as a string of multiple values with delimiting apostrophes and comma separators (such as 'asdf','asdf','asdf'). The Jasper parameter must be defined to accept a multi list, expressed by defining the parameter syntax in the query using an exclamation point, i.e., $P!{PARAMNAME} 
Hidden Make the parameter a hidden field.  
RefType If the Type is a Reference Type, choose the Reference Type.
Param from SDC If the Type is an SDC, choose the SDC.
Lookup URL URL for the page used to choose the parameter value.
Param from SQL If the Type is SQL, enter the SQL statement.
Default Value Default value for the parameter.

At runtime for any Jasper report, LabVantage will automatically pass the below parameters to the report engine. You may use them in your report design as query criteria, parameter values to be printed, or simply as variables for conditional formatting. If you design a new report using a LabVantage template, these parameters will be defined for you to use as required.

System Parameter Description
SAPPHIRE_ReportRoot This is the starting point for all subdirectories on the application server where the report definitions can be found. LabVantage Home, Applicaiton Home, and Applicaiton Name are defined during the installation. The default Report Root is LABVANTAGE_HOME\APPLICATION_HOME\[application_name]\reports.
SAPPHIRE_ReportPath Path to the jrxml or jasper file on the Application Server. The report uses this parameter to locate referenced images in any subdirectories.
SAPPHIRE_ReportName Name of the report file when uploaded. This is taken from the OBJECTNAME column when you registered the report in LIMS.
SAPPHIRE_ReportID

SAPPHIRE_ReportVersion

Key Ids of the Report SDI. The Version number is used in the footer of the standard reports.
SAPPHIRE_ReportTitle Value for "Description" provided when you registered the report in LabVantage
SAPPHIRE_RSETID RSet Id passed to the report. It is expected that the report's SQL will join against records in the RSetItems table to locate SDIs to report. Using an RSet ID may be required when you have more than 256 characters to pass for KeyID1
SAPPHIRE_KeyID1List

The textual value(s) of the primary key(s) for items selected on a list page in LabVantage. In production, reports should use the RSet ID if it is expected that users will want the results of a query on a list page to be printed on a report. This parameter is limited to holding 255 characters. For example, if a user selects the values John, Mary, and Richard on a list page, the SAPPHIRE_KeyID1List value will be:

'John', 'Mary', 'Richard'

SAPPHIRE_KEYID1

The textual value of the primary key for a record selected from a list page.

SAPPHIRE_SDCID SDC Id for the passed-in KEYID1 or RSETID. This will be the SDCID of the calling List Page.
SAPPHIRE_KEYID2

SAPPHIRE_KEYID3

Additional parts of the KEYID for muti-keyed SDCs.
SAPPHIRE_CurrentUser sysuserid of the current user.
SAPPHIRE_DatabaseName Database connection name for the database executing the report.
SAPPHIRE_REPORTEVENTID

Identifier of the report event. This is generated by LabVantage at runtime when the report has event tracking enabled (below). This will be a combination of the Base Report Event ID and the Event Version.

Example: 1000000-1

where the event number is 1000000 and this is the first time this report was run for this KEYID1
SAPPHIRE_BASEREPORTEVENTID Report Event number. This number does not include the version. See Report Event ID for the unique identifier.
SAPPHIRE_REPORTEVENTVERSIONID The Report Event version. This will start at one and increment when a user re-executes the report for the same KEYID1.

For example, when a Report is created with a Report Event id of "1000451-1" then BASEREPORTEVENTID will be "1000451" and REPORTEVENTVERSIONID will be "1".

SAPPHIRE_PRIORREPORTEVENTID

Identifies the Report Event ID which is the parent to this version of the report execution.

Example: 1000451-1 will be the Prior Report Event ID for 1000451-2

This happens when event version 2 replaces version 1.

SAPPHIRE_CONNECTIONID

This parameter is automatically supplied by LabVantage when a user executes the report from within the application. The LabVantage JasperReportScriptlet allows you to call the getAttachment method. This method will either render the image for picture type attachments or render a thumbnail for document attachments. Images are converted to byte data. That data is then interpreted by the report as an image and displayed. A SAPPHIRE_CONNECTIONID is required when calling the getAttachment method. This will require 6 input parameters. These are sdcid, keyid1, keyid2, keyid3, attachmentNum, and connectonId.

Here is an example: $P{REPORT_SCRIPTLET}.getAttachment($F{SDCID}, $F{KEYID1}, $F{KEYID2}, $F{KEYID3}, $F{ATTACHMENTNUM}, $P{SAPPHIRE_CONNECTIONID})

Using the above as an image expression assumes that you have fields and parameters for these on your report. It also assumes that thumbnails have been generated for your attachments when you upload these to LabVantage.

SUBREPORT_DIR This is not a system generated value. However, you may find it in some of the example reports supplied with your installation.  It is useful to define this in your report then re-use it when referring to subreports within the main report. For example, you might set SUBREPORT_DIR to "/subreports/" then simply refer to $P{SUBREPORT_DIR} + "mysubreport.jasper" within the report.

 

Execute Reports

Top ../images/arwup.gif (846 bytes)

Run Report

 

"Run Report" executes the selected Report from the Report List page (System Admin → Reporting → Reports).

Some standard reports require parameters to be passed through. Examples of required parameters are KEYID1, RSETID, and SDCID. If LabVantage detects that your report accepts an RSETID parameter, LabVantage will require you to supply these. The report engine will return an error message if you do not give a required value. The SDCId and KeyId1 are always passed when you launch the report from a list page. These Reports cannot be run from Report List page (ReportExecList) because it does not pass an appropriate SDI or SDC into the Report parameters.

First, select a Report that does not expect an RSETID.

After selecting the Report, click "Run Report". This opens this "Report Execution" dialog offering options for output file location, file format and arguments to be satisfied in the Report.

A "Report Argument" example is shown above for the Sample Detail Report, which requires the SDI KeyId1 of the Sample to be input as an argument.

Output Format for Jasper can be "PDF", "XLSX", "XLS", "DOCX", "DOC", "CSV", "RTF", "HTML". For Business Objects it can be "PDF", "XLS", or "HTML". This depends on the Default and Alternate output format properties configured when you registered the report. If you require a PDF/A compliant format, see PDF/A Support for Jasper Reports.

"Output To" determines the destination of the generated Report:

Option Description
View on local window If the "Output Format" is "PDF", the Report opens in a dialog window as shown in the example below. "XLSX", "DOCX", and "CSV" stores the generated file in the browser's download location.
Print to Printer Choose a Printer from the dropdown, choose the Report Arguments (if required), then click "Run Report". The Report is printed on the destination Printer.
Email to Address Provide the email address to which the Report will be mailed. The default filename for Reports is reportid_[currentuser]_[currentdatetime] (such as SampleDetail_ss_Jul-24-2017-10-50-45.xlsx). You can also provide your own name in the "File Name" field. When specifying a filename, you can use the tokens [currentuser], [currentdate], and [currentdatetime]. You can also use [param1] and [param2] to indicate the value of parameters (arguments). Example: [currentuser]_[currentdatetime]_[param1]_report.
File Name to Export The Report will be saved on the local machine. Specify the File Name.

About Report Parameters

 

Note that to run a Report, you must specify any required "Report Parameters" (arguments). If Report Parameter "A" depends on Report Parameter "B", choosing "A" automatically populates "B". To support this "cascading population", write your query in the Report Maintenance page using this example as a guideleine:

param1 select s_sampletypeid from s_sampletype
param2 select s_sampleid from s_sample where sampletypeid='[param1]'

Here's how this example appears in the Report Maintenance page:

Since this example indicates that param2 is dependent on param1, choosing the value of param1 populates param2. This feature is intended to be compatible with pre-LabVantage R5.1 (DM0502) Report pages.

Here's how Report Parameter selection appears:

Note that the dropdown for param2 is empty. This is because param1 has not been chosen. If you choose a value for param1, the param2 dropdown of param2 will be populated based on the value chosen for param1.

Example Reports

 

LabVantage supplies 38 example reports with your installation. These are using the included Jasper reports engine. You may modify the report definitions found in LABVANTAGE_HOME\applications\APPLICATION_HOME\reports\OOB on your LabVantage server. Please see Using Jaspersoft Studio with LabVantage

 

List Page Integration of Jasper Reports

Top ../images/arwup.gif (846 bytes)

Use the Button operations to convert the contents of a List page into a PDF or Excel report, and view one of these reports from the List page. The resulting *.jasper and *.jrxml files are stored in LABVANTAGE_HOME\applications\APPLICATION_HOME\reports\generated.

Operation Description
View as PDF Converts the List page columns into a PDF and opens Acrobat:

View as Excel Exports the List page columns to a spreadsheet and opens Excel:

Choose Report Prompts for the report to open, then opens the selected report:

Custom Report buttons can be added to an SDI List page by defining them in the "Buttons → Standard Button Properties" collection of the advancedtoolbar Element for the List page. The output format is defined by the "displaytype" rc attribute of the "Link URL" property, e.g.,

rc?command=viewreport&displaytype=xlsx
rc?command=viewreport&displaytype=docx
rc?command=viewreport&displaytype=csv

Optionally, choose to leave off the displaytype when the Report defines its default type.

 

Using Jaspersoft Studio with LabVantage

Top ../images/arwup.gif (846 bytes)

For an example configuration of Jaspersoft Studio for use with the LabVantage application, plus other information to assist in generating custom Jasper Reports, see Using Jaspersoft Studio with LabVantage.

 

Business Objects Report Registration

Top ../images/arwup.gif (846 bytes)

Registering Reports

 

As explained in Concepts of Reporting, LabVantage recognizes a Report only if you register it. During registration, LabVantage presents a lookup of Reports configured in the repository. After you specify a root folder in which all Reports will be stored, all Reports below this folder are shown in a Lookup page. You then choose a Report to register. After selecting the report, LabVantage looks in the BO repository to determine its parameters (arguments) and displays them in the "Report Parameters" detail. You then specify how LabVantage prompts for these values (including the Data Type). Options include dropdowns, SDC lookups, string entry, and dates. All of this is used during runtime execution of the report.

If the total number of items in the Business Objects root folder (folders, reports, other files) exceeds the value defined by the Business Objects "defaultpagesize" property, you will experience these problems:

The path of the report may be incorrectly rendered while registering the report.
Some reports may exist the searched folder but are not rendered in the LabVantage Lookup page.

To resolve this, increase the value defined by the "defaultpagesize" property. Typically, you would set this to be greater than the number of items in the Business Objects root folder.

This property is in the Business Objects file "dsws.properties", which is located in

<BO root>\Tomcat\webapps\dswsbobje\WEB-INF\classes

where <BO root> is the Business Objects root folder, e.g., C:\Program Files\Business Objects.

Viewing Reports through the URL

 
Overview

Any registered report can be executed and viewed through the URL

http://hostname:8080/labvantage/rc?command=viewreport&reportid=SampleDetail&displaytype=pdf

Note that "displaytype" can also be "xls" or "html".

Based on the registered prompts, LabVantage solicits information from the user. Below is a representative prompt page with a Sample Template dropdown.

Other prompt options can be chosen, such as SDC lookups and dropdowns. The report is executed after prompts have been answered and the user clicks OK. After executing the report, the corresponding file is returned from the BOServer and presented using the BO native viewer. Below is the PDF viewer showing report results.

Suppressing Prompts

To suppress any prompts generated by a Report:

1. Add this parameter to the viewreport Request Controller command:

&mode=submitarg

This indicates that an argument is being submitted in the URL and the prompt page should be bypassed.

2. Pass the arguments into the URL using the ParamNameIn Report string as the parameter.

The parameter defined in the param column of the Report registration should be passed in (not the param name in the Report). LabVantage should then find the parameter name and substitute that during the call to BO. This provides a more descriptive definition of the parameters better than Business Object's prompts.

Connection Test

 

The System Configuration User Options (System Admin → System Configuration) contain a"Test Connection" button that establishes a connection to the BO server and tests the BO-LabVantage connection and configuration.

 

Controlled Reports

Top ../images/arwup.gif (846 bytes)

Overview

 

"Controlled Reports" refers to a process that generates a unique event whenever a report is:

Printed   Exported to a file
Emailed   Viewed

The event records:

The user who triggered it.   What happened as a result of the event.
When it was triggered.   The SDIs recorded in the report.
NOTE:   The ReportEvent records each and every execution of a Report marked as a Controlled Report. Each execution gets a unique id and may require confirmation. The full traceability to this report output is maintained by recording who and when it was reported, along with who Confirmed the report, and when. A copy of the report itself is stored in this table.

The Reports button (available on select list pages) opens the Report History Events dialog. This shows the details of Controlled Report Events.

See Button Operations for information about the operations available in this dialog.

In general, this feature works for both Jasper and Business Objects reports. However, the two differ in how the Controlled Report engine finds paramnames (arguments) and fieldnames corresponding to SDC and SDI keys. This is described in Passing SDCs to Reports.

Mechanics

 

Generating a Controlled Report creates a unique event for a ReportId, and populates these columns in the Report table:

Column Description
ControlledFlag Indicates whether or not this is a Controlled Report.
GenViewEventFlag Specifies whether or not to generate an event when a Report is viewed.
GenReprintEventFlag Specifies whether or not to generate an event when a Report is reprinted.
GenSdilogFlag Indicates that sdcid and keyid1list have been passed into the Report. If so, the next four columns apply.
ReportedSDC SDC for the SDI being reported.
Keyid1Value
Keyid2Value
Keyid3Value
Values of the SDI KeyId1, KeyId2, and KeyId3.
InitialDisposition This value is used to populate the Disposition column (in the ReportEvent table) when the first event is triggered for a report.

The ReportEvent table holds events:

Column Description
ReportEventId (PK) Identifier for the Report event.This is automatically generated, but it uses the SequenceProcessor class to generate the AutoKey (rather than the SDI AutoKey generator).
ReportId (FK) Not null.
ReportVersionId (FK) Not null.
CreateBy LabVantage user who created the event.
CreateDt Date/time the event was created.
ModBy LabVantage user who last modified the event.
ModDt Date/time the event was last modified.
ReviewBy LabVantage user who reviewed (confirmed or rejected) the event.
ReviewDt Date/time the event was reviewed.
EventType Type of event.Can be view, print, email, export, reprint.
DisplayType How the report is displayed (pdf, excel, html).
ParentEventId If the event is reprint, reprint is considered the child event. ParentEventId is the identifier of the parent event (the event that previously printed the report).
ReportPrint Format for the printed Report (blob, pdf, excel, html, jasperprint).
Disposition Reference Type indicating the condition of the event (confirmed, rejected, pending).

NOTE: Like the GenerateReport Action properties, this table also contains columns to specify Report destination (such as printerid, emailtolist, filename).

The ReportEventItem table holds:

Column Description
ReportEventId Identifier for the Report event.
ReportEventItemId Identifier for the Report event item.
ItemSDCId SDC for the SDI being reported.
ItemKeyId1
ItemKeyId2
ItemKeyId3
Values of the SDI KeyId1, KeyId2, and KeyId3.

Pages

 

These pages support maintenance of Controlled Reports. Both are described in the example following this section.

Page Based on Page Type... Description
Report Event List SDI Maintenance List Lists events. View this page from the Reports tramline (shows all events) or an instance list page (shows the Report Events for the selected instances).

As with all List pages, use it to search for and confirm events, e.g., "search for all unconfirmed events".

Report Event View ReportEventView Lists events, along with the SDIs associated with each event. This uses a dataview Element to show all report events for selected SDIs (initially grouped by SDI). Columns are configurable. Inputs are SDCId, KeyId1, KeyId2, KeyId3.

Creating a Controlled Report

 

An example of how to create a Controlled Report:

1.

Go to System Admin → Reporting → Reports.

2.

The Report List page opens.  Select one of the OOB Jasper Reports (this example uses SampleDetail), then click Edit.

3.

The Edit Report page opens:

These are the fields applicable to Controlled Reports:

In the Report detail:

Field Description
Generate Report Event Generates the events specified in the Report Event detail (next item below).

In the Report Event detail:

Field Description
Auto Report Confirmation When the event is first triggered for a Report, sets the status of the event to "Confirmed". When not automatically Confirmed the confirmation must be done manually.
Add Watermark When printing Controlled Reports with the "Auto Report Confirmation" field set to "No" and the "Add Watermark" field set to "Yes", the "Pending Confirmation" watermark is added in the background of the Report.
Generate View Event Generates an event when the View button is clicked for a Report.
Generate Reprint Event Generates an event when the Redo Event button is clicked for a Report.
Log SDI Reported This is an optional feature to be chosen only if you have passed an SDC and its keys into the Report.  If so, specify the next four values, and read Passing SDCs to Reports below.
SDCID Value SDC for the SDI being reported. Choose the subset of the Reports for a given SDCID using the Reports Dialog.
KeyId1 Value
KeyId2 Value
KeyId3 Value
Values of the SDI KeyId1, KeyId2, and KeyId3.
Passing SDCs to Reports

When passing in SDCId, KeyId1, KeyId2, and KeyId3:

a.

If the Report is populated by an SDI List page, the List page automatically passes in [sdcid] and [keyid1,2,3].

b.

If you pass in a variable, functionality differs between Jasper and Business Objects (BO).  For example, if you pass in [mydepartment] to hold the KeyId1 value of a Department SDC, the report is checked to see if there is a paramname (argument) called "mydepartment":

 
(1)

Jasper and BO:  If there is, it will get the value of the paramname.

 
(2)

Jasper only:  If not, the report is checked to see if there is a fieldname called mydepartment.  If there is, it will get the value of the fieldname.

For this to work, the sapphire.report.JasperReportScriptlet class (or its subclass) must be registered as the "scriptlet class" for the report.

Example

Here is an example using one of the OOB Jasper Reports (Sample Detail).  Set and save these values, then go to the next section "Generating an Event". 

Field Value
Generate Report Event Yes
Generate View Event Yes
Generate Reprint Event Yes
Log SDI Reported No
SDCID Value
KeyId1 Value
KeyId2 Value
KeyId3 Value
None (leave these blank).  We will be populating the Report from an SDI List page, so we do not need to specify the SDI (as described in Passing SDCs to Reports above).

Generating an Event

 

An example of how to generate an event:

1.

Go to LIMS → Samples → Manage.

2.

The Sample List page opens. Select a Sample, then click Print Sample Detail (Other Tasks Menu):

3.

When the PDF opens, a "View" event has been generated:

4.

Close the PDF.

Viewing an Event

 

An example of how to view an event:

1.

In the Sample List page, click Reports:

2.

The Report History Events page opens, showing the event:

Button operations:

Button Functionality
Create New Report Lets you create a new Report. From the dropdown list choose the Report to create. Reports available in the dropdown list are determined by the selected SDIs SDCID value. Reports having the same SDCID field in the Report Maintenance page are displayed.
View Provides a detailed view of the Report Event.
Confirm Lets you manually Confirm the Report. Confirming the Report could either determine that the content is correct (a means of signing the Report) or simply confirm that the Report printed correctly.

This Opens an ESig.  If you OK the ESig, the Disposition changes to Confirmed and the Pending Confirmation Watermark is removed (the stored copy of the Report for this event does not contain the watermark). The Report can be officially printed.

Reject Opens an ESig.  If you OK the ESig, the Disposition changes to Rejected.
ReGenerate Report Regenerates the selected Report. ReGenerating a Report reruns the Report with the same input parameters and creates a new Report Event entry. The status of the previous Report Event becomes "Replaced". The new Report Event references the previous Event in the "Replaces ID" column. A new version of the Report is stored and the version number in the ReportID is incremented by 1.

The replaced Report is listed in the footer of replacement CofA Reports.

Reset to Pending This is used if the Report was incorrectly Confirmed or Rejected, lets you reset the status back to "Pending".

Opens an ESig.  If you OK the ESig, the Status changes to "Pending". You can only reset "Confirmed" or "Rejected" reports.

To view the generated report, click the Report Icon within the list.
Refresh The Report Event may not appear, as the system cannot always know when a Report Event has been created. In such cases, clicking the "Refresh" button refreshes the dialog and shows the new Report Event.
NOTE:   The "Refresh" button is available in LabVantage 8.4.1 and higher LabVantage 8.4.x Maintenance Releases.

Viewing a List of Events

 

An example of how to view a list of events:

1.

Go to LIMS → Reports → Report Events.

2.

The Report History List page opens, showing ReportEventIds:

3.

View, Confirm, Reject, ReGenerate Report and Reset To Pending work the same as in the Report Event View page (shown in Viewing an Event).

Report Generation Checks

 

If you attempt to generate a Controlled Report for a KeyId that is already associated with a Report Event you are prompted with a warning to the effect that the Controlled Report already exists.

Button Functionality
View Prior Report Shows the previously generated Report
Print New Report Regenerates the Report and displays it. The Report ID Version is incremented by 1 each time the Report is regenerated. When viewing the Report History Events dialog, the Report ID includes the Version number and the "Replaces ID" column indicates the prior Report (previous version).

 

Adhoc Query Reports

Top ../images/arwup.gif (846 bytes)

Adhoc Query Reports forward you to an Adhoc Query page. See Adhoc Queries for details concerning functionality and use.

 

 

Embedded Jasper Reports

Top ../images/arwup.gif (846 bytes)

Embedded Jasper Reports are available when the report you want to register is not a self-contained singular file. An alternative to this approach is to use remote desktop or a file share to upload your files when available. If the report references a sub-report, image, or other external file, use the below steps to package these into a ZIP file for uploading through the Report Libraries detail.

 

  1. Open your report in Jaspersoft Studio


  2. Right-click the report in the navigation tree and select Export.


  3. Select Archive File and click Next.


  4. Make sure the main report is selected.


  5. Find and tick to select any other files such as sub-reports, images, and others.  
  6. Set a name and browse to a location where you want to export your archive file. Set the other options as shown above.
  7. When ready, click the Finish button.
  8. Verify that your files are present in the ZIP including any subdirectory files such as images.
  9. Register your report in LabVantage as shown above. Using the Embedded Jasper type, provide the main report name in the location field.


  10. After save, the Report Libraries tab is exposed allowing you to upload your ZIP file as shown below.


  11. At the runtime, the system will do the following if the report type is "Embedded Jasper"...
    1. Create a folder with reportid under the [applicationhome]/reports folder
    2. Extract the zip into the folder created above
    3. Set the actual location of the main report
    4. Compile the report if using a .jrxml file and it has been changed since the last run or if a .jasper does not exist
    5. If you change the zip attachment in the report definition, the system will clear the extracted folder and at runtime, extract it again