Page 1 of 1

Please Explain why this won't work

Posted: Sun Dec 11, 2005 1:15 am
by Jeff Barnes
Hi,

In my app I have a dialog that has 10 "parts" listed on the screen.
Part1, Part2 .... Part10

I have a function that will work with these PART fields (using Tdatabase)

Function MyFunction( cNumber ) //cNumber can be from "1" to "10"
Local cTempPart
cTempPart := oPartsDBF:Part&cNumber //This works

oPartsDBF:Part&cNumber := cSomeText //This does not error but will return an empty string.

Return .t.

If I use an actual number ( oPartsDBF:Part1 := cSomeText ) it works.

Why can I use the &cNumber to store a value to cTempPart but can't do it the other way.



Thanks in advance,
Jeff

Posted: Sun Dec 11, 2005 11:51 am
by Antonio Linares
Jeff,

Better use the __ObjSendMsg() function:

Instead of cTempPart := oPartsDBF:Part&cNumber:

cTempPart := __ObjSendMsg( oPartsDBF, "Part" + cNumber )

and instead of oPartsDBF:Part&cNumber := cSomeText:

__ObjSendMsg( oPartsDBF, "_Part" + cNumber, cSomeText )

Notice the use of "_" before "Part" when assigning.

Posted: Sun Dec 11, 2005 3:41 pm
by Jeff Barnes
Thanks Antonio.

Works perfectly.