×
The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.
It depends on how the Pop-up window will be used. It needs a DUMMY
record with ASSUME keyword as noted in other posts. However, if the
pop-up window is to be used as a sub file option to be called multiple
times in a row, it will still blank out the back ground on subsequent
calls. You can do one of two things. One, after returning to the
caller re-write the screen and then call the pop-up window. Two, call a
DMS API to save and restore the back ground screen between calls.
I like the later since I do not have to possibly write many records back
out and the back ground screen can be quite complicated with multiple
windows.
Code I use to make this work
H BNDDIR('QSNAPI')
DQSNSAVSCR PR 10I 0 EXTPROC('QsnSavScr')
D Savebuffer 10I 0 OPTIONS(*OMIT)
D Cmdbuffer 10I 0 OPTIONS(*OMIT)
D Lowlvlenv 10I 0 OPTIONS(*OMIT)
D ErrorDS 10I 0 OPTIONS(*OMIT)
DQSNPUTBUF PR 10I 0 EXTPROC('QsnPutBuf')
D Savebuffer 10I 0 OPTIONS(*OMIT)
D Lowlvlenv 10I 0 OPTIONS(*OMIT)
D ErrorDS 10I 0 OPTIONS(*OMIT)
*---
D SAVEBUFFER S 10I 0
C WHEN S1OPT = 'S'
C CALLP QSNSAVSCR(SAVEBUFFER :*OMIT :*OMIT
:*OMIT)
C CALLP AMA78SRG(S1VENDOR)
C CALLP QSNPUTBUF(SAVEBUFFER :*OMIT :*OMIT)
One last thing to consider, are you using mixed screen size
environments? We do and we have to set the DSPSIZ() correctly. The
back ground screens will blank out if displaying a popup window in a
different screen size.
Sample screen:
A DSPSIZ(24 80 *DS3 27 132
*DS4)
...
A R WINDEF
A N10 DSPMOD(*DS4)
A OVERLAY
A *DS4 WINDOW(*DFT 17 62 *NOMSGLIN)
A *DS3 WINDOW(*DFT 17 62 *NOMSGLIN)
...
A R WINSFL
...
A R WINCTL
A SFLCTL(WINSFL)
A *DS4 SFLSIZ(11)
A *DS3 SFLSIZ(11)
A *DS4 SFLPAG(10)
A *DS3 SFLPAG(10)
A *DS4 WINDOW(WINDEF)
A *DS3 WINDOW(WINDEF)
...
A R WINFTR
A *DS3 WINDOW(WINDEF)
A *DS4 WINDOW(WINDEF)
A N10 DSPMOD(*DS4)
We use a DSM API to get the screen size from QsnRtvMod to set *IN10 on
or off (in the calling programs) depending on the last screen presented.
-- Matt
-----Original Message-----
From: Alan Campin [mailto:alan0307d@xxxxxxxxx]
Sent: Tuesday, March 10, 2009 4:40 PM
To: RPG programming on the IBM i / System i
Subject: Overlays and Display Screens
We have a programmer here who is trying to get a window to pop up still
leaving the original screen displayed but when he displays the window it
blanks out the screen.
The display is in a separate display file and he has tried Overlay and
Putovr but nothing seems to work. As soon as he displays the window, the
screen background goes blank.
Is there a special trick to get the screen to stay if you are calling to
a
separate program with it's own display file? The window is a window
subfile.
I swear that I have done this before and it worked.
Thanks for any help.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact
[javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.