This article provides a MetaScript example for dynamically changing the label that appears on button on a Virtual Ticket form.
Button controls in Virtual Ticket and Digital Storage Manager provide a powerful method for allowing a user to graphically initiate an action. For example, button controls may be used to print a form, open a related record, etc. The label that appears on the button may simply be a static text value, such as "Print", "Open", etc.
In this example, we'll use an integer/checkbox on the form to specify whether an outside purchase has been charged to a job. If it has been charged, the checkbox is "checked" (value = 1), if not, then the checkbox is "unchecked" (value = 0). If the value = 1, then the button label will be set to "View Charge"; if the value = 0, the button label will be set to "Add Charge". This example uses an "objectLoaded" event listener that assesses the value of the checkbox and sets the label accordingly whenever a record object is loaded in the Browser window.
NOTE: This example MetaScript would appear in the Global MetaScript for the form.
var theButton = Form.getControlById( "btn_OPButton" );
if( Field( 'Checkbox' ) == 1 )
theButton.label = 'View Charge';
theButton.label = 'Apply Charge';
The following will set the label of the button when the record is loaded based on the value of the Checkbox field.
Form.addEventListener( "objectLoaded", function()
The following watches for any changes made in the form, and when something is changed, it evaluates the Checkbox field and sets the button label accordingly.