RPG

347. ラジオ・ボタン

ラジオ・ボタンはいくつかある候補の中でどれかを唯一選択する。
従ってIBM iでは「単一項目選択フィールド」という非常にわかりにくい
名前をつけている。
キー・ワードも SNGCHCFLD(=Single Choice Field)と何のことやら
わからないようなキー・ワード名である。
どうもMicrosoftの命名が気に入らないらしいのだが
そんなところで勝負すべきではないだろう。
C/Sモデル(=Client Server Model)が一時期に流行したのは
WindowsがGUI化に優れていたのでクライアントとしての
Windowsを活用したのだからGUI化はWindowsのほうが
早く進んでいたのは事実である。
現在ではWeb化が進みサーバー・サイドつまりIBM i自身で
Web化によってGUI化も行えるようになったのでC/Sモデルは
衰退した。
しかしMicrosoftがGUIを普及させたのは事実なのだから
ユーザーのためには普及しているラジオ・ボタンの名前をそのまま
踏襲すべきであった。

それはともかくラジオ・ボタンは次のように表示される。

[ラジオ・ボタンのDSPF]

ソースはこちらから

0001.00      A                                      DSPSIZ(24 80 *DS3)                   
0002.00      A                                      MSGLOC(24)                           
0003.00      A                                      PRINT                                
0004.00      A          R DSPDTA01                                                       
0005.00      A                                      TEXT(' 明細画面 01')                 
0006.00      A                                      CF03(03 ' 終了 ')                    
0007.00      A                                      SETOF(99)                            
0008.00      A                                      BLINK                                
0009.00      A                                  1 27' ラジオ・ボタン '                   
0010.00      A                                      DSPATR(HI)                           
0011.00      A                                  3  2' 下記はラジオ・ボタンのサンプル +   
0012.00      A                                       です '                              
0013.00      A                                  6  2' 受注区分 '                         
0014.00      A            JUKBN#         2Y 0B  6 15TEXT(' 受注区分 ')                   
0015.00      A                                      SNGCHCFLD((*NUMCOL 1))               
0016.00      A                                      CHOICE(1 ' 売上 ')                   
0017.00      A                                      CHOICE(2 ' 返品 ')                   
0018.00      A                                  6 34' 処理区分 '                         
0019.00      A            JUSHOR#        2Y 0B  6 47TEXT(' 処理区分 ')                   
0020.00      A                                      SNGCHCFLD((*NUMCOL 1))               
0021.00      A                                      CHOICE(3 ' 今月 ')                   
0022.00      A                                      CHOICE(4 ' 来勘 ')                   
0023.00      A                                 13 10' 締日 '                             
0024.00      A            TKSIME         2Y 0B 13 25                              
0025.00      A                                      SNGCHCFLD((*NUMCOL 1))        
0026.00      A                                      CHOICE(10 '10 日締め ')       
0027.00      A                                      CHOICE(20 '20 日締め ')       
0028.00      A                                      CHOICE(31 ' 末日締め ')       
0029.00      A*                                                                   
0030.00      A            DSPMSG        40A    20  4                              
0031.00      A                                      DSPATR(HI)                    
0032.00      A                                 23  2'F3= 終了 '                   
0033.00      A                                      COLOR(BLU)                    
0034.00      A            PSHFLD         2Y 0B 23 22PSHBTNFLD(*RSTCSR (*NUMCOL 1))
0035.00      A                                      PSHBTNCHC(1 ' OK ' ENTER)   


  

[解説]

ラジオ・ボタンは

0014.00      A            JUKBN#         2Y 0B  6 15TEXT(' 受注区分 ')                   
0015.00      A                                      SNGCHCFLD((*NUMCOL 1))               
0016.00      A                                      CHOICE(1 ' 売上 ')                   
0017.00      A                                      CHOICE(2 ' 返品 ')

 

であり SNGCHCFLD がラジオ・ボタンであることを示し、

0016.00      A                                      CHOICE(1 ' 売上 ')                   
0017.00      A                                      CHOICE(2 ' 返品 ')

が選択項目を示している。

[ラジオ・ボタンのRPG]

ソースはこちらから

0001.00 H DFTNAME(RADIO) DATEDIT(*YMD/)                                           
0002.00 F******** ラジオ・ボタン **********************************************   
0003.00 FRADIOFM   CF   E             WORKSTN                                     
0004.00 F**********************************************************************   
0005.00 D ENTMSG          C                   CONST('ENTER が押されました。 ')    
0006.00 C*----------------------------------------------------+                   
0007.00 C     DSPLY         TAG                                                   
0008.00 C                   EXFMT     DSPDTA01                                    
0009.00 C*----------------------------------------------------+                   
0010.00 C                   SETOFF                                       99       
0011.00 C*( CF03 )- 終了                                                          
0012.00 C     *IN03         IFEQ      *ON                                         
0013.00 C                   SETON                                        LR       
0014.00 C                   RETURN                                                
0015.00 C                   ENDIF                                                 
0016.00 C*( 実行キー )                                                            
0017.00 C                   EVAL      DSPMSG = ENTMSG                             
0018.00 C                   GOTO      DSPLY                                       
0019.00 C******************************************************                   
0020.00 C     *INZSR        BEGSR                                                 
0021.00 C******************************************************                   
0022.00 C                   Z-ADD     1             JUKBN#                        
0023.00 C                   Z-ADD     3             JUSHOR#                       
0024.00 C                   Z-ADD     31            TKSIME 
0025.00 C                   ENDSR  


                          

[解説]

特に説明はなし。