The grabfieldtype( function returns the type of a database field in any open database.


This function has two parameters:

database – database containing the field, or "" for the current database.

field – the field name.


This function returns the type of a database field in any open database. The result is an integer:

5=floating point

Here are some typical examples:

grabfieldtype("Checkbook","Date") ☞ 4
grabfieldtype("Checkbook","Amount") ☞ 5
grabfieldtype("Checkbook","Pay To") ☞ 0

Using a Variable for the Field Name

Because the name of the field may be quoted or unquoted in this function, 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())
ftype = grabfieldtype("Checkbook", 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())
ftype = grabfieldtype("Checkbook", ""+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 datavalue(, fieldalignment(, fieldformula(, fieldnumber(, fieldpattern(, fieldwidth( and getfieldproperties( functions, and the dozen or so lookup( functions whose parameters include a field name.

See Also


10.0UpdatedCarried over from Panorama 6.0, but now also supports binary fields.