Réf. : Retain values in construct statement

[email protected]
Newsgroups gmane.comp.lang.4gl.fourjs.user
Message-ID <OFF3356264.23974E23-ONC1256FE1.00422E05-C1256FE1.0043C495@xx>
> To all,
>    is it possible to retain values entered in contruct statement?
>    For example, CONSTRUCT 1 and CONSTRUCT 2, entered some values in 
CONSTRUCT
> 1, move to CONSTRUCT 2 - then entered some values in CONSTRUCT 2.  Now 
go
> back to CONSTRUCT 1.  Values entered before is still in the fields.
> 

You can try something like that (not tested) :

GLOBALS   # or you can send them to the function and return them from the
function

DEFINE sv_field1 CHAR(40)
DEFINE sv_field2 CHAR(40)

DEFINE sv_field3 CHAR(40)
DEFINE sv_field4 CHAR(40)

DEFINE clause1 CHAR(512)
DEFINE clause2 CHAR(512)

END GLOBALS

MAIN

WHILE what_you_want

         CALL crit1()
         CALL crit2()

END WHILE

END MAIN

FUNCTION crit1()

         CONSTRUCT clause1 ON field1,field2
                         FROM field1,field2

       BEFORE FIELD field1
                 CALL disp_form1()
         AFTER FIELD field1
                 LET sv_field1 = GET_FLDBUF(field1)

        BEFORE FIELD field2
                 CALL disp_form1()
         AFTER FIELD field2
                 LET sv_field2 = GET_FLDBUF(field2)

         END CONSTRUCT

END FUNCTION

FUNCTION crit2()

         CONSTRUCT clause2 ON field3,field4
                         FROM field3,field4

       BEFORE FIELD field3
                 CALL disp_form2()
         AFTER FIELD field1
                 LET sv_field3 = GET_FLDBUF(field3)

        BEFORE FIELD field4
                 CALL disp_form2()
         AFTER FIELD field4
                 LET sv_field4 = GET_FLDBUF(field4)

         END CONSTRUCT

END FUNCTION

FUNCTION disp_form1()

         DISPLAY sv_field1, sv_field2 TO field1, field2

END FUNCTION

FUNCTION disp_form2()

         DISPLAY sv_field3, sv_field4 TO field3, field4

END FUNCTION

It works for me, but you must be carefully having fields long enough
because the GET_FLDBUF function returns only what is on the screen (not
all what you've typed).

Good luck.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.