/* tc10938_base.p - OE baseline: SCREEN-VALUE of realized-but-never-assigned widgets */
DEFINE STREAM sout.

DEFINE VARIABLE fdate AS DATE        VIEW-AS FILL-IN FORMAT "99/99/9999" NO-UNDO.
DEFINE VARIABLE fdtm  AS DATETIME    VIEW-AS FILL-IN NO-UNDO.
DEFINE VARIABLE fdtz  AS DATETIME-TZ VIEW-AS FILL-IN NO-UNDO.
DEFINE VARIABLE fint  AS INTEGER     VIEW-AS FILL-IN NO-UNDO.
DEFINE VARIABLE fdec  AS DECIMAL     FORMAT "->>,>>9.99" VIEW-AS FILL-IN NO-UNDO.
DEFINE VARIABLE fchr  AS CHARACTER   FORMAT "x(10)" VIEW-AS FILL-IN NO-UNDO.
DEFINE VARIABLE flog  AS LOGICAL     VIEW-AS FILL-IN NO-UNDO.
DEFINE VARIABLE icb   AS INTEGER     VIEW-AS COMBO-BOX LIST-ITEM-PAIRS "One",1,"Two",2 NO-UNDO.
DEFINE VARIABLE chid  AS CHARACTER   FORMAT "x(10)" NO-UNDO.

DEFINE FRAME f fdate fdtm fdtz fint fdec fchr flog icb WITH SIDE-LABELS 15 DOWN.
DEFINE FRAME g chid WITH SIDE-LABELS.

PROCEDURE rep:
   DEFINE INPUT PARAMETER tag AS CHARACTER NO-UNDO.
   DEFINE INPUT PARAMETER v   AS CHARACTER NO-UNDO.
   IF v = ? THEN
      PUT STREAM sout UNFORMATTED tag " = ?(unknown)" SKIP.
   ELSE
      PUT STREAM sout UNFORMATTED tag " = [" v "] len=" LENGTH(v) SKIP.
END PROCEDURE.

SESSION:DATE-FORMAT = "mdy".
OS-CREATE-DIR "C:\temp".
OUTPUT STREAM sout TO "C:\temp\tc10938_out.txt".

PUT STREAM sout UNFORMATTED "OE version: " PROVERSION " session: " SESSION:DISPLAY-TYPE SKIP.

/* 1. before ENABLE: frame not yet realized */
RUN rep("pre.date  ", fdate:SCREEN-VALUE IN FRAME f).
RUN rep("pre.chr   ", fchr:SCREEN-VALUE IN FRAME f).

ENABLE ALL WITH FRAME f.

/* 2. realized + enabled, never assigned */
RUN rep("post.date ", fdate:SCREEN-VALUE IN FRAME f).
RUN rep("post.dtm  ", fdtm:SCREEN-VALUE IN FRAME f).
RUN rep("post.dtz  ", fdtz:SCREEN-VALUE IN FRAME f).
RUN rep("post.int  ", fint:SCREEN-VALUE IN FRAME f).
RUN rep("post.dec  ", fdec:SCREEN-VALUE IN FRAME f).
RUN rep("post.chr  ", fchr:SCREEN-VALUE IN FRAME f).
RUN rep("post.log  ", flog:SCREEN-VALUE IN FRAME f).
RUN rep("post.icb  ", icb:SCREEN-VALUE IN FRAME f).

/* 3. hidden-frame staleness scenario (FWD MAJOR-1 repro) */
ENABLE chid WITH FRAME g.
FRAME g:HIDDEN = TRUE.
chid = "hello".
DISPLAY chid WITH FRAME g.
RUN rep("hidden.chr", chid:SCREEN-VALUE IN FRAME g).

/* 4. after CLEAR FRAME: back to uninitialized */
fdate = TODAY.
fint  = 42.
DISPLAY fdate fint WITH FRAME f.
RUN rep("disp.date ", fdate:SCREEN-VALUE IN FRAME f).
RUN rep("disp.int  ", fint:SCREEN-VALUE IN FRAME f).
CLEAR FRAME f.
RUN rep("clear.date", fdate:SCREEN-VALUE IN FRAME f).
RUN rep("clear.dtm ", fdtm:SCREEN-VALUE IN FRAME f).
RUN rep("clear.int ", fint:SCREEN-VALUE IN FRAME f).
RUN rep("clear.chr ", fchr:SCREEN-VALUE IN FRAME f).
RUN rep("clear.icb ", icb:SCREEN-VALUE IN FRAME f).

OUTPUT STREAM sout CLOSE.
QUIT.
