Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Year 0000
Message
From
15/04/2005 12:08:17
 
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 8 SP1
OS:
Windows XP SP2
Miscellaneous
Thread ID:
01003937
Message ID:
01005169
Views:
26
>Unrelated question, Fabio.
>Do you know the simplest way to find out all changed fields using GetFldState result without using AT function?
>
>Here is a code where I'm using in a similar method. I'm wondering, if this code could be simplified:
>
>
>	lcFieldState = SUBSTR(GETFLDSTATE(-1),2) && The first character returns deletion status
>	lnOccurance = 1
>
>	lnPos = AT('2', m.lcFieldState, m.lnOccurance)
>
>	DO WHILE m.lnPos > 0
>		DO CASE
>		CASE !FieldChanged(FIELD(m.lnPos))
>
>&& not changed
>		CASE INLIST(UPPER(FIELD(m.lnPos)), UPPER("cLast_Updated_User"), ;
>				UPPER("tLast_Updated_Date"))
>
>&& ignore
>		OTHERWISE
>			REPLACE cLast_Updated_User WITH ;
>				IIF(VARTYPE(m.gcUserID) == "C", m.gcUseriID, getuserid()), ;
>				tLast_Updated_Date WITH DATETIME()
>			lnPos = 0
>		ENDCASE
>		IF m.lnPos > 0
>			lnOccurance = m.lnOccurance + 1
>			lnPos = AT('2', m.lcFieldState, m.lnOccurance)
>		ENDIF
>	ENDDO
>
What is FieldChanged(FIELD(m.lnPos)) ?

I look you want do this if a field is updated:
REPLACE cLast_Updated_User WITH ;
	IIF(VARTYPE(m.gcUserID) == "C", m.gcUseriID, getuserid()), ;
	tLast_Updated_Date WITH DATETIME()
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform