You can code form views using CL (Control Language) programs

Please mark posts as being for RPG or RDMLX (LANSA) developers.
To subscribe by email, display this forum, scroll to the end and select ‘Subscribe Forum’.
Post Reply
MarkDuignan
Posts: 346
Joined: Wed Apr 18, 2012 10:33 am

You can code form views using CL (Control Language) programs

Post by MarkDuignan »

Sometimes this is useful when you mostly want to use i5 commands in your program.

EXAM0036 is the shipped RPG example - Programming Examples -> Introductory Examples -> Commands.

Here it is as CL program –the compile command is comments at beginning ...........

Code: Select all

     /* ===================================================================== */
     /*         CRTCLMOD   MODULE(LRNG_DEMO/EXAM0036L) +                      */
     /*                    SRCFILE(LRNG_DEMO/SOURCEEXAM) TGTRLS(V5R3M0)       */
     /*         CRTPGM     PGM(LRNG_DEMO/EXAM0036L) BNDDIR(LRNGSRV) +         */
     /*                    TGTRLS(V5R3M0)  ACTGRP(*CALLER)                    */
     /* ===================================================================== */
             PGM        PARM(&REQACTION &REQPROGRAM &SAVEDSTATE &SYSTEMINFO)

             /* Parameters */
             DCL        VAR(&REQACTION) TYPE(*CHAR) LEN(32)
             DCL        VAR(&REQPROGRAM) TYPE(*CHAR) LEN(10)
             DCL        VAR(&SAVEDSTATE) TYPE(*CHAR) LEN(1)
             DCL        VAR(&SYSTEMINFO) TYPE(*CHAR) LEN(1)

             /* Local variables */
             DCL        VAR(&CURPROGRAM) TYPE(*CHAR) LEN(10) VALUE('EXAM0036L')
             DCL        VAR(&HANDLED) TYPE(*CHAR) LEN(1)
             DCL        VAR(&NEWFORM) TYPE(*LGL) VALUE('1')

             /* Display File */
             DCLF       FILE(EXAM0036D)


             /* Standard FormView Screen Handling Loop */
 MAINLOOP:   IF         COND(&REQPROGRAM *NE &CURPROGRAM) THEN(GOTO FINISH)

             /* Handle the requested action */
             CALL       PGM(EXAM0012) PARM(&SYSTEMINFO &REQACTION 'EXAM0036  ' &HANDLED)

             CHGVAR     VAR(&MESSAGE) VALUE('CL variable &REQACTION = "' *CAT &REQACTION *TCAT +
                          '"')

             /* Display the form view and decide what to do next */
 FORMVIEW:   IF         COND( *NOT &NEWFORM) THEN(DO)
                CALLPRC    PRC('LRNG_SetSendChangesOnly')
             ENDDO
             CALLPRC    PRC('LRNG_Send')
             SNDRCVF    RCDFMT(FORMVIEW)
             CALLPRC    PRC('LRNG_Receive')
             CALLPRC    PRC('LRNG_GetRequestedAction') PARM((&REQPROGRAM) (&REQACTION))
             CHGVAR     VAR(&NEWFORM) VALUE('0')
             GOTO       CMDLBL(MAINLOOP)

             /* Return control to LRNGDRIVER */
 FINISH:     ENDPGM
MarkDuignan
Posts: 346
Joined: Wed Apr 18, 2012 10:33 am

Re: You can code form views using CL (Control Language) prog

Post by MarkDuignan »

This example is now shipped with LongRange.
See http://longrange.lansa.com.au/viewtopic.php?f=13&t=111
Post Reply