目次に戻る IP2HTML

Webアプリケーションにおいて、結果を返すためのひな形となるHTML出力の説明です。
この機能は、NOMAD Ver4.7以前でIP2HTMLを使用していたアプリケーションの互換性を保つために残しています。現在はサポートしておりませんのでご注意ください。

IP2HTML
IP2HTMLはひな形HTML(結果HTMLのフォーマット)とデータファイル(B/NOMADの実行結果)からDSMCGI実行結果のHTMLを作成するのに使用されるツールです。
このツールはNOMADの機能であるNOM_FUNC(外部関数)を利用し、NOMADプロシージャから呼び出す形式を採用しています。

IP2HTML

IP2HTMLはひな形HTMLを設定ファイル(dsm.ini)のbnWWWPathに指定してあるディレクトリから検索します。 また、データファイルをB/NOMADのワークディレクトリ(設定ファイルのbnCurPathに指定してあるB/NOMADのワークディレクトリ)に作成します。この2つのファイルをもとにDSMCGIの実行結果のHTMLを生成します。


HTMLファイルの内容


ひな形HTMLを使用したアプリケーションを作成した場合は、HTMLタグ内にNOMAD専用のオプション(NOMADVAL)を追加します。

HTMLタグ内に「NOMADVAL=”%NOMADの変数名%“」という書式でNOMAD用オプションを設定します。この部分を、IP2HTMLにより、「VALUE=”NOMAD変数の値”」に変換します。

下記に例を示します。

<INPUT TYPE="text" NAME="userC824" NOMADVAL="%userC824%" MAXLENGTH="255">

詳細はひな形HTMLを参照してください。


B/NOMADプロシージャの内容
下記の例では、ITP_UPD_HTMLOUTエントリー内でデータファイル作成とDSMCGI実行結果のHTMLファイル生成の処理を行います。データファイルはB/NOMADの“write”コマンドで作成されます。DSMCGI実行結果のHTMLファイルはプロファイル(「アプリケーション名_prf.nom」ファイル)に以下のようにIP2HTMLを呼び出す関数を定義し、その関数を使用することで作成することができます。
Function IP_CreateOutPutHTML(V255,V255) i2 external ip2html;

関数「IP_CreateOutPut」の引数には、
第一引数には、プロシージャ名を指定します。ここで指定された名前と同名のひな形HTMLファイルを検索します。
第二引数には、アプリケーション名を指定します。DSMCGI用の結果HTMLファイルを生成するときに使用します。

この関数の戻り値として、正常終了の場合は0を返します。エラー時は0以外を返します。

NOMADプロシージャからデータファイルを生成する方法はデータファイル以降を参照してください。

 
プロシージャ記述例:"startp.nom"


ENTRY ITP_UPD_HTMLOUT();
DEC &HTML_COUNT AS 999999 LOCAL;
DEC &HTML_RETURN AS 999 LOCAL;

/* データファイル生成 */
FILE DEFINE DATAFILE = "startp.dat";
FILE OPEN DATAFILE CREATE;

/* データファイルへの書き込み */
IF &HACYU_END_SESSION THEN

WRITE "\10\11\12NOMADSID=" CAT ZNAV(&HACYU_NOMADSID) CATB "" ON DATAFILE;
ELSE
WRITE "\10\11\12NOMADSID=nomadsid" ON DATAFILE;
IF &HostName EQ &&NAV OR DISPLAY(&HostName) EQ "\0" THEN
WRITE "\10\11\12HostName= " ON DATAFILE;
ELSE
WRITE "\10\11\12HostName=" CAT DISPLAY(&HostName) CATB '' on DATAFILE;
FILE CLOSE DATAFILE OTW;

/* 出力HTMLファイルの生成 */
&HTML_RETURN = IP_CreateOutPutHTML("startp", "hacyu");

RETURN;




ひな形HTMLファイルの検索先
検索先

検索先は2通り存在します。
指定のHTMLファイルが存在するかどうかは以下の順に検索します。

bnWWWPathの指定方法

設定ファイル(dsm.ini)[DSMCGI]セクション内に以下のように指定します。


[DSMCGI]
bnWWWPath=ひな形HTMLが存在するパス(フルパス)

パスを複数指定する場合は、
Windowsでは、セミコロン";"、 UNIXでは、コロン":"で区切って指定してください。



データファイル
データファイルはひな形HTMLの変換対象部分をNOMADの変数値に置き換えるために生成します。NOMADプロシージャからWRITEコマンドを使用して生成します。生成後、IP2HTMLを呼び出してください。

ファイル名

ファイル名は、"プロシージャ名.dat"で生成してください。

フォーマット

制御コード変数名=変数値

制御コードは"\10\11\12"を出力してください。
変数名は大文字で出力してください。また、"&"は出力しないでください。
値はHTML変換時、そのまま使用されます。

"="以降を値と見なします。A型変数の値をWRITEする場合などは注意してください。
制御コード(\10\11\12)は行の先頭を識別するために必要です。行の先頭には必ず、制御コードを出力してください。
空を表現したい場合は、"="の後にスペースを出力してください。
配列変数の場合は添え字"(n)"も出力してください。


ひな形HTML
ひな形となるHTMLの内容について説明します。変換対象とする部分を以下のフォーマットにしたがって記述します。

ファイル名

ファイル名は、"プロシージャ名.html"が検索対象になります。

フォーマット

"%変数名%"を対象に変換を行います。変数名には"&"を含めないでください。

● <INPUT TYPE>関連

この場合は、"NOMADVAL"というキーワードの後、"%変数名%"を記述します。



<INPUT TYPE="TEXT" NAME="VAL" VALUE="あ" NOMADVAL="%VAL%">

● テキスト関連

この場合は、ひな形HTMLをブラウザで表示しても問題ないようにHTMLのコメントで囲って記述します。



<!--%VAL%-->


セッションIDについて
HTMLファイル上のセッションIDの部分は、新しいパラメータ名を使用する場合と古いパラメータを使用する場合とで異なります。
HTML情報名称変更も参照してください。

新しいパラメータを使用したとき

HTMLファイル

<INPUT TYPE="HIDDEN" NAME="NOMADSID" VALUE="nomadsid" NOMADVAL="%NOMADSID%">

データファイル


制御コードNOMADSID=&APP_NOMADSIDの値

古いパラメータを使用したとき

HTMLファイル

<INPUT TYPE="HIDDEN" NAME="APP_NOMCGIPARAM" VALUE="nomcgiparam" NOMADVAL="%APP_NOMCGIPARAM%">

データファイル


制御コードAPP_NOMCGIPARAM=&APP_NOMCGIPARAMの値

変換処理

通常の処理通り、以下のように行います。

セッション非保持のアプリケーションの場合は、 データファイルへは初期値("nomadsid"あるいは"nomcgiparam")を出力してください。


NOMADのHIDDEN対応
IP2HTMLはNOMADのHIDDENに対応する機能を提供しています。この機能はHTMLには存在しないので、HTMLのコメントを利用して実現しています。HIDDEN機能を使用する場合は以下のようにしてください。

HTMLファイル

<!--HIDDEN_非表示式_START-->
表示、非表示を行うウィジットタグ
<!--HIDDEN_非表示式_END-->

データファイル


制御コードHIDDEN_非表示式=TRUE
または
制御コードHIDDEN_非表示式=FALSE

非表示にしたい場合は「TRUE」を、表示したい場合は「FALSE」を出力してください。

変換処理

● データファイルの内容が「TRUE」の場合

● データファイルの内容が「FALSE」の場合

注意事項

この機能はHTMLのコメントタグを使用して実現しているため、非表示用変換コメント内に"コメント開始タグ"、"コメント終了タグ"が存在する場合は正常に動作しません。

<SELECT><OPTION>
<OPTION>記述方法や<OPTION>のSELECTEDオプションの対応方法について説明します。

HTMLファイル

SELECTEDオプション対応のため、<OPTION>内に「%SELECTED_受け取り変数名%」を記述します。リストの内容には、「<!--%配列変数名(添え字)%-->」(テキスト部分と同様)で記述します。また、必ず<OPTION>を記述します。



<SELECT NAME="SVAL" SIZE="13">
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(1)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(2)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(3)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(4)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(5)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(6)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(7)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(8)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(9)%--></OPTION>
  <OPTION %SELECTED_SVAL%><!--%LISTVAL(10)%--></OPTION>
</SELECT>

データファイル
● リストの内容部分


制御コード配列変数名(添え字)=配列変数(添え字)値

● SELECTED部分


制御コードSELECTED_受け取り変数名=受け取り変数値

変換処理
● リストの内容部分

● SELECTED部分

<OPTION>のVALUEオプション使用時は、VALUEの値と「SELECTED_受け取り変数名」の値が等しい<OPTION>へSELECTEDを挿入(NOMAD LISTBOXのINDEXオプション指定時)。


<INPUT TYPE="CHECKBOX">CHECKEDオプション対応
<INPUT TYPE="CHECKBOX">のCHECKEDオプションについて説明します。

HTMLファイル

<INPUT TYPE="CHECKBOX">内に「%受け取り変数名%」を記述します。この部分をCHECKEDへ変換します。



<INPUT TYPE="CHECKBOX" NAME="VAL" VALUE="TRUE" %VAL%>...

データファイル

内容は通常のフォーマットと同様です。

● CHECKBOXの受け取り変数の内容が"TRUE"の場合


制御コード受け取り変数名=CHECKED

● CHECKBOXの受け取り変数名の内容が"FALSE"の場合


制御コード受け取り変数名=

※"="の後にスペースを出力します。
変換処理
「%受け取り変数名%」を「CHECKED」へ変換します。

<INPUT TYPE="RADIO">CHECKEDオプション対応
<INPUT TYPE="RADIO">のCHECKEDオプションについて説明します。

HTMLファイル

<INPUT TYPE="RADIO">内に「%RBTCHECKED_受け取り変数名%」を記述します。この部分をCHECKEDに変換します。



<INPUT TYPE="RADIO" NAME="VAL" VALUE="あ" %RBTCHECKED_VAL%>...

データファイル


制御コードRBTCHECKED_受け取り変数名=受け取り変数値

変換処理

「%RBTCHECKED_受け取り変数名%」を「CHECKED」へ変換します。VALUEオプションがある場合はそちらの値と、ない場合は表示されている値とを比較して、等しいものにCHECKEDへ変換します。

<TEXTAREA>
<TEXTAREA>について説明します。

HTMLファイル

ひな形HTMLをブラウザで表示しても問題ないように以下のように記述します。


<TEXTAREA NAME="VAL"></TEXTAREA><!--%VAL%--> <!--%</TEXTAREA>%-->

データファイル

内容は通常のフォーマットと同様です。


制御コード変数名=変数値

変換処理

以下のように行います。


NOMADのBROWSER
BROWSERウィジットを使用して、指定されたファイルの内容をそのまま結果HTMLへ出力します。

HTMLファイル

ファイルの内容を出力したい部分へ以下のコマンドを記述します。ファイル名の部分にはファイルのフルパスを指定してください。変数指定時は下のファイル名の部分を「%変数名%」を指定します。


<!--#BROWSER=ファイル名-->
または
<!--#BROWSER=変数名-->

データファイル

変数指定時のみ有効です。内容は通常のフォーマットと同様です。


制御コード変数名=値

※値はファイル名のフルパスを指定します。パス指定がない場合はB/NOMADのカレントディレクトリ(/bnomx)を検索します。

変換処理
「<!--#BROWSER=ファイル名-->」を指定されたファイル名の内容へ変換します。

エラーについて
IP2HTMLが返すエラーは下記の3種類あります。エラー発生時は、その内容のエラーHTMLを出力します。

IP2HTMLへの引数の内容が空の場合は、戻り値にエラーが返されます。引数の内容が正しくない場合は、DSMCGI用の結果HTMLファイルを出力できないため、戻り値にエラーを返すことしかできません。


制限事項