(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