新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
RE:押しボタン(PSHBTNFLD)を使ってテンキー入力 IKD さん [ 1月23日(月) 10時27分 ]

    可能です。

    下記は OK ボタンを表示する DSPF です。
    ( http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QDSPSRC.FILE/BUTTONFM.MBR )
    --------------------------------------------------------------------------
    0001.00      A*%%TS  SD  20070817  120013  QTR         REL-V5R4M0  5722-WDS     
    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  20070817  120013  QTR         REL-V5R4M0  5722-WDS     
    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' 下記は押しボタンのサンプ  
    SOSI         A                                  4  3'OK ボタンを押したときは押  
    0017.00      A                                       回数をカウントします。 '   
    0018.00      A                                  8  4' 押した回数 . . . . . . .  
    0019.00      A            KAISU          3Y 0B  8 37                            
    0020.00      A            PSHFLD         2Y 0B  8 45PSHBTNFLD(*RSTCSR (*NUMCOL  1))
    0021.00      A                                      PSHBTNCHC(1 ' OK ' ENTER) 
    0022.00      A            PSHF10         2Y 0B 10 45PSHBTNFLD(*RSTCSR (*NUMCOL  1)) 
    0023.00      A                                      PSHBTNCHC(1 ' F1O ' CF10 CF10)
    0024.00      A            DSPMSG        40A  O 20  4DSPATR(HI)                  
    0025.00      A                                 23  2'F3= 終了 '                 
    --------------------------------------------------------------------------

    次は実行するための CLP です。
    ( http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QCLSRC.FILE/BUTTONCL.MBR )
    --------------------------------------------------------------------------
    0001.00              PGM                                                        
    0002.00 /*---------------------------------------------------------*/           
    0003.00 /*    BUTTON    :   押しボタン                             */           
    0004.00 /*---------------------------------------------------------*/           
    0005.00              DCL        VAR(&MSG)      TYPE(*CHAR) LEN(80)              
    0006.00              DCLF       FILE(QTROBJ/BUTTONFM)                           
    0007.00                                                                         
    0008.00              CHGVAR     VAR(&KAISU) VALUE(0)                            
    0009.00  DSPLY:      SNDRCVF    RCDFMT(DSPDTA01)                                
    0010.00              IF         COND(&IN03 *EQ '1') THEN(RETURN)                
    0011.00              IF         COND(&PSHF10 *EQ 1) THEN(DO)                    
    0012.00              CHGVAR     VAR(&DSPMSG) VALUE('F10 ボタンが押されました ') 
    0013.00              ENDDO                                                      
    0014.00              ELSE       CMD(DO)                                         
    0015.00              CHGVAR     VAR(&DSPMSG) VALUE('OK ボタンが押されました ')  
    0016.00              ENDDO                                                      
    0017.00              CHGVAR     VAR(&KAISU) VALUE(&KAISU + 1)                   
    0018.00              GOTO       DSPLY                                           
    0019.00              RETURN                                                     
    0020.00                                                                         
    0021.00  ERROR:      RCVMSG     RMV(*NO) MSG(&MSG)       
    0022.00  SNDMSG:     SNDPGMMSG  MSG(&MSG) MSGTYPE(*DIAG) 
    0023.00              ENDPGM                              
    --------------------------------------------------------------------------

    実行画面イメージは次のとおりです。
    --------------------------------------------------------------------------
                              押しボタン                      
                                                              
     下記は押しボタンのサンプルです                           
     OK ボタンを押したときは押した回数をカウントします。      
                                                              
                                                              
                                                              
       押した回数 . . . . . . . . . .  000       OK         
                                                              
                                                 F1O       
                                                              
                                                              
    --------------------------------------------------------------------------

    [解説]
    この例では ボタンに「OK」と表示していますが 0 - 9 を表示する
    テン・キーを作って各数字毎に CLP で制御すればご希望の機能を実現することが
    できます。
    ただし テン・キーの見た目はかなり大きなものになってしまいますので
    実用上の問題は残ります。

お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス