(MPE) Alpha Lookup Screen Using Image B-Tree
Pickering, John (NORBORD)
John.Pickering at norbord.com
Wed Oct 26 16:17:16 CDT 2005
OK. The following stupid screen works just fine. Both payroll-key and
payroll-name are indices and both do generic retrieval. I have included the
generated procedures to show there's no magic and Qdesign actually knows
what it's doing. Following this screen is an improved version with the
access statement specifying use of only the payroll-name field. It too works
just as well.
And here's the PDL source for the definition of the KSAM file involved.
How about if you try my stupid screen with your data files?
22000 File PAYROLL-NAMES Organization Indexed &
22001 Type KSAMXL &
22002 Open KSPAYNAM.MMD &
22003 Ascii &
22004 Blocking Factor 32 &
22005 Create
22006
22007 Record PAYROLL-NAMES
22008
22009 Item PAYROLL-KEY Datatype Character Size 6
22010 Begin Structure
22011 Item DIVISION Datatype Character Size 2
22012 Item PAYROLL-NO Datatype Character Size 4
22013 End Structure
22014 Item PAYROLL-NAME Datatype Character Size 30
22015
22016 Index PAYROLL-KEY Unique
22017 Segment PAYROLL-KEY
22018
22019 Index PAYROLL-NAME Repeating Unordered
22020 Segment PAYROLL-NAME
22021
> set def
> scr junk
> fil payroll-names occurs 10
> align (1,,4) (,,12)
> cluster occurs with payroll-names
> fie payroll-key
> fie payroll-name
> cluster
> bui lis det
> PROCEDURE APPEND
> BEGIN
> ACCEPT PAYROLL-KEY OF PAYROLL-NAMES
> ACCEPT PAYROLL-NAME OF PAYROLL-NAMES
> END
> PROCEDURE ENTRY
> BEGIN
> FOR PAYROLL-NAMES
> BEGIN
> PERFORM APPEND
> END
> END
> PROCEDURE PATH
> BEGIN
> REQUEST PAYROLL-KEY OF PAYROLL-NAMES
> IF PROMPTOK
> THEN LET PATH = 1
> IF PATH = 0
> THEN BEGIN
> REQUEST PAYROLL-NAME OF PAYROLL-NAMES
> IF PROMPTOK
> THEN LET PATH = 2
> END
> IF PATH = 0
> THEN BEGIN
> LET PATH = 3
> END
> END
> PROCEDURE FIND
> BEGIN
> FOR MISSING PAYROLL-NAMES
> BEGIN
> IF PATH = 1
> THEN GET PAYROLL-NAMES VIAINDEX PAYROLL-KEY VIA PAYROLL-KEY
> IF PATH = 2
> THEN GET PAYROLL-NAMES VIAINDEX PAYROLL-NAME VIA &
> PAYROLL-NAME
> IF PATH = 3
> THEN GET PAYROLL-NAMES SEQUENTIAL
> END
> END
> PROCEDURE UPDATE
> BEGIN
> FOR PAYROLL-NAMES
> BEGIN
> PUT PAYROLL-NAMES
> END
> END
> PROCEDURE DELETE
> BEGIN
> DELETE PAYROLL-NAMES
> END
> ALLDONE
MODE:x ACTION:xxxxxxxxx
01 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
02 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
03 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
04 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
05 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
06 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
07 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
08 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
09 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
10 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
;***************************************************************************
**********
> set def
> scr junk
> fil payroll-names occurs 10
> access via payroll-name &
> using tru(payroll-name) + "@" &
> request payroll-name
> align (1,,4) (,,12)
> cluster occurs with payroll-names
> fie payroll-key
> fie payroll-name
> cluster
> bui lis det
> PROCEDURE APPEND
> BEGIN
> ACCEPT PAYROLL-KEY OF PAYROLL-NAMES
> ACCEPT PAYROLL-NAME OF PAYROLL-NAMES
> END
> PROCEDURE ENTRY
> BEGIN
> FOR PAYROLL-NAMES
> BEGIN
> PERFORM APPEND
> END
> END
> PROCEDURE PATH
> BEGIN
> REQUEST PAYROLL-NAME OF PAYROLL-NAMES
> IF PROMPTOK
> THEN LET PATH = 1
> IF PATH = 0
> THEN ERROR "Key/Index required."
> END
> PROCEDURE FIND
> BEGIN
> FOR MISSING PAYROLL-NAMES
> BEGIN
> GET PAYROLL-NAMES VIAINDEX PAYROLL-NAME VIA PAYROLL-NAME &
> USING TRU ( PAYROLL-NAME OF PAYROLL-NAMES ) + "@"
> END
> END
> PROCEDURE UPDATE
> BEGIN
> FOR PAYROLL-NAMES
> BEGIN
> PUT PAYROLL-NAMES
> END
> END
> PROCEDURE DELETE
> BEGIN
> DELETE PAYROLL-NAMES
> END
> ALLDONE
MODE:x ACTION:xxxxxxxxx
01 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
02 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
03 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
04 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
05 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
06 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
07 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
08 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
09 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
10 xxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
-----Original Message-----
From: Blair Combs [mailto:combblai at isu.edu]
Sent: Wednesday, October 26, 2005 4:51 PM
To: Joe Boyle; Powerhouse Listserv
Subject: Re: (MPE) Alpha Lookup Screen Using Image B-Tree
The following Quiz works like a charm:
acc MIG-CMD-CODE-A
cho viaindex MIG-CMD-NAME MIG-CMD-NAME parm
How can I make this work in Quick.
Note: John P's suggestion had no impact.
TIA.
Joe Boyle wrote:
> in that case I would try John P's suggestion; I recall that there is
> something familiar in your result, and that John's suggestion will
> probably work, but I can't recall why.
>
> It might be worth confirming that you can run the quiz below first,
> access MIG-CMD-CODE-A
>
> choose MIG-CMD-NAME prompt (respond using XYZ@ or XYZ@ etc...)
>
> rep MIG-CMD-NAME
>
> go
>
>
> regards Joe,
More information about the powerh-l
mailing list