2.3.4 VBScriptで使用できるGroupmax Form for ASPの提供関数
Groupmax Form for ASPが提供している関数を,VBScriptで使用できます。使用できる関数を,次に示します。関数の詳細については,「第5章 関数及びセッション変数の文法」を参照してください。
- <この項の構成>
- (1) 項目値を取得又は設定する
- (2) 項目定義を取得する
- (3) 電子印のパスワードを変更する
- (4) 案件の添付ファイルを操作する
- (5) Exchangeと連携する
- (6) 伝票名,ファイルタイトルを取得する
- (7) 簡易版複数伝票機能を使用する
(1) 項目値を取得又は設定する
ASP伝票の項目値を取得するにはGFormGetItemValue関数を,ASP伝票の項目値を設定するにはGFormSetItemValue関数を使用します。
(2) 項目定義を取得する
ASP伝票の項目定義(項目数,項目名,項目種別,及び明細行数)を取得するには,GFormGetItemInf関数,及びGFormGetItemRows関数を使用します。
(3) 電子印のパスワードを変更する
電子印ファイルに定義されている電子印のパスワードを変更するには,GFormChangePasswordDmh関数を使用します。
(4) 案件の添付ファイルを操作する
案件の添付ファイルをWWWサーバで操作するには,GFormAppendDocFile関数,GFormCancelDocFile関数,GFormGetDocFileCount関数,GFormGetDocFileName関数,GFormGetDocFilePath関数を使用します。これらの関数群を使用すると,WWWサーバ上の任意のファイルを案件の添付ファイルに追加したり,案件のファイル添付を取り消したりできます。
(5) Exchangeと連携する
項目のデータ,案件の添付ファイル,及び案件情報を,Exchangeユーザのメールボックスのフォルダに,Exchangeのメッセージとして作成するには,GfExchgOutput関数,及びGfExchgSetInf関数を使用します。
作成したメッセージは,Groupmax Workflow - Development Kit for ASPの送信ログコントロールを使用して作成された,送信ログのページを経由して表示できます。Groupmax Workflow - Development Kit for ASPの送信ログコントロールについては,Groupmax Workflow - Development Kit for ASPとともにインストールされるHTMLマニュアルを参照してください。
Exchangeと連携するために必要な環境設定については,「2.7.4 Exchangeと連携するための環境設定」を参照してください。
(6) 伝票名,ファイルタイトルを取得する
実行中の伝票の伝票名を取得するには,GfGetSlipName関数を,実行中の伝票のファイルタイプを取得するにはGfGetSlipTitle関数を使用します。
(7) 簡易版複数伝票機能を使用する
Groupmax Form for World Wide Webの@伝票表示機能相当をVBScript直接記述のレベルで簡易版複数伝票機能として提供します。
(a) 機能の概要
ASP環境で,一つの伝票に多くの項目を持つ複雑な伝票を作成すると,Web環境の特性から伝票起動時間など性能に影響します。簡易複数伝票機能を使って複雑な伝票を複数に分割し互いに連動した形の伝票を作成すると,個々の伝票項目数が少なくなるため,システム全体の性能への影響を小さくできます。
(b) 使用方法
- 複数伝票
- 簡易複数伝票は,一つの大きな伝票を複数に分割した複数の伝票を互いに連動させた形の伝票を前提とします。そのため,複数伝票間で重複した項目名がないことを基本とします。伝票の分割例を図2-5に示します。
図2-5 伝票の分割例
![[図データ]](figure/zu0x0010.gif)
- 複数伝票の構成と呼び出し,戻り方法
- 複数伝票は,メインウィンドウ+サブダイアログ構成又はウィザードタイプダイアログ構成を実現できます。各構成の伝票遷移のイメージを図2-6及び図2-7に示します。
- 伝票の呼び出しは,GFormRedirect関数(VBScriptの直接記述)で行います。
- GFormRedirect関数で呼び出された伝票からの戻りは,@処理終了で行います。
- GFormRedirect関数より後に記述した処理は実行されません。
- 呼び出し元伝票へ戻った後に実行する処理が必要な場合,RETURNPROC ASP注釈で戻り後の処理名を指定します。
- 複数伝票すべての終了は,最初に起動された伝票の@処理終了,又はGFormGroupEnd関数(VBScriptの直接記述)で行います。
図2-6 伝票遷移のイメージ(メインウィンドウ+サブダイアログ構成)
![[図データ]](figure/zu0x0020.gif)
図2-7 伝票遷移のイメージ(ウィザードタイプダイアログ構成)
![[図データ]](figure/zu0x0030.gif)
(c) 伝票間の情報の引き継ぎ
- 項目の追加
- 伝票が呼び出された時に,それまで実行された伝票中に存在しない項目名の項目を追加します。
- 呼び出し元伝票へ戻った時でも追加した項目は削除されません。
- 項目値の引き継ぎ
- 項目
- 呼び出された伝票中の項目名が,それまで実行された伝票中に存在していた場合,呼び出された伝票に項目値を引き継ぎます。
- また,呼び出された伝票で更新された値は,呼び出し元伝票の項目に反映されます。
- ローカル変数
- 呼び出された伝票に,ローカル変数の値は引き継ぎません。
- また,呼び出された伝票で更新された値は,呼び出し元伝票のローカル変数に反映されません。呼び出し元伝票のローカル変数の値は,伝票を呼び出した時点の値に戻ります。
- システム変数
- ¥入力件数,¥明細行数は,複数伝票中で使用不可とします。
- 使用した場合の動作は保証しません。
- ¥入力件数,¥明細行数の情報が必要な場合,@明細情報コマンドで情報を取得します。
- 伝票間の項目値の参照・更新
- 呼び出し元伝票中の項目名と呼び出される伝票中の項目名を一致させることで,複数伝票間で項目値を引き継ぐことができます。
- ただし,「伝票間の項目の制限」を考慮する必要があります。
- 呼び出し元伝票項目値の参照
- VBScriptの直接記述でGFormGetItemValue関数を使うと,伝票が呼び出されるまでに実行された伝票中に存在する項目の値を参照できます。
- 呼び出された伝票の中で,それまでに実行された伝票中の項目の項目名を指定してGFormGetItemValue関数を実行すると,それまでに実行された伝票中の項目の値を取得できます。
- これによって,呼び出し元伝票中の項目の値を呼び出された伝票で参照できます。
- 呼び出し元伝票項目値の更新
- VBScriptの直接記述でGFormSetItemValue関数を使うと,伝票が呼び出されるまでに実行された伝票中に存在する項目の値を更新できます。
- 呼び出された伝票の中で,それまでに実行された伝票中の項目の項目名を指定してGFormSetItemValue関数を実行すると,それまでに実行された伝票中の項目の値を更新できます。
- これによって,呼び出し元伝票中の項目の値を呼び出された伝票で更新できます。
- 伝票間の項目の制限
- 複数伝票間で重複した項目名は定義しないことを基本とします。
- 複数伝票間で重複した項目名を定義して実行してもエラーとしませんが,項目属性を一致させておく必要があるなど多くの制限があります。
- 伝票間の項目属性の制限
- 複数伝票間で同一項目名の項目を定義する場合,次の制限を考慮する必要があります。
- オブジェクトタイプ
オブジェクトタイプ(見出しとラジオボタンなど)が異なる場合,伝票呼び出し時点で実行時エラーとなります。
- 明細
明細の定義内容(明細名,明細項目の構成,定義行数)が異なる場合,伝票呼び出し時点で実行時エラーとなります。
- 項目属性-属性
候補値から選択<コンボボックス>で,選択リストの数及び値が異なる場合,伝票呼び出し時点で実行時エラーとなります。
また,ラジオボタン項目で,タイトル数が異なる場合,伝票呼び出し時点で実行時エラーとなります。
- 項目属性-種別
表示と入力,又は非表示と非表示入力の組み合わせで異なる場合,伝票呼び出し時点で呼び出された伝票の定義に変更され,呼び出し元伝票へ戻った時もその属性が引き継がれます(@表示切替,@入力切替で変更した場合も含む)。それ以外の組み合わせ(表示と非表示など)で異なる場合,伝票呼び出し時点で実行時エラーとなります。
- フィールド属性-色,文字色と候補値-リスト
フィールド属性-色,文字色と候補値-リストが異なる場合,伝票呼び出し時点で呼び出された伝票の定義に変更され,呼び出し元伝票へ戻った時もその属性が引き継がれます(@色指定,@コンボボックスで変更した場合も含む)。
- 案件処理及びSQL処理
- 案件処理及びSQL処理は複数伝票内で接続情報などを引き継ぎます。
- 案件処理
- 案件情報は複数伝票間で共有するため,@案件ユーザ情報と@案件データ入力など案件処理コマンドをそれぞれ別々の伝票で実行できます。
- ただし,@案件データ入力と@案件データ出力については次を考慮する必要があります。
- @案件データ入力
項目を指定しないで@案件データ入力をした場合,該当伝票の項目だけが@案件データ入力の対象になります。
- @案件データ出力
項目を指定しないで@案件データ出力をした場合,該当伝票の項目だけが@案件データ出力の対象になります。
@案件データ出力をA(追加)又はR(置換)で行った場合,該当伝票の項目が対象になります。
N(新規)で行った場合,これまでに行った@案件データ出力の項目全部が対象になります。
- SQL処理
- @SQL接続で行った接続情報は,複数伝票間で共有するため,@SQL接続と@SQL実行などSQL処理コマンドをそれぞれ別々の伝票で実行できます。
- ただし,@SQL実行(SELECT文)と@SQLフェッチは,同一伝票で実行する必要があります。
(d) 伝票の呼び出し・終了
伝票の呼び出し,及び複数伝票すべての終了は,VBScriptの直接記述の関数を実行することで行います。
呼び出された伝票の中で@処理終了コマンドを発行することで,呼び出し元伝票に戻ります。
最初に起動された伝票の中で@処理終了コマンドを発行すると,複数伝票すべてを終了します。
@処理終了を発行した伝票の後処理,最終処理は,@処理終了の指定によって実行されます。
呼び出し元伝票へ戻った後に実行される処理をASP注釈で指定できます。
伝票を呼び出すGFormRedirect関数及び呼び出し元伝票へ戻った後に実行される処理を指定するRETURNPROC ASP注釈の詳細については「5. 関数及びセッション変数の文法」の「GFormRedirect関数」を,複数伝票すべてを終了するGFormGroupEnd関数の詳細については「5. 関数及びセッション変数の文法」の「GFormGroupEnd関数」を参照してください。
- インクルードファイルの指定
- GFormRedirect関数,及びGFormGroupEnd関数を使用する場合,次の(* ASP INCLUDE START *)コメントを任意の共通処理に記述し,インクルードファイルを追加しておく必要があります。
- (* ASP INCLUDE START *)
- (* <!-- #include virtual="/FormASPInclude/FAGroup.inc" -->
- (* ASP INCLUDE END *)