データベースフィールドとデータ入力フォームの値を使って動的な印刷部数を設定する方法
質問
各レコードには数量がありますが、データ入力フォームで各レコードごとに追加の部数を設定したいです。データベースのフィールドとデータ入力フォームの値を使って、動的に印刷部数を設定するにはどうすればいいですか?
回答
これは直接的な方法はないため、スクリプトを使って対応します。
1. 値を保持するためのラベル外オブジェクトを作成します。
2. キット数量を入力するテキストボックスや他のフォーム要素を、このテキストボックスにリンクします。
3. 「ファイル」>「印刷」に進み、数量の横にあるプロパティボタンをクリックします。
4. オプションを「データソースから数量を取得」に変更します。
5. データソースのオプションを選択し、タイプをVB Scriptに変更します。
6. 式を作成します。
Field("TestDB.TestTable.Qty") + Int(Format.Objects("Text 9").Value)
ここでは、データベースからフィールド(この例ではQty)を取得し、ラベル外オブジェクト(Text 9)の値を加算しています。テンプレートオブジェクトやデータベースフィールドを使って、スクリプトアシスタントでこの関数を作成できます。関数の内容は環境によって異なりますが、基本的な考え方は同じです。
スクリプト内でInt( )を使わないと、値がテキストとして扱われて単純に文字列が連結されてしまいます。例えば12 + 1が121になってしまうので、注意してください。
詳細情報
この関数は印刷部数に追加分を加算します。+演算子は他の演算子に変更することで、スクリプトで印刷部数を自由に調整できます。