($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月16日(木) 9時35分 ]
FFRPG 表示装置ファイルでの ROLLUPキー使用について教えていただきたいです。

画面(DSPF)とフリーフォーマット(FFRPG)でデータ照会プログラムを作ろうとしています。

1画面に1レコードを表示する形です。前後のレコードを表示する時、
ユーザーは、PageUpキー、PageDownキーを押下するという仕様です。

画面(DSPF)には、

A                   ROLLUP(93)     
A                   ROLLDOWN(94)   

と記述しています。

RPG3 では、
C     *IN93   IFEQ  *ON   
と記載して、このあとの行に ROLLUP キーを押下された場合の処理を書いていました。

FFRPG では、
    
      *IN93  = *on;

と記載してみましたが、以下のようにコンパイルエラーになります。

 RNF7030: 名前または標識*IN93が定義されていない。
 RNF7503: 式に定義されていないオペランドが含まれている。  

他の箇所で画面(DSPF)に記述している
CA1 に対する FFRPG の *inka はコンパイルエラーにならないのですが、
ROLLUP ROLLDOWN は上手くいかない状態です。

どなたか、参考になる情報もしくはサイトなどご存じでしたら、ご教示いただきたいです。
何卒よろしくお願いいたします。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月16日(木) 9時41分 ]
申し訳ないです。
FFRPG では、

if *IN93 = *on;

と記述しています。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月16日(木) 15時24分 ]
RPGのコンパイル・リストに

  N    3    3  *IN93                            ROLLUP
  N    4    4  *IN94                            ROLLDWN

のようにROLLUP標識も印刷出力されていますか?
* 7030のエラーが出ているのは標識が定義されていないことを
意味しています。

   IF *IN93 = *ON;

の書き方には問題ありません。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月17日(金) 17時8分 ]
IKD様 ご教示ありがとうございます。
早々にリアクション頂き感謝いたします。

RPG3 で、コンパイルOKとなっている、CRTRPGPGM のコンパイルリストには、

INPUT   レコード SC02S ファイル  様式 SC02S のフィールド  
                                        1   1 *IN91              
                                        2   2 *IN93              
                                        3   3 *IN94              

*IN93       A(1)    A000002  B000002  C000002  D000002    14400  
*IN94       A(1)    A000003  B000003  C000003  D000003    14500

といった記述があり、表示装置ファイルの93 94 の定義がRPGに反映されていると判断しています。

FFRPGでは、コンパイルエラーで、 CRTBNDRPGのコンパイルリストには、
ROLLUP といった表示は無く、以下の表示です。
*RNF7030 30    354 000332   名前または標識 *IN93 が定義されていない。 
*RNF7030 30    386 000364   名前または標識 *IN94 が定義されていない。
*RNF7030 *IN93             **UNDEF**             354     384     489     50   
*RNF7030 *IN94             **UNDEF**             386     493     507     57   
と表示されています。


表示装置ファイルに関する書き方に問題があるかもしれないので、もう少し格闘してみます。 

dcl-f U3E410D workstn(*EXT) infds(infds) usage(*input:*output);
dcl-ds dspSC01 likerec(SC01:*ALL);
dcl-ds dspSC02S likerec(SC02S:*ALL);
dcl-ds dspFMTMG likerec(#FMTMG:*ALL);
dcl-ds dspSC99 likerec(SC99:*ALL);
dcl-ds infds;
   cusr  packed(2:0) POS(370);
end-ds infds;

と書いています。もう少しよく調べてみます。
もし何かお気づきの方がいらっしゃれば、アドバイスいただけるとありがたいです。
よろしくお願いいたします。       
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月19日(日) 12時54分 ]
まさかとは思いますがFFRPGでは当然DSPFは外部記述に
なっていますよね。
なぜここでRPG IIIが出てくるのかよくわかりませんが。
DSPFが内部記述では当然* 7030になります。
FFRPGの F-仕様書を見せて頂けませんでしょうか?
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月20日(月) 9時28分 ]
IKD様 ありがとうございます。

説明が不十分でした。申し訳ありません。
既存のDSPF,RPG が存在しており、正常に稼働しています。

DSPF はそのまま、既存の物を使用し、RPG を FFRPG に書き換えてみようとしています。
DSPFは外部記述です。CRTDSPFで作成された物です。
RPG III のことを記載しているのは、既存のRPG III で書かれたソースと比較しながら考えていたためです。

DSPFに関するf仕様書は以下のように書いています。
U3E410DというDPPFに、SC01,SC02S,FMTMG,SC99 というレコードがある状態です。

dcl-f U3E410D workstn(*EXT) infds(infds) usage(*input:*output);
dcl-ds dspSC01 likerec(SC01:*ALL);
dcl-ds dspSC02S likerec(SC02S:*ALL);
dcl-ds dspFMTMG likerec(#FMTMG:*ALL);
dcl-ds dspSC99 likerec(SC99:*ALL);
dcl-ds infds;
   cusr  packed(2:0) POS(370);
end-ds infds;      

なお、DSPF は従来のA仕様書で、93 94は以下のように既述しています。

A                                      DSPSIZ(24 80 *DS3)        
A                                      PRINT(*LIBL/QPRINT)       
A                                      VLDCMDKEY(91 'ANY VALID KEY')
A          R SC01    
A                                      OVERLAY                   
A                                      PROTECT                   
A                                      ERASE(SC02S)              
A*                                                               
A                                      ROLLUP(93)                
A                                      ROLLDOWN(94)        
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月20日(月) 14時59分 ]
DSPFのDDSソースにINDARAキー・ワードを使用していませんか?
INDARAキー・ワードを使用すると標識エリアを入出力バッフアーから
除去してしまいます。
それならROLLUP標識が未定義になってしまう可能性があります。
またこのDSPFでRPG IIIが動いていたのであれば
RPG IIIではどのような記述をしていたのか
確かめてください。
RPG |||からいきなりファイル仕様書までフリー・フォーマットにする
必要はあるのでしょうか?
ファイル仕様書までフリー・フォーマットにしてしまうと
RPGに精通している人でも困惑してしまいますので
普通は演算仕様書のみフリー・フォーマットにします。
それ以外をフリー・フォーマットにする利点は
見当たりませんので。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月21日(火) 10時54分 ]
IKD さん、ありがとうございます。

FFRPGを始めたばかりで、試行錯誤しております。
コメントいただいた内容、非常に勉強になり、感謝しております。

DSPFのDDSソースにINDARAキー・ワードは使用しておりません。

「演算仕様書のみフリーフォーマットにする」ということには思い至りませんでした。
この形で、やり直してみることに致します。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月21日(火) 13時2分 ]
フリー・フォーマットへの移行は無理やり力ずくで
移行するのではなくそれなりの理由があってのことです。
DS QUALIFIED など便利な新しい機能を使い始めると
フリー・フォーマットでないと書ききれなかったり
見やすくするためにフリー・フォーマットを
一部だけ採用して徐々に拡大していくことになります。
ただしフリー・フォーマットは万能ではなく
MOVEA などは配列とフィールドの変換に大変便利なのですが
フリー・フォーマットでは使うことができません。
今までの書き方のほうが見やすくわかりやすい場面も
ありますので少しずつフリー・フォーマットに慣れていくほうが
社内でも自然な移行ができると思います。

 https://www.as400-net.com/rpg/1410/  

( ここからフリー・フォーマットの紹介があります。 )

RE:FFRPG 表示装置ファイルのROLLUPキー使用 ho さん [ 5月25日(木) 23時4分 ]
PAGEUP、PAGEDOWNで記述してみるとどうでしょうか?

弊社では下記のように記述して対応しております。
FFRPG、C仕様書のみフリーで書いていた時も下記のやり方で対応していました。


// DSPF

PAGEUP(84 '前頁')  
PAGEDOWN(85 '次頁')


// RPG

IF *IN85;
  // 処理
ENDIF;  

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目