RPG

123. ラジオ・ボタンを DSPF で表示するには?

DDS解説書にはラジオ・ボタンも用意されているので、ここに紹介する。
ラジオ・ボタンやコンボボックスが有用であるのは選択候補がすべて表示されているので、
操作の説明が不要であるからだ。
従来の5250画面では「XX 区分」だけのフィールドのタイトルではどのような値を入力すれば
よいのかが、わからない。
そこで操作ガイドや説明を必要としたのだが、ラジオ・ボタンやコンボボックスであれば候補を
簡単に知ることができるので説明を必要としない。
これが GUIコントロールの良さでもある。

【 DSPFソース 】
0001.00      A*%%TS  SD  19940302  221529  QTR         REL-V2R2M0  5738-PW1     
0002.00      A*            11:59:33    QSECOFR     REL-R06M00  5714-UT1         
0003.00      A*%%EC                                                             
0004.00      A                                      DSPSIZ(24 80 *DS3)          
0005.00      A                                      MSGLOC(24)                  
0006.00      A                                      PRINT                       
0007.00      A          R DSPDTA01                                              
0008.00      A*%%TS  SD  19940302  221529  QTR         REL-V2R2M0  5738-PW1     
0009.00      A                                      TEXT(' 明細画面 01')        
0010.00      A                                      CF03(03 ' 終了 ')           
0011.00      A                                      SETOF(99)                   
0012.00      A                                      BLINK                       
0013.00      A                                  1 27' ラジオ・ボタン '          
0014.00      A                                      DSPATR(HI)                  
SOSI         A                                  3  2' 下記はラジオ・ボタンのサ  
0016.00      A                                       です '                     
0017.00      A                                  6  2' 受注区分 '                
0018.00      A            JUKBN#         2Y 0B  6 15TEXT(' 受注区分 ')          
0019.00      A                                      SNGCHCFLD((*NUMCOL 1))      
0020.00      A                                      CHOICE(1 ' 売上 ')          
0021.00      A                                      CHOICE(2 ' 返品 ')          
0022.00      A                                  6 34' 処理区分 '                
0023.00      A            JUSHOR#        2Y 0B  6 47TEXT(' 処理区分 ')          
0024.00      A                                      SNGCHCFLD((*NUMCOL 1))      
0025.00      A                                      CHOICE(3 ' 今月 ')          
0026.00      A                                      CHOICE(4 ' 来勘 ')          
0027.00      A            DSPMSG        40A    20  4                            
0028.00      A                                      DSPATR(HI)                  
0029.00      A                                 23  2'F3= 終了 '                 
0030.00      A            PSHFLD         2Y 0B 23 22PSHBTNFLD(*RSTCSR (*NUMCOL  
0031.00      A                                      PSHBTNCHC(1 ' OK ' ENTER)
【 CLP ソース 】
0001.00              PGM                                                       
0002.00 /*---------------------------------------------------------*/          
0003.00 /*    RADIO     :   ラジオ・ボタン                         */          
0004.00 /*---------------------------------------------------------*/          
0005.00              DCL        VAR(&MSG)      TYPE(*CHAR) LEN(80)             
0006.00              DCLF       FILE(QTROBJ/RADIOFM)                           
0007.00                                                                        
0008.00              CHGVAR     VAR(&JUKBN#) VALUE(1)                          
0009.00              CHGVAR     VAR(&JUSHOR#) VALUE(3)                         
0010.00  DSPLY:      SNDRCVF    RCDFMT(DSPDTA01)                               
0011.00              IF         COND(&IN03 *EQ '1') THEN(RETURN)               
0012.00              CHGVAR     VAR(&DSPMSG) VALUE('ENTER が押されました ')    
0013.00              GOTO       DSPLY                                          
0014.00              RETURN                                                    
0015.00                                                                        
0016.00  ERROR:      RCVMSG     RMV(*NO) MSG(&MSG)                             
0017.00  SNDMSG:     SNDPGMMSG  MSG(&MSG) MSGTYPE(*DIAG)                       
0018.00              ENDPGM