silence readonly messages
Craig Tooker
craig at cwtsoftware.com
Thu Aug 25 09:59:25 PDT 2011
On 8/25/2011 11:34, Joe Chasan wrote:
> On Thu, Aug 25, 2011 at 10:40:04AM -0400, Craig Tooker wrote:
>
>> I mean what I said. In the @entsel processing you must use waitkey to
>> manage *all* keyboard interaction. When one one of the keys is entered
>> that you do not want to run with locking, issue a "goto @key(x)" instead
>> of a "pushkey (x);end". The first method avoids locking the record
>> during the @key(x) routine (in fact it's not been triggered at all, it's
>> just running in @entsel because you used the "goto"). The second method
>> gives the keystroke back to filePro and then lets fP trigger the @key(x)
>> routine (and normal locking of the record). You must end a non-locked
>> routine (one you used "goto" to enter) with a matching "goto @entsel"
>> instead of "end".
> i see what you are getting at and it probably would work, however this
> process table has 23 @key labels already and I think putting waitkey
> in @entsel is going to be a messy way of trying to get around it in
> this case.
I never write a non-trivial *clerk processing table without an extensive
@entsel routine. You can significantly enrich the user experience and
at the same time increase your control over the process. The @entsel
routine looks up into a database that is keyed by system (could be
client or app. id) / database name / screen to get all the command keys
for that system and presents them (properly formatted) for the user
(also filtered by user and group to show only those commands that the
user may run); waits for a command, and then either "pushkey" them back
to filePro (for a locked routine) or "goto" the correct label for an
unlocked command. It's all standardized and I very rarely need to touch
it. It adds functionality for the right and left arrows and the page up
and down keys. The HOME key goes to the first record of the current
index and the END key takes the user to the last record of the current
index. All find commands are implemented as progressive browses where
the user can change index (if allowed). None of that code needs to be
changed when I set up a new database. The end-user also gets a
consistent experience where the application behaves identically in
different files.
To create a new function, I just add a record to the commands database
with the correct properties and write the @key routine in the process table.
I also save each @key routine into its own prc. file. That way I can
use a processing table to rebuild a database input processing table if I
make changes to the templates. It uses the command database file,
begins with the template tables and then just tacks on the other @key
routines that are unique to that database and then use *cabe to create
the token tables. In this way, if you add functionality to a base
template (say the HOME and END keys or whatever), I can simply rebuild
*all* of the processing tables for *all* of the applications for *all*
of my clients with a simple command.
For a new database file, I just create the required command records and
then load the template IUA process table with all the standard commands
ready to go.
If you don't do this, it's well worth the time to create these templates
because it will save you so much time in the long run. If your filePro
code ever allows a user to see the IUA menu (or deity forbid the filePro
main menu) you are asking for trouble.
>
> --
> -Joe Chasan- Magnatech Business Systems, Inc.
> joe - at - magnatechonline -dot- com Hicksville, NY - USA
> http://www.MagnatechOnline.com Tel.(516) 931-4444/Fax.(516) 931-1264
> _______________________________________________
> 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