Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
How do you save a filter condition?
Message
From
06/09/1998 16:30:05
 
General information
Forum:
Visual FoxPro
Category:
Other
Miscellaneous
Thread ID:
00133456
Message ID:
00133698
Views:
14
Macro substitution has limited length and eval() is not rusmore
optimizable. So the only way is

proc SETFILTER
lpara prmFILTER

priv i, m
for m.i=1 to 8 && 8 == 2048/250 -1
m='M'+ltri(str(m.i))
priv &M
&M = subs( m.prmFILTER, (m.i-1)*250+1, 250 )
endfor

set filter to &m1&m2&m3&m4&m5&m6&m7&m7&m8

>>It's better to use
>>set filter to (cfilter)
>>
>>Use the evaluate expression (i.e. parens) wherever possible. It is many times fster than macro substitution (&)
>>//:^)
>
>Larry,
>
>You are right that name expressions are better than macros, but only where they work. A name expression will not work in the expression of a set filter. They only work where VFP is expecting the name of something. SET FILTER must be either;
>
>SET FILTER &cFilter
>
>or
>
>SET FILTER EVALUATE(cFilter)
Andrus
Previous
Reply
Map
View

Click here to load this message in the networking platform