Page 1 of 1

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

Posted: Wed Aug 22, 2012 1:45 pm
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

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

Posted: Fri Sep 07, 2012 10:34 am
by MarkDuignan
This example is now shipped with LongRange.
See http://longrange.lansa.com.au/viewtopic.php?f=13&t=111