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


    5250画面で、
    PSHBTNFLDキーワードを使って、
    画面にテンキーを表示させ、
    押しボタンを押して、
    任意のケタ数をかえす

    このようなことができるでしょうか?

    よろしければご教示お願いします。




    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 で制御すればご希望の機能を実現することが
      できます。
      ただし テン・キーの見た目はかなり大きなものになってしまいますので
      実用上の問題は残ります。

    RE:押しボタン(PSHBTNFLD)を使ってテンキー入力 IKD さん [ 1月23日(月) 11時36分 ]
お名前
パスワード
e-mailアドレス
タイトル
ホームページ
アドレス