i-web RPGの解説

組込関数




1.#GET_FORM(変数の取得)
#GET_FORMは、ブラウザーからの入力を行います。

HTML側のFORMタグでMETHOD=GETと指定された場合の、入力に対応しています。
(METHOD=POSTへの対応はしていません。)

| ブラウザーからの入力方法は、METHOD=GETとMETHOD=POSTがあります。
| どちらを使用するかは<FORM>タグ内の指定によります
| 詳しくは、こちらに
METHOD=GETの場合、ブラウザーからの入力値は、AS内の環境変数という域に
セットさせます。(環境変数名=QRYSTRING)
GET_FORMは、この環境変数から値を取り出し、RPGプログラム内の変数に渡します。

使い方は、EVAL命令を使用しRPG内変数名にブラウザーからの変数を受け取ります

| EVAL命令は、算術演算、文字列操作の両方に使えます。
| <算術演算の例> EVAL KINGAK = SURYO * TANKA * 1.05
| <文字列操作の例>EVAL SIMEI = MYOJI + NAMAE
    EVAL RPG内の変数名=#GET_FORM(HTML内の変数名:オプション)

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.単純な変数置換
&&変数名で記述した部分は、変数の内容で置換されます。

プログラム内変数
HINBAN=12345
        
HTMLファイル
品番は&&HINBAN

    |                |
   +−−−−−−−−−+
    ↓
#OUT_HTML        
   ↓
書き出されるHTML
品番は12345

3−2.代替変数置換
リテラルと記述する事により、
リテラルの部分が、変数の内容で置換されます。

プログラム内変数
HINBAN=12345
        
HTMLファイル
<TD><FLD="HINBAN">AB9876</FLD>

    |                |
   +−−−−−−−−−+
    ↓
#OUT_HTML        
   ↓
書き出されるHTML
<TD>12345

3−3.変数置換の範囲
変数置換処理は、
<!-- FLDREP START --> と、
<!-- FLDREP END -->   の間に挟まれた部分に対してのみ行われます。

これは、置換処理がコンピューターの資源を大量に必要とするのでに、
置換処理の範囲を最低限に留める為です。

置換処理をHTMLに使用する場合、十分に配慮をする必要があります。
3−4.#OUT_HTMLが無視
<!-- IGNORE START --> と、
<!-- IGNORE END -->   の間に挟まれた部分は、ブラウザーには書き出されません。

3−5.コマンドの実行
<!-- #EXEC CMD="コマンド" --> と記述されると、
記述された場所で、コマンドが呼び出され実行される

<!-- #EXEC CMD="CALL DTLSET" -->と記述すると、
プログラム DTLSET が実行される。
この機能を用いて、行数が可変なテーブルの出力などを行う事が出来る。

4.簡単なサンプル/コーディング
ブラウザーから品目番号を受取り、品目マスターを読み、
品目番号と品名をセットして、ブラウザーに書き出す。

簡単なサンプルコーディングです。


演算1命令演算2結果
*#GET_FORM用のパラメーターセット
MOVE'HINMOK#'FIELD 10
MOVE*BLANKSOP  1
*変数の読み込み
EVALHINBAN=#GET_FORM(FIELD:OP)
*マスターファイルの読み込み
HINBANCHAINHINMST
MOVEHINNAMHINMEI
*置換用(出力用)変数のセット
EVALDATA='HINBAN='+%TRIM(HINBAN)+
'&HINMEI=' + %TRIM(HINMEI)
*HTMLの書き出し
CALLB '#OUT_HTML'
PARM'CGILIB'LIB 10
PARM'QHTMSRC'FILE 10
PARM'SAMPLE'MBR 10
PARMDATA 2000