Réf. : Retain values in construct statement
| 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.