Trapping an Update

Bruce Easton bruce at stn.com
Sun Dec 5 08:36:08 PST 2010


Yes, and to translate that back to Boaz's purpose saying that
screen 2 is the special totaling screen:

top  If:
Then: end
@keyU If: @sn eq "2"
Then: gosub total; display; end
If:
Then:  screen; goto top


For this, the field holding the total needs to be global.  Now
I am curious as to what the answer to Ken's question about
this might be to make me realize something that was
overlooked.

In 5.6, dokey does seem to make some things a lot easier.

Bruce


On 12/5/10 12:34 AM, flowersoft at compuserve.com wrote:
> And if not in 5.6...
>
> @keyH if:
> Then: inputpw pw "Enter Password "
> If: pw = "" or pw ne "password"
> Then: END
> If:
> Then: hardcopy;END
>
> -----Original Message-----
> Richard Kreiss wrote:
>
> Subject: RE: Trapping an Update
>
> With 5.6 At line 2 in the example you can use dokey "u" to have filepro run
> the normal update.
>
> DOKEY allows one use filepro "reserved' keys for more then what they
> previously were reserved for;  using B for a custom browse or the filepro
> browse.
>
> I have one application where H-hardcopy is passworded.
>
> @keyH if:
> Then: inputpw pw "Enter Password "
> If: pw = "" or pw ne "password"
> Then: END
> If:
> Then: dokey "H";END
>
> Check the latest doc's.
>
>
> Richard Kreiss
> GCC Consulting
> rkreiss at gccconsulting.net
>
>
>> -----Original Message-----
>> Bruce Easton wrote:
>>
>> Here's another way of doing capturing 'U' to initiate totaling of dummy
> fields
>> on a special control file screen - without ever putting user in update
> mode.
>> (If it were up to me, I'd make the user press 'T' for total and let them
> always
>> think 'U' is reserved for really doing an update to something, but hey.):
>>
>>      1 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If: '(input table)
>>          Then: end
>>      2 -------   -   -   -   -   -   -   -   -   -   -   -   -
>> @entsel  If: @sn ne "2"
>>          Then: end  'not on totaling scrn, give fp normal ctrl
>>      3 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If:
>>          Then: cls("22")
>>      4 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If:           'could add H/F to this for print opts
>>          Then: eb="\r U \r-Total, Screen Number, \r X \r-Exit"
>>      5 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If:           'allow U, X or another valid scrn#
>>          Then: errorbox ("22","") eb,"","UX13"
>>      6 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If: @sk eq "BRKY"   'ignore cancel key
>>          Then: goto @entsel
>>      7 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If: @bk eq "X"      'wants to exit
>>          Then: pushkey "X"; end
>>      8 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If: @bk ne "U"      'wants to go to another scrn#
>>          Then: pushkey @bk; end
>>      9 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If:   'fell thru - U pressed--total dets into 'tl'
>>          Then: tl(10,.0)=""
>>     10 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If:
>>          Then: lookup dets = totdetails@  k=("BBB") i=A -nx
>>     11 -------   -   -   -   -   -   -   -   -   -   -   -   -
>> detsloo  If: not dets           'done totaling BBB
>>          Then: display; goto @entsel
>>     12 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If: dets(1) ne "BBB"   'done totaling BBB
>>          Then: display; goto @entsel
>>     13 -------   -   -   -   -   -   -   -   -   -   -   -   -
>>            If:
>>          Then: tl=tl+dets(2); getnext dets; goto detsloo
>>
>> Here, I'm trying to total all details that match 'BBB' from the file
> 'totdetails',
>> and screen 2 is the 'special' screen with dummy field 'tl'
>> to show a total.  This control file also has a screen 1 and a screen 3
> where real
>> updates to the record can occur.
>>
>> Assumptions:
>>
>> 1. This is a control file where, for the purposes of this function, only
> one
>> record needs to be accesssed.
>> 2. No writing is necessary to the control file record from the special
> screen.
>> This could easily be modified to work for several screens of the same
> record
>> where each had a different set of dummy fields.
>>
>> Lines 5-8 could be easily redone with a combo of show statements and
>> waitkey I believe to give a more precise look and feel to what you have
> now
>> (instead of using errorbox).
>>
>> I have to wonder, though, why not just do the totaling as soon as someone
>> arrives at the special screen (from @entsel and just test for the screen
>> number)?  Unless it takes a really long time and they might hit that
> screen
>> number by mistake.  But even in that case, you could just ask before
> starting
>> the totaling with a (i.e., yes/no
>> errorbox) and then switch/restore a previous screen if they really didn't
>> mean to go there.  That would also keep control of this in just @entsel.
>>
>> Bruce
>>
>> Bruce Easton
>> STN, Inc.
>>
>>
>>
>>
>> On 12/3/10 11:00 PM, Boaz Bezborodko wrote:
>>> I'm sure that many of you probably already have this as a tool in your
>>> toolbox, but I figured I'd just share a simple way I used to trap an
>>> Update in a specific screen.
>>>
>>> The core of our software was written about 20 years ago and included a
>>> control file that also contained pertinent daily information such as
>>> daily and monthly sales totals.  One screen was used to allow you to
>>> total up all existing open AR invoices, open AP invoices, and open
>>> orders.  It would do this in one screen that contained a slew of dummy
>>> variables.  Once we started doing a lot of business that required
>>> large amounts of dropship orders (each package requires its own order,
>>> invoice, etc.) this record started to get a lot of activity and
>>> totaling up these numbers in the screen could freeze other people
>>> until the totals were completed and unlocked.  The totaling routine
>>> looked at other files and didn't touch anything in the record itself.
>>>
>>> Obviously totaling from within the record was not a good idea and I
>>> wanted to have this done from within @entsel which wouldn't lock the
>>> record.  But I didn't want to change the look and feel of the program
>>> which entailed that people hit "U" to start the process.  I was
>>> thinking of trapping "U" with an @keyU, but that meant that I would
>>> have to have a different line to jump to each of the other screens
>>> someone might want to update.
>>>
>>> The solution was to have a @WEF for the first field in this screen's
>>> cursor path that looked something like this:
>>> @wefaa     if:
>>>                    then: DECLARE What_Mode(7,*,g)
>>>                        if:
>>>                    then: What_Mode="Totals" ; ESCAPE
>>>
>>> @Entsel     if: What_Mode="Totals"
>>>                    then: Gosub (routine) ; What_Mode="" ; GOTO @Entsel
>>>
>>> Now the users can run this routine to their hearts content without
>>> interrupting anyone else.  The @Entsel and "What_Mode" trick I learned
>>> from John Esak.
>>>
>>> Just in case this helps anyone else.
>>>
>>> Boaz
>>> _______________________________________________
>>> Filepro-list mailing list
>>> Filepro-list at lists.celestial.com
>>> Subscribe/Unsubscribe/Subscription Changes
>>> http://mailman.celestial.com/mailman/listinfo/filepro-list
>>>
>>>
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: http://mailman.celestial.com/pipermail/filepro-
>> list/attachments/20101204/730b258e/attachment.html
>> _______________________________________________
>> Filepro-list mailing list
>> Filepro-list at lists.celestial.com
>> Subscribe/Unsubscribe/Subscription Changes
>> http://mailman.celestial.com/mailman/listinfo/filepro-list
> _______________________________________________
> Filepro-list mailing list
> Filepro-list at lists.celestial.com
> Subscribe/Unsubscribe/Subscription Changes
> http://mailman.celestial.com/mailman/listinfo/filepro-list
>
>
>



More information about the Filepro-list mailing list