Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
IIF syntax
Message
From
14/09/2015 09:34:42
Mike Yearwood
Toronto, Ontario, Canada
 
 
To
13/09/2015 14:56:41
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01624559
Message ID:
01624584
Views:
74
>>>I have always used the if .. endif clause but am wondering if the IIF could serve me here. The example in help menu of VFP does not answer my question.
>>>here is what I want to do using if ... endif
>>>
>>>
>>>if myval<7
>>>replace myval with int(myval) && I want to remove values to the right of the decimal
>>>else
>>>? 'myval exceeds 7'
>>>endif
>>>
>>>
>>>I tried this without success - is it possible ?? (or does this function only apply to expressions) or do I just have the syntax wrong.
>>>
>>>? IIF(myval<7,Replace myval with Int(myval), 'Retained myval'  )
>>>
>>
>>IIF() returns either the second or third parameter as an expression, depending on the value of the first parameter. You're attempting to return a command rather than an expression.
>>
>>You could do something like
>>
>>REPLACE MyVal WITH IIF( MyVal < 7, INT( MyVal ), MyVal ) IN MyAlias
>>
>>but that's not a great alternative. MyVal would always be REPLACEd, even with the same value, which will affect things like GETFLDSTATE( ).
>
>I'm curious Al why you added the 'in myalias' since ken's solution (which is virtually the same) works for me without it. Unless you were attempting to display the process as it occurs (which for me was not essential component to the operation.) Thanks for your input - I have a lot of places to use this new found knowledge.

The fastest and most correct way is
replace myval with int(myval) for myval < 7  in alias
The only time myval needs an alias is when you're replacing across multiple aliases joined with set relation - a technique that should be avoided.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform