Hi Hilmar,
I know that combining a variable number of ANDs can be tricky for filters, that's why I asked Franco about the possibility to use a cursor in stead. I discovered some years ago that you can SELECT from a cursor with the same name as your result cursor, which makes this very easy for cursors, given ALL the different conditions are ANDs:
lcCondition=laCondition(1)
SELECT * FROM yourTable where &lcCondition INTO CURSOR yourResult ReadWrite
FOR x=2 to ALEN(laCondition)
lcCondition=laCondition(x)
SELECT * FROM yourResult where &lcCondition INTO CURSOR yourResult ReadWrite
ENDFOR
>>Hi Tore.
>>
>>Sorry for the delay in answering.
>>
>>The problem is that if I do not use $ and filter on Department+Section+Unit, I will end up with a huge filter string. I can't build up the filter for department, section, and unit individually.
>>
>>If i have the three individual indexes and then do the filter as it was originally (Department+Section+Unit $ cDepSecUnit), it still won't be good ?
>>
>>
>>Thanks
>
>You can easily use a variable WHERE clause, with macro substitution, i.e., the "&" sign.
>
>For example:
>
>
>lcDepartment = ThisForm.TxtDepartment.Value
>if not empty(lcWhereClause)
> lcWhereClause = "Department = " + lcDepartment
>endif
>...
>select
> ...
> where &lcWhereClause
> ...
>
>
>Combining two or more expressions with AND is a little more tricky, but perhaps this gives you the general idea.