How to set Multiple Properties at Once Using Xbasic
Description
Xbasic can be used to set one or more properties for multiple controls in a Grid or UX component. This is useful in certain situations, such as adding language tags to a large number of controls.
Discussion
The Set Multiple Properties tool is great when you want to set multiple controls to the same property. If you wanted the property to be dynamically computed, however, you need to use Xbasic.
In the Set Multiple Properties dialog, you can check the Compute the property value using Xbasic code to expose an option that allows you to define an Xbasic function that calculates the new value for the selected property for each control. This is especially useful when you need to add language tags to the label for a large number of controls in your component. For example:
function setProperty as c (currentValue as a, arrI as p, wp as p) 'currentValue is the value of the property in the control 'arrI is a pointer to all properties in the control 'wp is a pointer to all properties in the component 'This sample will add language tags to a control's label if it does not already have language tags. dim newValue as c 'the value returned by this function must be a character value 'check if the property already has language tags if atc("<a5:r>",currentValue) = 0 then newValue = "<a5:r>" + currentValue + "</a5:r>" else newValue = currentValue end if 'you can optionally prompt for confirmation before assigning the value to the control. 'if you don't want to prompt, comment out this section dim q as n dim msg as c msg = "Assign value of " + newValue + " to control called: " + arrI.v.variableName q = ui_msg_box("Notice",msg,UI_FIRST_BUTTON_DEFAULT+UI_YES_NO_CANCEL) if q = ui_no_selected then newValue = currentValue end if 'end of section to prompt for confirmation 'the function returns newValue - the value you want to assign to the property setProperty = newValue end function
For complete step-by-step instructions, watch the videos below.