If you are on OS/400 V2R1, you may already be realizing the benefits and added usability that come with using the new window specifications in DDS. If you want windows and don't have V2R1, you may be struggling with the question: Do I spend all the time and effort upgrading to V2R1 just for windows support?
Well, relax. V1R3 is capable of having fully functional windows that do not disturb the underlying display. 6 is an example of the DDS code required in pre-V2 programs to display a nondestructive window over an existing display. The window borders are drawn by placing blank constants (ex ' ') on the screen, and giving them the reverse image attribute. After the window borders are drawn, you can fill the window with fields, text constants, etc. Any spaces within the window that are not taken up with fields or text must be filled in with blanks or the underlying screen will show through.
Well, relax. V1R3 is capable of having fully functional windows that do not disturb the underlying display. Figure 6 is an example of the DDS code required in pre-V2 programs to display a nondestructive window over an existing display. The window borders are drawn by placing blank constants (ex ' ') on the screen, and giving them the reverse image attribute. After the window borders are drawn, you can fill the window with fields, text constants, etc. Any spaces within the window that are not taken up with fields or text must be filled in with blanks or the underlying screen will show through.
Once the window is drawn and filled, edit the DDS source and add these keywords to the source: KEEP, ASSUME, OVERLAY and PUTOVR. Then for every line of the window border and window contents, you must specify either the OVRATR attribute (for constants), or both the OVRATR and OVRDTA attributes (for fields). For simplicity, you can code OVRATR once, at the record level.
Compile the file with RSTD (*YES). After compilation, when you display the file, it will pop up over top of the current display. Voil`, instant windows, without V2R1.
Editor's Note: There is one limitation of this method. Any screen attributes to the right of the window will be lost. For example, if you display a window over a screen full of underlines, any underlines to the right of the window that occupy the same rows as the window will be removed from the screen. With this in mind, you would tend to display your windows on the right of your screen. If you display overlapping multiple windows, you would always want to display them from right to left.
TechTalk: V1R3 Does Windows
Figure 6 DDS for windows
Figure 6: DDS for Windows ... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8 A DSPSIZ(24 80 *DS3) A PRINT A CA03(03 'Exit') A CA12(12 'Cancel') A R WINDOW A KEEP A ASSUME A BLINK A OVERLAY A PUTOVR A OVRATR A 4 16' Test Window - A ' A DSPATR(RI) COLOR(BLU) A 5 16' ' A DSPATR(RI) COLOR(BLU) A 5 18'Enter customer number: - A ' A 5 57' ' A DSPATR(RI) COLOR(BLU) A 6 16' ' A DSPATR(RI) COLOR(BLU) A 6 18' - A ' A 6 57' ' A DSPATR(RI) COLOR(BLU) A 7 16' ' A DSPATR(RI) COLOR(BLU) A 7 18'Customer:' A CSTNBR 8Y 0B 7 28EDTCDE(4) A OVRDTA A 7 37' ' A 7 57' ' A DSPATR(RI) COLOR(BLU) A 8 16' ' A DSPATR(RI) COLOR(BLU) A 8 18' - A ' A 8 57' ' A DSPATR(RI) COLOR(BLU) A 9 16' ' A DSPATR(RI) COLOR(BLU) A ERRMSG 38A O 9 18DSPATR(HI) A OVRDTA A 9 57' ' A DSPATR(RI) COLOR(BLU) A 10 16' F3=Exit F12=Cancel - A ' A DSPATR(RI) COLOR(BLU) ... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+... 8
LATEST COMMENTS
MC Press Online