Open topic with navigation
BarTender では、印刷ジョブの実行中にスクリプトを実行する最適なタイミングとアクセスする必要のあるデータベースフィールドが決定されるとき、テンプレートの構造が検証され、スクリプトのテストが実行されます。特に、BarTender ではデータベースフィールドと共有データソースの使用タイミングと方法が考慮されます。
条件ステートメントは、条件式の計算方法に応じて、さまざまなコードの「分岐」を実行します。その結果、評価時の条件に応じて、いくつかのコードが実行されないことがあります。これにより、スクリプトのテスト時にスキップされるコードにフィールドまたは共有名への参照が含まれる場合、問題が発生することがあります。関連付けられた条件ステートメントの印刷時の評価がテストの評価と異なり、フィールドや共有名が参照された場合、以前のテスト実行で参照されていなかったときは、スクリプトの実行が最適時に行われずに失敗することもあります。
その場合、強制関数を使用して、スクリプトで目的のデータベースフィールドまたはデータソース名を確実に参照することができます。
BarTender の組み込みの強制関数
[スクリプトエディタ] には、データベースフィールドやデータソースの名前を、スクリプトに「強制的に」参照させる以下の 2 つの関数が組み込まれています。ReferenceField および ReferenceSharedSubStringこれらの関数は値の変更や割り当ては行いません。実行される処理は、スクリプトのテスト中に見過ごされた可能性のある項目の存在の通知をアプリケーションに強制することだけです。BarTender でこれらの関数を使用すると、必要なすべてのデータフィールドへのリンクが確立され、スクリプトは印刷時に適切なイベントに応答して実行されます。
|
フィールド番号 "<Empty>" のある VBScript オブジェクトでは、エラーメッセージ #3201:「テンプレートのオブジェクトはフィールド '(フィールド名)' を読み出すよう設定されていましたが、このフィールドは見つかりませんでした。空白の文字列として不明なフィールドを使用して続行しますか?」[はい] をクリックすると、テンプレートのプレビューに指定された空白の文字列のフィールドが表示されます。空のフィールドに内容を追加するには、[いいえ] をクリックします。
|
スクリプトエディタで 2 つの強制関数を検索するには
-
[スクリプトアシスタント] ペインで [関数] ブックを展開します。
-
[関数] フォルダの [宣言] フォルダを展開します。このフォルダには、ReferenceField と ReferenceSharedSubstring があります。
条件ステートメントの前にあるスクリプトの冒頭に参照関数を挿入することをお勧めします。
|
ReferenceField 関数は、テンプレートがデータベースに接続されている場合にのみ使用できます。
ReferenceSharedSubString 関数は、名前付きデータソースがテンプレートのオブジェクトにリンクされている場合にのみ使用できます。
|
データベースフィールドまたは名前付きデータソースの強制参照
VB スクリプトにデータベースフィールドまたは名前付きデータソースへの参照を強制することができます。
データベースフィールドへの参照を強制するには
-
[スクリプトアシスタント] ペインで [関数]、[宣言]、[ReferenceField] の順に展開します。
-
強制するデータベースフィールドの名前をダブルクリックします。以下のようなコードスニペットが [スクリプト] ペインに表示されます。
ReferenceField("field_name_or_field_number")
ドキュメントが標準的なテキストファイルからデータを読み取るよう設定されている場合は、フィールド番号を指定します。ドキュメントでデータベースからの読み取りが行われるとき、フィールド名を指定します。フィールド名そのものが変数に含まれている場合を除き、ReferenceField ("price") のように名前を引用符で囲みます。
名前付きデータソースへの参照を強制するには
-
[スクリプトアシスタント] ペインで [関数]、[宣言]、[ReferenceSharedSubString] の順に展開します。
-
強制する名前付きデータソースの名前をダブルクリックします。以下のようなコードスニペットが [スクリプト] ペインに表示されます。
ReferenceSharedSubString("共有名")
テンプレート内のデータソースに名前がある場合、そのデータソースへの参照を強制することができます。データソース名そのものが変数に含まれている場合を除き、ReferenceSharedSubString ("price") のように名前を引用符で囲みます。
関連トピック