($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
画面の重ね表示 キッズ さん [ 4月2日(日) 0時1分 ]
RPGでDSPFの重ね表示が出来なく困っています。
事の始まりはRPG36の2本のプログラムでの画面が重ね表示出来ているからです。
私がチャレンジしているのは、プログラムAで画面表示します。
その後プログラムBを呼び出しプログラムAの画面9行目から24行までに
プログラムBの画面を重ね表示させたいのです。。
プログラムAのDSPFはコマンド表示レコードとデータ表示レコードに分かれており
コマンドレコードをWRITEしデータ表示レコードをEXFMTしています。
プログラムBのDSPFはデータ表示レコードだけで9行目から24行まで使うので
SLNO(09) CLRL(16)と記述しています。
CRTDSPFで画面復元、書き出し据え置きの設定を変えてみましたが
プログラムAからプログラムBを呼び出すとプログラムAの画面が消えブログラムBの画面だけ
表示されます。
もしやと思いプログラムAのDSPFもCRTDSPFで画面復元、書き出し据え置きの設定を変えてみましたが
やはりプログラムAの画面が消えてプログラムBの画面だけが表示されます。
RPG36では簡単に出来ているのですがPRGでは同じ様にして出来ません。
WINDOWでと思ったのですがDSPFの長さが78桁使用するので使えません。
Webとか色々と探しましたが参考になるもの見つかりませんでした。
どなたかご教授願います。
RE:画面の重ね表示 IKD さん [ 4月3日(月) 8時5分 ]
複数のプログラムでDSPFの共用もできます。
 
CRTDSPFではなく実行時に
OVRDSPF FILE(MYDSPF) SHARE(*YES) OPNSCOPE(*JOB)
CALL PGMA
CALL PGMB
DLTOVR MYDSPF LVL(*JOB)
としてみてください。
RE:画面の重ね表示 キッズ さん [ 4月5日(水) 19時3分 ]
IKDさんご教授ありがとうございます。
OVRDSPF記述してみましたが思う様に出来ませんでした。
私の投稿がわかりにくかったのかもしれないので今一度追記説明させていただきます。

DSPFは下記の様に設定
PGMAD
     R DSP00 <=データ表示
            OVERLAY
     R DSPCMD <=コマンド表示
     
PGMBD
     R DSP01  <=データ表示
            SLNO(09)
            CLRL(16)
            OVERLAY


CALL PGMA
     WRITEDSPCMD
     EXFMTDSP00
     CALL PGMB
          EXFMTDSP01

PGMBが実行された時画面の表示的には
PGMAの画面を消さずに残す
PGMAの消さずに残した画面の
09行目から24行目にPGMBのデータを表示

再度ご教授願います。
RE:画面の重ね表示 通りすがり さん [ 4月7日(金) 9時32分 ]
DSP00とDSP01で表示する行が1行でも被ってる場合
DSP01をEXFMTした場合、DSP00は消えると思います

DSP00でDSP01とかぶる行は別レコードにして
PGMAでWRITEする形にしてみてはいかがでしょうか?
RE:画面の重ね表示 キッズ さん [ 6月24日(土) 13時47分 ]
返信遅くなり申し訳ありません。

色々とご教授頂きましたがDSPFの表示データをワークファイルに落としてPGMBのDSPFにセットするという方法でのりきりました。

IKSさん通りすがりさん ありがとうございました。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目