FW: setting high date and PFCMARK
Bruce Easton
bruce at stn.com
Thu Apr 9 10:30:58 PDT 2009
Bruce Easton wrote Thursday, April 09, 2009 1:10 PM:
Jose Lerebours wrote Thursday, April 09, 2009 12:20 PM:
>
> Richard D. Williams wrote:
> > Try this;
> >
> > If: dl ne ""
> > Then: end
> > If: q ne ""
> > Then: goto start
> > if:
> > Then: cls
> > If:
> > Then: input fa(4,#,g) "From Client Number "
> > If:
> > Then: input fb(4,#,g) "From "<fa<"to number "
> > If:
> > Then: input ff(8,mdy/,g) "Enter 1st date"
> > If:
> > Then: input ll(8,mdy/,g) "From"<ff<"to what ending date"
> > If: fa eq " " or fb eq " " or ff eq "" or ll eq ""
> > Then: msgbox "No Report Created!";exit
> > If:
> > Then: input popup ("22","") q(1,yesno,g) "Is this correct?
> (Y/N)";cls
> > If: q ne "Y"
> > Then: msgbox "No Report Created!";exit
> > If:
> > Then: lookup - k=ff i=h -ng
> > *start*: If: 18 gt ll
> > Then: goto endit
> > If: 1 ge fa and 1 le fb
> > Then: select
> > If:
> > Then: end
> > *endit*: If:
> > Then: dl(8,mdy/,g)="12/31/79"
> > If:
> > Then: lookup - k=dl i=h -nl
> > If:
> > Then: end
> >
>
> The first two lines of code should keep the script from asking the
> questions and performing the lookup more than once.
>
> I would make two changes
>
> (1) Add
> if: not -
> then: end
>
> right after the original lookup.
>
> (2) Additionally, I would not use a hard coded date to jump to
> possible last date, simply add a couple of years to end-date
>
> then: dl(8,mdy/,g)=ll+"1095" 'Add 3 years to end date
>
> By adding the three years to end date, no matter what your PFCMARK is
> set, it is less likely that your code will break (should it be ported
> to a different environment or PFCMARK have an unexpected value).
>
> Regards,
>
>
> Jose Lerebours
I frequently surprised by systems where people enter dates way off into the
future, either by accident, and in some cases, to use the date field as a
marker of some kind.
Therefore, regarding Jose's point #2, it might be safest to have your
selection flow like so (when working w/eight- digit selection dates and
using lookup-dash to speed rpt):
Then: qq(2,*)=getenv("PFCMARK"); qs(2,.0)=qq
If: qs eq "0" and qs ne qq
Then: goto XXXX 'PFCMARK missing/invalid--abort lu-dash; read all recs
If: dl eq ""
Then: qr(2,rj0)=qs+"0"; qr=qr-"1"; dl(8,mdy/,g)="12/31/"{qr
If:
Then: 'continue here with lookup dash technique using 'dl'
.....
XXXX If: '(common selection tests without using lookup-dash)
Bruce
(augmented version :)) I didn't take into consideration as
Jose pointed out that someone might set PFCMARK to some strange
value - so I've improved the sample code above.
Bruce
Bruce Easton
STN, Inc.
More information about the Filepro-list
mailing list