ウィザード定義ページの作成

独自のウィザードを作成する最初の手順は、インタフェースと出力パラメータを定義する VTML ファイルの作成です。この節では、プロセスのこの部分で使用される VTML タグについて説明し、定義ファイルの例を示します。

ウィザード用 VTML タグの要約

次は、ウィザード定義ファイル用のタグ セットの階層です。

WIZARD -- ファイル全体の包囲タグ。名前、キャプション、および既定のイメージを持つ新しいウィザードを定義します。

PARAM -- WIZARD タグのサブタグとして使われると、ウィザードが出力の生成に使うパラメータを定義します。これらのパラメータはウィザード出力テンプレートとともに使うことができます。

TEMPLATE -- 出力テンプレートを定義し、テキスト出力に使われるファイルを識別します。

PAGE -- どのページ クラスをロードするかを決めるウィザード ページを定義します。

PARAM -- PAGE タグのサブタグとして使われると、ページ クラスの動作を設定します。複数のウィザードで再利用することを目的とした標準的なページの場合に役立ちます。

INPUT -- ウィザード ページ上の入力コントロールを定義します。INPUT コントロールの NAME 属性が、ウィザード ページ上のコントロールの名前だけでなく、WIZARD タグ内に定義されている PARAM の名前にも一致すると、INPUT コントロールは、コードを明示的に書かなくても、他のコントロールのパラメータに自動的にバインドされます。

NEXTPAGE -- NEXTPAGE タグを使うと、条件式の値に基づいてページ間の複雑な経路を指定することができます。

PAGELAYOUT -- コンテナとコントロールに使う VTML 構文と同じです。

ウィザード用 VTML タグのリファレンス

次の表では、ウィザード定義ファイル作成用のすべての VTML 構文を示します。

WIZARD
属性 説明
NAME オプション。特定のウィザードに属するページの名前を解明するときに使います。構文 WizardName.PageName を使って登録することができます。
CAPTION オプション。ウィザードのタイトル バーに表示するキャプション。
IMAGE オプション。ウィザード内のページに使う既定のビットマップ イメージ。

PARAM (WIZARD タグ用)
属性 説明
NAME パラメータの名前。
VALUE パラメータの初期値。
REQUIRED オプション。ウィザード マネージャでは、必要なすべてのパラメータを入力するまで、[終了] ボタンが有効になりません。

TEMPLATE
属性 説明
NAME ウィザード (.wml) 出力テンプレートのファイル名。
OUTPUTFILE テンプレートを処理した結果をベースにして、出力が書き込まれるファイルの名前。
OUTPUTPATH オプション。ファイルの出力ディレクトリ。既定では変数 LOCATION の値になります。ユーザがこの値を指定できるウィザード ページを作成しなければならないので注意してください。
DESCRIPTION オプション。出力要約ページ内で使われる、ウィザード ページの目的の説明。

PAGE
属性 説明
TYPE ダイナミック ウィザードの場合は必須。"Dynamic" - VTML レイアウト
NAME ページの名前。
CAPTION ページ上部に表示されるキャプション。
IMAGE オプション。ウィザードの既定のビットマップを書き換えるイメージ。
CONDITION オプション。ページを表示するかどうかを決める条件式。
NEXTPAGE オプション。現在のページの次に移動するページの名前。既定のページは、コンフィギュレーション ファイル内で定義された次のページです。

PAGELAYOUT
属性 説明
VTML の EDITORLAYOUT に類似
なし 

PARAM (PAGE タグ用)
属性 説明
NAME パラメータの名前。
VALUE パラメータの値。
REQUIRED True/False または YES/NO (ダイナミック式の結果を使うこともできます)。パラメータの値が必須であるかどうかを決定します。ウィザード マネージャでは、すべての必須パラメータが入力されるまで、[終了] ボタンが有効になりません。

INPUT
属性 説明
NAME INPUT がバインドされるフォーム コントロールの名前。
PARAM オプション。INPUT がバインドされるパラメータの名前。既定値は、NAME 属性です。
DEFAULT オプション。入力の既定値。
REQUIRED オプション。入力が必要かどうかを指定します。
VALIDATIONMSG オプション。入力が必要なのに値が入力されていない場合に表示されるメッセージ。
LISTCONTENTS オプション。TCustomListBox または TCustomComboBox をベースにした入力が必要な場合は、コンマで区切られたリストを使って値をリストに加えます。

NEXTPAGE
属性 説明
NAME 次に開くページの名前。
CONDITION ページに移動するかどうかを決める条件式。複数の NEXTPAGE タグを指定した場合は、CONDITION に一致する最初のページが次のページになります。

タグ内のダイナミック式

タグ属性には、スタティックな固定テキストと、パラメータや入力コントロールを参照する組込型ダイナミック式を組み合わせることができます。テキスト文字列に式を組み込むには次の構文を使います。

$${ expression }

たとえば、別の値が設定されているかどうかを基にパラメータの REQUIRED 属性を設定するには次の構文を使います。

<PARAM NAME="RowsPerPage" VALUE="10" 
REQUIRED="$${ ParameterExists('Customize') }">

あるいは、ユーザによって入力された名前の属性を使って TEMPLATE タグの OUTPUTFILE 属性をカスタマイズするには次の構文を使います。

OUTPUTFILE="$${Name}Admin.cfm">

ウィザード コンフィギュレーション ファイル内でサポートされている式構文は、ウィザード出力テンプレート内でサポートされる構文と同じです (詳細は、リファレンスの節を参照してください)。

Bound コントロール

ウィザード ページの最も強力な機能の 1 つが Bound コントロールです。Bound コントロールを使うと、ウィザード ページにコントロールを配置し、それらのコントロールの値を自動的にウィザード パラメータにバインドすることができます。この操作を行うには、バインドする各コントロールの PAGE タグに INPUT サブタグを追加するだけです。この場合は、INPUT タグの NAME 属性がコントロールの NAME プロパティに一致していることを確認してください。レイアウト内で指定されたすべてのコントロールをバインドすることができます。

ウィザード定義ページの例

次のサンプル コードは HTML テンプレートを作成します。

<WIZARD NAME="DefaultTemplate" CAPTION="既定の HTML テンプレート">

<!--- ウィザード パラメータ --->
<PARAM NAME="sDocType" VALUE="HTML 4.0" REQUIRED="true">
<PARAM NAME="sTitle" VALUE="">
<PARAM NAME="bMetaDescr" VALUE="false">
<PARAM NAME="sMetaDescr" VALUE="">
<PARAM NAME="bMetaKeywords" VALUE="false">
<PARAM NAME="sMetaKeywords" VALUE="">

<!--- ウィザード パラメータ --->

<!--- 属性のページ --->
<PAGE NAME="DocAttribs" TYPE="DYNAMIC"
CAPTION="HTML ドキュメントの属性"
IMAGE="..\\images\\main.bmp">

<PAGELAYOUT>
<CONTROL NAME="lblDocType" TYPE="label"
DOWN="10" RIGHT="10"
WIDTH="90"
CAPTION="ドキュメントのタイプ :"
/>

<CONTROL NAME="ddDocType" TYPE="DropDown"
EDITABLE="no"
ANCHOR="lblDocType" corner="NE" WIDTH="MAXIMUM" down="-5">
<ITEM CAPTION="HTML 2.0" VALUE="HTML 2.0"/>
<ITEM CAPTION="HTML 3.2" VALUE="HTML 3.2"/>
<ITEM CAPTION="HTML 4.0" VALUE="HTML 4.0"/>
</CONTROL>

<CONTROL NAME="lblTitle" TYPE="label"
ANCHOR="lblDocType" CORNER="SW" down="20"
WIDTH="90"
CAPTION="タイトル :"
/>

<CONTROL NAME="tbTitle" TYPE="TextBox"
ANCHOR="lblTitle" CORNER="NE" WIDTH="MAXIMUM" down="-5"
/>

<CONTAINER NAME="pnlMetaDescription" TYPE="Panel"
CAPTION="メタ記述"
ANCHOR="lblTitle" CORNER="SW" DOWN="20"
WIDTH="MAXIMUM" MAXWIDTHPADDING="10" HEIGHT="80"
LFHEIGHT="90">

<CONTROL NAME="chkMetaDescr" TYPE="CheckBox"
CAPTION="メタ記述を追加 :"
DOWN="20" RIGHT="15"
WIDTH="MAXIMUM"/>

<CONTROL NAME="tbMetaDescr" TYPE="TextBox"
ANCHOR="chkMetaDescr" CORNER="SW" DOWN="8"
WIDTH="MAXIMUM"/>

</CONTAINER>

</PAGELAYOUT>

<INPUT NAME="ddDocType" PARAM="sDocType">
<INPUT NAME="tbTitle" PARAM="sTitle" REQUIRED="yes" VALIDATIONMSG=
「ドキュメントのタイトルを入力してください」または同等のメッセージ>
<INPUT NAME="chkMetaDescr" PARAM="bMetaDescr">
<INPUT NAME="tbMetaDescr" PARAM="sMetaDescr">
</PAGE>

<!--- 属性のページ --->
<PAGE NAME="MetaKeywords" TYPE="DYNAMIC"
CAPTION="メタ キーワード"
IMAGE="..\\images\\main.bmp">

<PAGELAYOUT>

<CONTROL NAME="chkMetaKeywords" TYPE="CheckBox"
CAPTION="メタ キーワードを追加 : "
DOWN="15" RIGHT="10"
WIDTH="MAXIMUM"/>

<CONTROL NAME="taMetaKeywords" TYPE="TextArea"
ANCHOR="chkMetaKeywords" CORNER="SW" down="10"
HEIGHT="MAXIMUM" width="MAXIMUM"/>

</PAGELAYOUT>

<INPUT NAME="chkMetaKeywords" PARAM="bMetaKeywords">
<INPUT NAME="taMetaKeywords" PARAM="sMetaKeywords">

</PAGE>

<!--- 出力テンプレート --->

<TEMPLATE
NAME="Custom.wml"
OUTPUTFILE="MyFile.cfm"
DESCRIPTION="新規 HTML ファイル">

</WIZARD>