I faced this situation in the past. It has been several years but after
looking at some programs I did, here is how I solved it:
In the pop up DDS, I created a second dummy record with the following
keyword:
CLRL(*NO) OVERLAY FRCDTA
In the pop up program, before exiting, I write this record. I dont
think I did anything else. Now I do not get anymore the blank
background.
Hope this help
<joepluta@xxxxxxxxxxxxxxxxx> 2010-10-05 13:08 >>>
I've got a simple situation. I populate a subfile, and can then make
selections on the subfile. I use a READC to process the subfile, and
on
each selection I call a second program which pops up a window.
Everything
works fine as long as I only select one record - the window pops up
over
the subfile, I hit enter to get out, the subfile is redisplayed, all
is
good.
The problem comes when I select more than one record. Again, the
first
selection works fine. But when I do a second READC / call, the popup
window is displayed with a completely black background; the underlying
subfile is cleared completely.
Anybody run into this? I've got KEEP and ASSUME on a DUMMY record
format
in screen 2. I've changed the RSTDSP parameters to all four
combinations
of *YES and *NO on the two programs. The programs themselves are RPG
programs compiled with DFTACTGRP(*YES). Both set on *INLR when they
exit.
I'm including the source. Hopefully it will make it through. As you
can
see, it's not rocket science. But it's really annoying.
Joe
-- TEST1D
A INDARA
A R TEST1S1 SFL
A 51 SFLNXTCHG
A S1SEL 1 B 4 2
A S1VAL 8 0O 4 4
A R TEST1C1 SFLCTL(TEST1S1)
A SFLSIZ(0018)
A SFLPAG(0017)
A OVERLAY
A CA03(03 'EXIT')
A 62 SFLDSP
A 61 SFLDSPCTL
A N61 SFLCLR
A 1 2USER
A 1 38'TEST'
A DSPATR(HI)
A 1 72TIME
A 3 2'A'
A 3 4' VALUE '
A R TEST1R1
A OVERLAY
A 23 2'F3=EXIT'
A COLOR(BLU)
-- TEST1
FTEST1D CF E WORKSTN INDDS(WSINDS)
F SFILE(TEST1S1:RRN1)
d RRN1 s 4s 0
d WSINDS ds 99
d WS_F3 03 03n
d WS_DspSflCtl 61 61n
d WS_DspSfl 62 62n
d TEST2 pr extpgm('TEST2')
d parm 8s 0 const
/free
WS_DspSfl = *off;
WS_DspSflCtl = *off;
write TEST1C1;
for RRN1 = 1 to 30;
S1SEL = *blank;
S1VAL = RRN1;
write TEST1S1;
endfor;
write TEST1R1;
WS_DspSfl = *on;
WS_DspSflCtl = *on;
write TEST1C1;
exfmt TEST1C1;
dow not WS_F3;
readc TEST1S1;
dow not %eof(TEST1D);
TEST2(S1VAL);
S1SEL = *blank;
update TEST1S1;
readc TEST1S1;
enddo;
write TEST1C1;
exfmt TEST1C1;
enddo;
*inlr = *on;
/end-free
-- TEST2D
A INDARA
A R DUMMY KEEP ASSUME
A 1 2' '
A R TEST2W1 OVERLAY
A WINDOW(10 30 02 20
*NOMSGLIN)
A*
A 1 2'Value:'
A XXVAL 8 0O 1 10
-- TEST2
FTEST2D CF E WORKSTN
d TEST2 pr extpgm('TEST2')
d parm 8s 0 const
d TEST2 pi
d parm 8s 0 const
/free
XXVAL = parm;
exfmt TEST2W1;
*inlr = *on;
/end-free
As an Amazon Associate we earn from qualifying purchases.