Subject Re: filter on logical plus date field
From Ken Mayer <dbase@nospam.goldenstag.net>
Date Wed, 5 Jan 2022 16:48:24 -0800
Newsgroups dbase.getting-started

On 1/5/2022 4:10 PM, Rouke wrote:
> In a table with a logical field 'returned' and a date field 'dateofrtrn' I'm getting weird results when I set a filter to not returned or isblank(dateofrtrn). I expect to see no records with a tick in the 'returned' field and also to see no records other than a blank value in the dateofrtrn field. However, I get the following (eg. of three records):
>
> set filt to not returned or isblank(dateofrtrn)
>
> list returned, dateofrtrn for recno()=2 or recno()=3 or recno()=14
>
> Record#  returned dateofrtrn
>         2  .F.        /  /
>         3  .F.      22/12/2013
>        14  .T.        /  /
>
> I expect only records like 2. Why are records 3 and 14 listed?

"not returned" can include items that will appear as false when you
query them, but may be "null" or empty.

Try:

set filter to returned=.f. or isblank(dateofrtrn)

(If you're using current versions of dBASE, you can also use the word
"false" or the word "true" rather than the clunky ".t." and ".f." ... I
assume you are, since you're using "not" instead of ".not" and "or"
instead of ".or.")

Ken

--
*Ken Mayer*
Ken's dBASE Page: http://www.goldenstag.net/dbase
The dUFLP: http://www.goldenstag.net/dbase/index.htm#duflp
dBASE Books: http://www.goldenstag.net/dbase/Books/dBASEBooks.htm
dBASE Tutorial: http://www.goldenstag.net/dbase/Tutorial/00_Preface.htm
dBASE Web Tutorial: http://www.goldenstag.net/dbase/WebTutorial/00_Menu.htm