新規投稿 記事一覧 ホーム
●ご利用方法,ご利用に際しての規約はこちらをお読みください。
こちらからの投稿は、先頭に表示されているコメントへの返信になります。
関数の作り方?について ks さん [ 5月8日(木) 13時7分 ]

    初めて利用させていただきます。
    現在as400のweb化をRPG-CGIを使用して構築してるのですが、ブラウザとのデータのやりとりの部分
    で苦戦しています。
    ブラウザではすべて文字と認識されてしまうため、金額などの数値項目も
    文字として扱われます。
    as上で値を取得したときに数値と認識して処理できれば一番いいのですが、今のところ
    文字として受け取ったものを数値に変換するしかないのかなと思っています。
    そこでRPG4で文字→数値に変換する外出しの関数みたいなのを作成して呼び出すことは可能ですか

    例えば
    変換PGMで文字から数値への変換サブを作成。それを関数としてよびたいんです。

    もしくは簡単に変換できるものがあれば教えてください

    RE:関数の作り方?について IKD さん [ 5月10日(土) 13時3分 ]

      EnterpriseServer では TODIGIT という名前のサブルーチンが
      提供されています。
      AutoWeb や TONAKAI では通常の CGI のように文字−>数字の変換を
      全く考慮する必要はありませんが、CGI では確かに必要となります。
      以下の TODIGIT のソースを示します。
      プロシージャーにすれば関数のように利用することもできます。


      ソースは http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QRPGLESRC.FILE/TODIGIT.MBR


      0001.00 C******************************************************               
      0002.00 C     TODIGIT       BEGSR                                             
      0003.00 C******************************************************               
      0004.00 C*  文字 CHR30 の値を数字の DIGIT (30,5) に置換えます。               
      0005.00 C*ラ 例 ン ----------------------------------------------               
      0006.00 C*                  MOVEL     MYCHR         CHR30                     
      0007.00 C*                  EXSR      TODIGIT                                 
      0008.00 C*                  Z-ADD     DIGIT         MYDIGIT                   
      0009.00 C*-----------------------------------------------------               
      0010.00 CSR                 MOVE      *BLANKS       FGO               1       
      0011.00 CSR                 Z-ADD     0             DIGIT            3005     
      0012.00 CSR   ' '           CHECKR    CHR30         SIZE#             4 0     
      0013.00 CSR   SIZE#         IFGT      0                                       
      0014.00 CSR   1             DO        SIZE#         CNT               4 0     
      0015.00 CSR   1             SUBST     CHR30:CNT     FLD1              1       
      0016.00 CSR   FLD1          IFGE      '0'                                     
      0017.00 CSR   FLD1          ANDLE     '9'                                     
      0018.00 CSR                 MOVE      FLD1          DG01              1 0     
      0019.00 CSR                 MULT      10            DIGIT                     
      0020.00 CSR                 ADD       DG01          DIGIT                     
      0021.00 CSR                 ELSE                                           
      0022.00 CSR   FLD1          IFEQ      '-'                                  
      0023.00 CSR                 MOVE      FLD1          FGO               1    
      0024.00 CSR                 END                                            
      0025.00 CSR                 END                                            
      0026.00 CSR                 END                                            
      0027.00 CSR                 END                                            
      0028.00 CSR   FGO           IFEQ      '-'                                  
      0029.00 CSR                 Z-SUB     DIGIT         DIGIT                  
      0030.00 CSR                 END                                            
      0031.00 CSR                 MOVE      *BLANKS       CHR30            30    
      0032.00 CSR                 ENDSR     

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