The datavalue( function returns the value of a field or variable: text, number, etc.
This function has one parameter:
name – is the name of the field or variable that you want the value of.
The advantage of this function is that you can calculate the name of the field or variable at the time the formula is evaluated. This example returns the value of a line item field:
Depending on the value of i, this formula will return the value of Quantity1, Quantity2, etc.
The function returns the value of the calculated field or variable name.
Here is an example that gets a field name input and then uses datavalue( to get the field name from the variable and use it to get the value of the field in the current record.
local thefield thefield="" gettext "What field?",thefield message datavalue(""+thefield)
Notice that there is an empty string added to thefield in the datavalue( to force datavalue( to treat thefield as a formula instead of simply a variable.
Because the name of the field may be quoted or unquoted in this function (as noted in the parameter description above), a special technique is necessary if you use a variable to store the name of the field whose properties are required. If you used the following code, where the field name is extracted from an array of field names and stored in the local variable, fldName,
fldName = array(FieldNameList,J,cr()) x = datavalue(fldName)
you would get an error message because Panorama would be looking for a field called fldName and it wouldn’t find one. You need to indicate to Panorama that fldName is not the field name but is a formula that will produce the field name. This is done by replacing the single identifier, fldName, with a string that is obviously a formula. Any formula which produces the required field name will do the job but the simplest solution is to add an empty string to the variable:
fldName = array(FieldNameList,J,cr()) x = datavalue(""+fldName)
Panorama then evaluates the formula,
""+fldName and obtains the name of the field.
As a general rule, this technique is necessary whenever you wish to use a variable to store the name of a field passed as a parameter to a statement or function in which the field name parameter may be either quoted or unquoted. These include the fieldalignment(, fieldformula(, fieldnumber(, fieldpattern(, fieldwidth(, getfieldproperties( and grabfieldtype( functions, and the dozen or so lookup( functions whose parameters include a field name.
|10.0||No Change||Carried over from Panorama 6.0.|