DSPF の WINDOWパラメータを使ってPOPUPレコードを出力するときは
いくら
OVERLAY PROTECT + CLRL(*NO)
をDSPFに定義していても背景が消えてしまう。
背景を消さずに残したままでPOPUP表示するにはどのようにすれば
よいのだろうか?
この方法はIBMマニュアルには見つけることはできず
先輩から後輩へ伝授される秘伝のようなものであるので
ここに公開する。
[DSPF : POP002FM ]
001.00 A*%%TS SD 20170525 155252 QTR REL-V6R1M0 5761-WDS 002.00 A*%%EC 003.00 A DSPSIZ(24 80 *DS3) 004.00 A MSGLOC(24) 005.00 A PRINT 006.00 A R POPRCD 007.00 A* WINDOW( 開始行 開始桁 行数 桁数 ) 008.00 A CLRL(*NO) 009.00 A OVERLAY 010.00 A PUTOVR 011.00 A PROTECT 012.00 A BLINK 013.00 A CF03(03 ' 終了 ') 014.00 A 8 37'RECORD タイプの POPUP' 015.00 A DSPATR(HI) 016.00 A 10 64DATE EDTCDE(Y) 017.00 A 12 32' これは CLRL(*NO) キー・ワード + 018.00 A による ' 019.00 A 13 33'POPUP ウィンドウです。 ' 020.00 A 15 33'OVERLAY PUTOVR による方法です。 ' 021.00 A 17 32'F3= 終了 ' 022.00 A COLOR(BLU) 023.00 A* ウィンドウ・ボーダー 0024.00 A R BORDER 0025.00 A*%%TS SD 20170525 155252 QTR REL-V6R1M0 5761-WDS 0026.00 A OVERLAY 0027.00 A CLRL(*NO) 0028.00 A PUTOVR 0029.00 A 7 27' ┏━━━━━━━━━━━━━━━ + 0030.00 A ━━━━━━━━┓ ' 0031.00 A COLOR(BLU) 0032.00 A 8 27' ┃ ' 0033.00 A COLOR(BLU) 0034.00 A 9 27' ┃ ' 0035.00 A COLOR(BLU) 0036.00 A 8 75' ┃ ' 0037.00 A COLOR(BLU) 0038.00 A 9 75' ┃ ' 0039.00 A COLOR(BLU) 0040.00 A 10 27' ┃ ' 0041.00 A COLOR(BLU) 0042.00 A 10 75' ┃ ' 0043.00 A COLOR(BLU) 0044.00 A 11 27' ┃ ' 0045.00 A COLOR(BLU) 0046.00 A 11 75' ┃ ' 0047.00 A COLOR(BLU) 0048.00 A 12 75' ┃ ' 0049.00 A COLOR(BLU) 0050.00 A 13 75' ┃ ' 0051.00 A COLOR(BLU) 0052.00 A 14 75' ┃ ' 0053.00 A COLOR(BLU) 0054.00 A 15 75' ┃ ' 0055.00 A COLOR(BLU) 0056.00 A 16 75' ┃ ' 0057.00 A COLOR(BLU) 0058.00 A 17 75' ┃ ' 0059.00 A COLOR(BLU) 0060.00 A 16 27' ┃ ' 0061.00 A COLOR(BLU) 0062.00 A 15 27' ┃ ' 0063.00 A COLOR(BLU) 0064.00 A 14 27' ┃ ' 0065.00 A COLOR(BLU) 0066.00 A 13 27' ┃ ' 0067.00 A COLOR(BLU) 0068.00 A 12 27' ┃ ' 0069.00 A COLOR(BLU) 0070.00 A 17 27' ┃ ' 0071.00 A COLOR(BLU) 0072.00 A 18 27' ┗━━━━━━━━━━━━━━━ + 0073.00 A ━━━━━━━━┛ ' 0074.00 A COLOR(BLU) 0075.00 A 8 33' - 0076.00 A ' 0077.00 A 9 33' - 0078.00 A ' 0079.00 A 10 33' - 0080.00 A ' 0081.00 A 11 33' - 0082.00 A ' 0083.00 A 12 33' - 0084.00 A ' 0085.00 A 13 33' - 0086.00 A ' 0087.00 A 17 33' - 0088.00 A '
━━━━━━━━━━━━━━━━━━━━━━━ RECORD タイプの POPUP 20/03/18 これは CLRL(*NO) キー・ワードによる POPUP ウィンドウです。 OVERLAY PUTOVR による方法です。 F3= 終了 ━━━━━━━━━━━━━━━━━━━━━━━
[解説]
このDSPFでは不十分で実行するとPOPUPの背景は消えてしまう。
背景も残すようにするには
[ POP002FM : 背景が消えないPOPUPウィンドウ DSPF ]
ソースはこちらで
001.00 A*%%TS SD 20170525 155252 QTR REL-V6R1M0 5761-WDS 002.00 A*%%EC 003.00 A DSPSIZ(24 80 *DS3) 004.00 A MSGLOC(24) 005.00 A PRINT 006.00 A R POPRCD 007.00 A* WINDOW( 開始行 開始桁 行数 桁数 ) 008.00 A CLRL(*NO) 009.00 A OVERLAY 010.00 A PUTOVR 011.00 A PROTECT 012.00 A BLINK 013.00 A CF03(03 ' 終了 ') 014.00 A 8 37'RECORD タイプの POPUP' 015.00 A DSPATR(HI) 016.00 A 10 64DATE EDTCDE(Y) 017.00 A 12 32' これは CLRL(*NO) キー・ワード + 018.00 A による ' 019.00 A 13 33'POPUP ウィンドウです。 ' 020.00 A 15 33'OVERLAY PUTOVR による方法です。 ' 021.00 A 17 32'F3= 終了 ' 022.00 A COLOR(BLU) 023.00 A* ウィンドウ・ボーダー 0024.00 A R BORDER 0025.00 A*%%TS SD 20170525 155252 QTR REL-V6R1M0 5761-WDS 0026.00 A OVERLAY 0027.00 A CLRL(*NO) 0028.00 A PUTOVR 0029.00 A 7 27' ┏━━━━━━━━━━━━━━━ + 0030.00 A ━━━━━━━━┓ ' 0031.00 A COLOR(BLU) 0032.00 A 8 27' ┃ ' 0033.00 A COLOR(BLU) 0034.00 A 9 27' ┃ ' 0035.00 A COLOR(BLU) 0036.00 A 8 75' ┃ ' 0037.00 A COLOR(BLU) 0038.00 A 9 75' ┃ ' 0039.00 A COLOR(BLU) 0040.00 A 10 27' ┃ ' 0041.00 A COLOR(BLU) 0042.00 A 10 75' ┃ ' 0043.00 A COLOR(BLU) 0044.00 A 11 27' ┃ ' 0045.00 A COLOR(BLU) 0046.00 A 11 75' ┃ ' 0047.00 A COLOR(BLU) 0048.00 A 12 75' ┃ ' 0049.00 A COLOR(BLU) 0050.00 A 13 75' ┃ ' 0051.00 A COLOR(BLU) 0052.00 A 14 75' ┃ ' 0053.00 A COLOR(BLU) 0054.00 A 15 75' ┃ ' 0055.00 A COLOR(BLU) 0056.00 A 16 75' ┃ ' 0057.00 A COLOR(BLU) 0058.00 A 17 75' ┃ ' 0059.00 A COLOR(BLU) 0060.00 A 16 27' ┃ ' 0061.00 A COLOR(BLU) 0062.00 A 15 27' ┃ ' 0063.00 A COLOR(BLU) 0064.00 A 14 27' ┃ ' 0065.00 A COLOR(BLU) 0066.00 A 13 27' ┃ ' 0067.00 A COLOR(BLU) 0068.00 A 12 27' ┃ ' 0069.00 A COLOR(BLU) 0070.00 A 17 27' ┃ ' 0071.00 A COLOR(BLU) 0072.00 A 18 27' ┗━━━━━━━━━━━━━━━ + 0073.00 A ━━━━━━━━┛ ' 0074.00 A COLOR(BLU) 0075.00 A 8 33' - 0076.00 A ' 0077.00 A 9 33' - 0078.00 A ' 0079.00 A 10 33' - 0080.00 A ' 0081.00 A 11 33' - 0082.00 A ' 0083.00 A 12 33' - 0084.00 A ' 0085.00 A 13 33' - 0086.00 A ' 0087.00 A 17 33' - 0088.00 A ' 0089.00 A* ウインドウの背景を消去させないために 0090.00 A* ASSUME レコードが必要です。 0091.00 A R #DUMMY ASSUME 0092.00 A DMY 2 O 1 2DSPATR(ND)
[解説]
0091.00 A R #DUMMY ASSUME 0092.00 A DMY 2 O 1 2DSPATR(ND)
この2行は出力かる必要はないがDSPFソースに入れておいて CRTDSPF で作成する必要がある。
何故だか不明であるが不思議な伝授である。