初めて利用させていただきます。現在as400のweb化をRPG-CGIを使用して構築してるのですが、ブラウザとのデータのやりとりの部分で苦戦しています。ブラウザではすべて文字と認識されてしまうため、金額などの数値項目も文字として扱われます。as上で値を取得したときに数値と認識して処理できれば一番いいのですが、今のところ文字として受け取ったものを数値に変換するしかないのかなと思っています。そこでRPG4で文字→数値に変換する外出しの関数みたいなのを作成して呼び出すことは可能ですか例えば変換PGMで文字から数値への変換サブを作成。それを関数としてよびたいんです。もしくは簡単に変換できるものがあれば教えてください
EnterpriseServer では TODIGIT という名前のサブルーチンが提供されています。AutoWeb や TONAKAI では通常の CGI のように文字−>数字の変換を全く考慮する必要はありませんが、CGI では確かに必要となります。以下の TODIGIT のソースを示します。プロシージャーにすれば関数のように利用することもできます。ソースは http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QRPGLESRC.FILE/TODIGIT.MBR0001.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