1.#GET_FORM(変数の取得)#GET_FORMは、ブラウザーからの入力を行います。
HTML側のFORMタグでMETHOD=GETと指定された場合の、入力に対応しています。
(METHOD=POSTへの対応はしていません。)
| ブラウザーからの入力方法は、METHOD=GETとMETHOD=POSTがあります。METHOD=GETの場合、ブラウザーからの入力値は、AS内の環境変数という域に
| どちらを使用するかは<FORM>タグ内の指定によります
| 詳しくは、こちらに
セットさせます。(環境変数名=QRYSTRING)
GET_FORMは、この環境変数から値を取り出し、RPGプログラム内の変数に渡します。
使い方は、EVAL命令を使用しRPG内変数名にブラウザーからの変数を受け取ります
| EVAL命令は、算術演算、文字列操作の両方に使えます。EVAL RPG内の変数名=#GET_FORM(HTML内の変数名:オプション)
| <算術演算の例> EVAL KINGAK = SURYO * TANKA * 1.05
| <文字列操作の例>EVAL SIMEI = MYOJI + NAMAE
HTML内のフィールド名とは、INPUTタグ内で指定した名前です。
| INPUTタグとは、ブラウザー画面上の入力フィールドを定義するものです。たとえば、
| 詳しくは、こちらに
<INPUT TYPE="TEXT" NAME="HINMOK#" SIZE="15">
とHTMLで指定した場合、この変数をHINBANというフィールドに受け取るのは
MOVE 'HINMOK#' FIELD 10
EVAL HINBAN=#GET_FORM(FIELD:オプション)
というコーディングになります。
2.#OUT_HTML(HTMLファイルの書出し)#OUT_HTMLは、ブラウザーへの書き出しを行います。
プログラム外部で定義されたHTMLファイルを読み込み、ブラウザーに書き出します。
この際、HTMLファイル内に置換の指定がある場合、
プログラム内の変数の値で置き換えてから、書き出します。
プログラム内変数 HINBAN=12345
HINMEI=コンピューター
HTMLファイル 品番は&&HINBAN
品名は&&HINMEI
| |
+−−−−−−−−−−−−−+
↓↓
#OUT_HTML
書き出されるHTML 品番は12345
品名はコンピューター
使い方は、CALLBによる呼び出しを使用します。
CALLB '#OUT_HTML'
PARM ライブラリー名 10
PARM ファイル名 10
PARM メンバー名 10
PARM 置換用変数域名 2000
ライブラリー名、ファイル名、メンバー名は、HTMLファイルの名前です。
(HTMLファイルは、ソースファイルとして登録します)
置換用変数域は、
たとえば、
EVAL DATA='HINBAN='+%TRIM(HINBAN)+
'&HINMEI=' + %TRIM(HINMEI)
| %TRIMは文字列の前後のブランクを取り除きますというコーディングで、
HINBAN=12345&HINMEI=コンピューター
という形式でセットしておきます。
3.HTMLの規則i−webRPGでは、ブラウザーに出力されるHTMLをプログラムの外部に、
ソースファイルの形式で定義します。
そして、そのソースファイル内のHTMLの一部をプログラムの変数で置換して
最終的に、ブラウザーに出力します。
このため、通常のHTMLのルールのほかに、幾つかのルールが追加されています。
このルールは、i−webRPG内だけの特別なルールです。
3−1.単純な変数置換&&変数名で記述した部分は、変数の内容で置換されます。3−2.代替変数置換
プログラム内変数 HINBAN=12345
HTMLファイル 品番は&&HINBAN
| |
+−−−−−−−−−+
↓↓
#OUT_HTML
書き出されるHTML 品番は12345
3−3.変数置換の範囲リテラル と記述する事により、
リテラルの部分が、変数の内容で置換されます。
プログラム内変数 HINBAN=12345
HTMLファイル <TD><FLD="HINBAN">AB9876</FLD>
| |
+−−−−−−−−−+
↓↓
#OUT_HTML
書き出されるHTML <TD>12345
変数置換処理は、3−4.#OUT_HTMLが無視
<!-- FLDREP START --> と、
<!-- FLDREP END --> の間に挟まれた部分に対してのみ行われます。
これは、置換処理がコンピューターの資源を大量に必要とするのでに、
置換処理の範囲を最低限に留める為です。
置換処理をHTMLに使用する場合、十分に配慮をする必要があります。<!-- IGNORE START --> と、3−5.コマンドの実行
<!-- IGNORE END --> の間に挟まれた部分は、ブラウザーには書き出されません。
<!-- #EXEC CMD="コマンド" --> と記述されると、
記述された場所で、コマンドが呼び出され実行される
<!-- #EXEC CMD="CALL DTLSET" -->と記述すると、この機能を用いて、行数が可変なテーブルの出力などを行う事が出来る。
プログラム DTLSET が実行される。
4.簡単なサンプル/コーディングブラウザーから品目番号を受取り、品目マスターを読み、
品目番号と品名をセットして、ブラウザーに書き出す。
簡単なサンプルコーディングです。
演算1 命令 演算2 結果 *#GET_FORM用のパラメーターセット MOVE 'HINMOK#' FIELD 10 MOVE *BLANKS OP 1 *変数の読み込み EVAL HINBAN=#GET_FORM(FIELD:OP) *マスターファイルの読み込み HINBAN CHAIN HINMST MOVE HINNAM HINMEI *置換用(出力用)変数のセット EVAL DATA='HINBAN='+%TRIM(HINBAN)+ '&HINMEI=' + %TRIM(HINMEI) *HTMLの書き出し CALLB '#OUT_HTML' PARM 'CGILIB' LIB 10 PARM 'QHTMSRC' FILE 10 PARM 'SAMPLE' MBR 10 PARM DATA 2000