AW: Field Reference parameter

omnis omnis at
Thu Jan 18 05:50:38 EST 2018

Hi Xavier

are you calling the method in an entry field via "On evAfter"?

then try using the "$cfield()."-Notation to access field properties:

On evAfter     ;; Event Parameters - pClickedField, pClickedWindow, pMenuLine, pCommandNumber, pRow
	Calculate lcFiedlname as $cfield.$name()
	Calculate lcDataname as $cfield.$dataname()

Or do you mean the database field in the row you are using? Then you will need the $dataname-Proprty to get the content into lcDataname. Afterwards you will have to strip the rowname from that content, e .g.

Calculate lcFieldname as mid(lcDataname,pos('.',lcDataname)+1)

Hope that helps



-----Ursprüngliche Nachricht-----
Von: omnisdev-en [mailto:omnisdev-en-bounces at] Im Auftrag von IT
Gesendet: Donnerstag, 18. Januar 2018 09:13
An: OmnisDev List - English
Betreff: Re: Field Reference parameter

This doesn’t work, the reference finally passed is lFieldName. I want pass reference of Whatever field.

For example, you are in enter data and in some fields you wan’t to test for a unique index value.
You have a row (ivMaestro) defined from sql class with some methods. One method is $TestForAUniqueIndexValue() that need a field reference as a parameter.
When you are in an enter data you cant test for a unique index value several time for different fields.
So depending on the field you are, lvFieldToTest will contain a diferent field name. The code bellow doesn’t work.

Calculate lvFieldToTest as #EN
Do ivMaestro.$TestForAUniqueIndexValue([lvFieldToTest]) Returns #F     ;; 

You cant try different ways to pass lvFieldToTest like [lvFieldToTest] or nam(lvFieldToTest) with no luck.

Only a variable can be passed to a Field reference parameter variable. Any calculation or attempts to send the name of a variable as a string will fail.

So, or I am omitting something or this limits very much the use of Field Reference as parameter.



> El 17/1/2018, a las 19:18, Peter van Rooij <pfvanrooij at> escribió:
> Hello Xavier
> Calculate lFieldName as ‘Whatever'
> Do ivMaestro.$TestForAUniqueIndexValue(lFieldName) Returns #F 
>> On 17 Jan 2018, at 16:53, IT <it at> wrote:
>> Hi All,
>> I have a table with a method to test for a unique index value running SQL not DML.
>> The method $TestForAUniqueIndexValue has a Field parameter.
>> If i pass a variable, the method works ok. Any try to use some kind of dynamic parameter fails.Things like a calculation results in an error: "Attempt to assign a calculation to a field reference parameter”. Using the nam() function or enclosing the variable name in quotes or square bracket fail.
>> This works
>> Do ivMaestro.$TestForAUniqueIndexValue(ivMaestro.USR_CODIGO) Returns #F 
>> This doesn’t work
>> Do ivMaestro.$TestForAUniqueIndexValue(#EN) Returns #F     ;; 
>> Any one know if there is a way to send the name of the field as a parameter in a dynamically way?
>> regards
>> xavier 
>> _____________________________________________________________
>> Manage your list subscriptions at
> _____________________________________________________________
> Manage your list subscriptions at

Manage your list subscriptions at

More information about the omnisdev-en mailing list