($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
DSPFのCHANGEキーワードについて LiR さん [ 4月30日(木) 20時50分 ]
プログラム作成時に参考にしたプログラムの中でCHANGEキーワードが使われていました。
普段使用したことがないので、そのまま流用したのですが、対象の画面の値を変更してもインジケータ
ーがオンになってきません。
どのような場合に、CHANGEキーワードで指定したインジケーターがオンになるのでしょうか?
よろしくお願いいたします。
RE:DSPFのCHANGEキーワードについて ASD さん [ 5月2日(土) 0時13分 ]
CHANGE(05) こんな感じですか。
ONなっても 確認する前に OFF なってるとか。
RE:DSPFのCHANGEキーワードについて LiR さん [ 5月7日(木) 10時55分 ]
> CHANGE(05) こんな感じですか。
> ONなっても 確認する前に OFF なってるとか。
> 

DSPソースはこんな感じになっています。

A          R DSP01                                                  
A                                      CLRL(22)                     
A                                      OVERLAY                      
A                                      PRINT(*LIBL/QPRINT)          
A                                      CF03(03 ' 終了 ')            
A                                      CHGINPDFT(LC)                
A                                      CHANGE(71)                   

このDSP01をEXFMTした後に*IN71の内容を確認してみたのですが、画面の値を変更していても、して
いなくてもOFFなんです。
イメージとしては値を変更したら*IN71がONになってほしいなと。
なにか、錯覚してます。 ASD さん [ 5月7日(木) 15時37分 ]
CRTDSPF が 落ちてるとか。
RE:なにか、錯覚してます。 LiR さん [ 5月7日(木) 16時16分 ]
> CRTDSPF が 落ちてるとか。
> 

DSPソース見にくかったですね。すみません。

コンパイルが正常に終了していないということでしょうか?
問題なくオブジェクトが作成されています。

CHANGEを使用するためにコンパイルオプションが必要とか
RPG側に何か指定するものがあるのでしょうか?
完全なDDS ASD さん [ 5月7日(木) 17時4分 ]
> > CRTDSPF が 落ちてるとか。
> > 
> 
> DSPソース見にくかったですね。すみません。
> 
> コンパイルが正常に終了していないということでしょうか?
> 問題なくオブジェクトが作成されています。
> 
> CHANGEを使用するためにコンパイルオプションが必要とか
> RPG側に何か指定するものがあるのでしょうか?
RE:完全なDDS LiR さん [ 5月8日(金) 10時31分 ]
DSPソース

R DSP01
                          CLRL(22)
                          OVERLAY
                          PRINT(*LIBL/QPRINT)
                          CF03(03 ' 終了 ')
                          CHGINPDFT(LC)
                          CHANGE(71)
                          RTNCSRLOC(&D1RTNRCD &D1RTNFLD)
                          CSRLOC(D1LIN D1POS)
  D1RTNRCD      10A  H
  D1RTNFLD      10A  H
  D1LIN          3S 0H
  D1POS          3S 0H
  D1AAAA         5Y 2B  3 13
                            CHECK(RB)
                            DSPATR(UL)
31                          DSPATR(RI PC)
                            EDTWRD('   .  ')
キーワードの不足 ASD さん [ 5月8日(金) 19時1分 ]
> DSPソース
> 
> R DSP01
>                           CLRL(22)
>                           OVERLAY
>                           PRINT(*LIBL/QPRINT)
>                           CF03(03 ' 終了 ')
>                           CHGINPDFT(LC)
>                           CHANGE(71)
>                           RTNCSRLOC(&D1RTNRCD &D1RTNFLD)
>                           CSRLOC(D1LIN D1POS)
>   D1RTNRCD      10A  H
>   D1RTNFLD      10A  H
>   D1LIN          3S 0H
>   D1POS          3S 0H
>   D1AAAA         5Y 2B  3 13
>                             CHECK(RB)
>                             DSPATR(UL)
> 31                          DSPATR(RI PC)
>                             EDTWRD('   .  ')
キーワードの不足  ASD さん [ 5月8日(金) 19時13分 ]
CF03(03) の *IN03 は 帰ってますか。
(プログラムは KC で処理するのが 普通)

帰ってる  こうなると IBM に聞くしかない。

帰ってない ファイルレベル レコードレベルのキーワードが不足してる。

 A                                      DSPSIZ(*DS3 *DS4)                   
 A                                      USRDSPMGT CHGINPDFT INDARA          
 A                                      HELP                                
 A          R XXXXXAA                                                      
 A                                      DSPMOD(*DS3)                        
 A                                      PRINT                               
 A                                      INVITE                              
 A                                      SLNO(01)                            
 A                                      CLRL(*ALL)                          
 A                                      ALWROL                              
 A                                      CF07 CF08 CF09 CF10 CF19    

昔からの枕ことば このへんに ヒントがあるかも。 
        
RE:キーワードの不足  LiR さん [ 5月8日(金) 20時13分 ]
> CF03(03) の *IN03 は 帰ってますか。
> (プログラムは KC で処理するのが 普通)

⇒*IN03は帰ってます。
 ということは聞くしかないですか・・・
> 帰ってる  こうなると IBM に聞くしかない。
 

> 帰ってない ファイルレベル レコードレベルのキーワードが不足してる。

念のために、キーワード追加してみました。
ファイルレベル:USRDSPMGT CHGINPDFT INDARA HELP
レコードレベル:INVITE     SLNO(01)   ALWROL  

やっぱり変化ありませんでした。

もう少し、調査してみます。
ありがとうございました。
RE:キーワードの不足  @445 さん [ 5月11日(月) 9時50分 ]
DDSのマニュアルには

コマンドアテンションキー(CAXX,HELP,PRINT,HOMEまたはCLEAR)を押した場合には
CHANGE応答標識はオンになりません。

と書いてあります。

ご参考まで。

> CHANGE(05) こんな感じですか。
> ONなっても 確認する前に OFF なってるとか。
> 
RE:キーワードの不足  IKD さん [ 5月9日(土) 10時1分 ]
ASDさんの DSPF の記述には問題ありません。

CHANGE(71) キー・ワードは確実に動作していることを実際に
DSPF + CLP で動作を下記のソースで確認テストしました。

 DSPF: TEST02FM ( http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QDSPSRC.FILE/TE
ST02FM.MBR )
---------------------------------------------------------------------------
-----------
0001.00      A                                      DSPSIZ(24 80 *DS3)   
0002.00      A                                      MSGLOC(24)           
0003.00      A                                      PRINT                
0004.00      A          R DSP01                                          
0005.00      A                                      CLRL(22)             
0006.00      A                                      TEXT(' 明細画面 01') 
0007.00      A                                      CF03(03 ' 終了 ')    
0008.00      A                                      CHGINPDFT            
0009.00      A                                      CHANGE(71)           
0010.00      A            D1AAAA         5Y 2B  3 13                     
0011.00      A                                      CHECK(RB)            
0012.00      A                                      DSPATR(UL)           
0013.00      A                                      EDTWRD('   .  ')     
---------------------------------------------------------------------------
----------

 CLP : TEST02CL ( http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QCLSRC.FILE/TES
T02CL.MBR )
---------------------------------------------------------------------------
-----------
0001.00              PGM                                                  
0002.00              DCLF       FILE(TEST.COM/TEST02FM)                   
0003.00                                                                   
0004.00  DSPLY:      SNDRCVF    RCDFMT(DSP01)                             
0005.00              IF         COND(&IN03 *EQ '1') THEN(RETURN)          
0006.00              IF         COND(&IN71 *EQ '1') THEN(DO)              
0007.00              SNDPGMMSG  MSG('*IN71 は ON です。 ') MSGTYPE(*DIAG) 
0008.00              ENDDO                                                
0009.00              ELSE       CMD(DO)                                   
0010.00              SNDPGMMSG  MSG('*IN71 は OFF です。 ') MSGTYPE(*DIAG)
0011.00              ENDDO                                                
0012.00              ENDPGM                                               
---------------------------------------------------------------------------
-----------

CHANMGE(71) のは問題はなくても実際の DSPF ソースには SETOFF が記述されているとか
標識 71 が DSPF の SFLレコード内でも定義されていたりすると
SFL の操作によって OFF になる場合があります。
ERRMSG や SFLMSG キーワードに同じ標識 71 が定義されていると OFF になります。

要はプログラム・コーディングのどこかにミスがあるはずですので
 71 という文字列を SEU で SCAN して調べてください。
どこか他で使用されているはずです。


なお *IN03 の使用は決して特殊ではありません。むしろ一般的です。
*INKC のほうが S/36 時代の使用方法を引き継いで゜いるので特殊なケースです。
RE:キーワードの不足  LiR さん [ 5月9日(土) 14時29分 ]
ありがとうございます。
もう一度じっくりソースを見直しました。
同じインジケータを使用しているというミスがありました。

CHANGE、ちゃんと認識してくれました。
お礼 LiR さん [ 5月9日(土) 14時31分 ]
ASDさん
IKDさん 

無事にCHANGEキーワードを使用することができました。
お時間いただきありがとうございました。
これからはもう少しじっくりソースを確認してミスのないようにします。

意思疎通は ムズイ ASD さん [ 5月9日(土) 21時42分 ]
ONなっても 確認する前に OFF なってるとか。

標識の たらいの まわしを 言ってます。
開示されない 部分は、回答者には、見えません。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目