A progress field client control visualizes the progression of many data comparing each other.
Starting from one data value, the client control can be used to visualize any number of data values given. This makes it into a simple stacked progress field, or as a horizontal version of a stacked chart.
Figure 1 - Progress of data (progress field)
Figure 2 - Multiple unit/value (stacked bar)
The progress field client control can be used as different types:
The declarative syntax covering both types is progressfield
.
Use the type progress field to visualize progress of any data. Use the type stacked bar type when more than one unit or value needs to be presented. A progress field client control (all types) can be placed on a List or a Group.
list{ ... progressfield { label = "mandatory_label_name"; ... } }
Define the stacked parts of the progress bar in a value block.
A value block contains an attribute, label and color (emphasis).
When hover the mouse over each stacked part, the label given in the value block appears.
Define the value label that appears on each stacked part of the progress field (percentage, absolute value or string).
A value label appears only if the property valuelabel
is declared. If valuelabel
is not declared, then nothing is displayed.
progressfield { label = "my progress"; value Attribute1 { label = "Category label 1"; valuelabel = percentage; emphasis Complementary7 = [true]; } value Attribute2 { label = "Category label 2"; valuelabel = percentage; emphasis Complementary4 = [true]; } }
Example code - Displays a percentage value of each stacked pair
progressfield { label = "my progress"; value Attribute 1{ label = "Category label 1"; valuelabel = Value; emphasis Complementary7 = [true]; } value Attribute 2 { label = "Category label 2"; valuelabel = Value; emphasis Complementary4 = [true]; } }
Example code - Displays a absolute value of each stacked pair
progressfield { label = "my progress"; value Attribute 1{ label = "Catergory label 1"; valuelabel = "QtyDelivered"; emphasis Complementary7 = [true]; } value Attribute 2{ label = "Catergory label 2"; valuelabel = "Quantity to deliver"; emphasis Complementary4 = [true]; } }
Example code - Displays any string given on each stacked pair
Define a total value for the progress field with an attribute.
A total value can define simple progress-fields with only one value
progressfield { label = "Progress of delivered Quantity"; total Quantity { label = "Yet to be delivered"; emphasis Complementary5 = [true]; } value QtyDelivered { label = "Quantity Delivered"; emphasis Complementary9 = [true]; } }
Example code - Displays a total value for the progress field
Define an attribute for the total value as integer.
a. For a total value of an integer (such as 100 or 1), override the projection file and define an attribute containing the integer.
b. If the attribute “CurrentStatus” contains decimal numbers, define the Total attribute to 1.
c. If the attribute “CurrentStatus” contains numbers between 1-100, define the Total attribute to 100.
d. Based on the size of the values in the “CurrentStatus”, define a suitable Total value.
@Override entity TstOrderLine { attribute Total Number { fetch = "100"; } } progressfield { label = "Progress of task"; total Total { label = "Yet to be completed."; emphasis Complementary5 = [true]; } value CurrentStatus { label = "Current Status of the Task"; emphasis Complementary9 = [true]; } }
Example code - Total value attribute as integer
The progress field client control is read-only, and only used to visualize the current state of the progress of any data.
Below is a list of properties that can be used to customize the control.
emphasis | label | total | value | valuelabel | visible
Below is an example of how a progress field is used in a list.
Figure 3 - Example picture of a progress field
list CustomerContracts for CustomerContract { progressfield { label = "Progress of contract"; value ApprovedToDate { label = "Approved To Date"; emphasis Complementary9 = [true]; } value AmntClaimed { label = "Amount Claimed"; emphasis Complementary1 = [true]; } value YetToBeClaimed { label = "Yet To Be Claimed"; emphasis Complementary5 = [true]; } } }
Example 1 - Progress field example code_here