Conditional Running Total Using Variables
Conditional Running Total Using Variables
BI PUBLISHER
BI Publisher allows the use of variables in a template. The variable is assigned, updated, and displayed
using the set_variable and get_variable syntax. This Tech Tip outlines a simple example to create a
running total variable and then how to provide further flexibility by applying a condition to it.
The following is the custom report sample XML used for this Tech Tip.
These tech tips are offered free of charge in the spirit of sharing knowledge with others. They do not include technical support, should you have a problem with them. We are always interested in how they can be improved, please do not hesitate to email us your comments. These tips have
been thoroughly tested by our consultants in a variety of environments. Please read these tech tips thoroughly and be sure that you understand them before trying to use them. We can not be responsible for issues that develop because of the configuration of your hardware, technical
environment or application of the tech memos. If you are not sure, then we urge you to contact Oracle technical support or your local support consultant for assistance.
CONDITIONAL RUNNING TOTAL USING VARIABLES
The initial RTF design template includes a Repeating Group (form fields F and E) for each <CO> row in
the XML. Sorted in ascending order by Record No.
Example for BI Publisher Properties for form field F in the Record No column.
Form Fields:
Record No F <?for-each:CO?><?sort:RECORD_NO;'ascending';data-type='text'?>
Record No rec_no <?RECORD_NO?>
Title TITLE <?TITLE?>
Initial Amount $999.00 <?INITIAL_AMT?>
Adjusted Amount $999.00 <?ADJUSTED_AMT?>
Final Approved Amount $999.00 <?INITIAL_AMT+ADJUSTED_AMT?>
Final Approved Amount E <?end for-each?>
DRMcNATTY Page 2
CONDITIONAL RUNNING TOTAL USING VARIABLES
This example will provide a running total for the Initial Amount.
The variable INITIAL_ RUN_TOT is declared and set (assigned) to a value of 0. The $_XDOCTX syntax
allows the variable to be accessible throughout the RTF template (global document text).
Once declared the variable value can be updated accordingly using the following code. In this
example, INITIAL_ RUN_TOT is updated within the repeating group. Using the set_variable syntax, the
variable is retrieved for each row in the repeating group and the INITIAL_AMT value is added to the
INITIAL_ RUN_TOT value.
DRMcNATTY Page 3
CONDITIONAL RUNNING TOTAL USING VARIABLES
A new form field is used to display the Initial Amount Running Total. In the Properties tab, select any
‘Data Field’ with Number as the ‘Type’ selection. Enter an appropriate ‘Format’ (format mask) and ‘Text
to display’ (as below). The key addition is the display code to enter in the Advanced tab.
The variable declaration syntax is placed at the top of the report outside of the reporting group. The
updated code is placed within the repeating group. For easier viewing for this example, the code is
entered directly rather than within a form field. The display form field is included in an additional
column.
DRMcNATTY Page 4
CONDITIONAL RUNNING TOTAL USING VARIABLES
This example will include a condition of adding to the running total if the Adjusted Amount value is
greater than 0. The variable ADJUST_RUN_TOT is declared as before but the update code is modified to
support the condition. The value ADJUSTED_AMT is enclosed within an if else condition. If ADJUSTED_AMT
is greater than 0 then this value is added to the retrieved ADJUST_RUN_TOT variable otherwise 0 is added
(remains the same).
A new form field is added as in the previous example with the display code referencing the new
variable.
The additional code has been added just like the previous example.
DRMcNATTY Page 5