35
Designer サンプル AEM 6.2 Forms

Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

Designer サンプル

AEM 6.2 Forms

Page 2: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

最終更新日 2018年4月12日

法的通知法律上の注意については、https://helpx.adobe.com/jp/legal/legal-notices.htmlを参照してください。

Page 3: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

i

目次

サンプルフォームスニペットとフォーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1サンプルフォームスニペット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

サンプルフォーム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

督促状サンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16督促状サンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16督促状フォームについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

E チケットサンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19E チケットサンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19E チケット出力について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

援助金申請書サンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23援助金申請書サンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23援助金申請書フォームについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

発注書サンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24E チケットサンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25ダイナミックおよびスキーマ発注書を実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . .26インタラクティブおよびダイナミックインタラクティブ発注書を実行するには . . . . . . . . . . . .26

スクリプティングサンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27スクリプティングサンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27FormCalc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27

サブフォームセットのサンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28サブフォームセットのサンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28サブフォームセットの出力について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

Page 4: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

ii

納税証明書サンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30納税証明書サンプルを実行するには . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30納税証明書フォームについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30

Page 5: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

1

1. サンプルフォームスニペットとフォーム

1.1. サンプルフォームスニペット

Designer には、フォームの作成時に使用または参照できる選りすぐりのサンプルフォームスニペットがあります。

これらのサンプルフォームスニペットは、Designer のインストールフォルダー内の JA¥Samples¥FormSnippets フォルダーにインストールされます。

次の表はサンプルフォームスニペットの一覧です。

注:このドキュメントでは、Adobe Experience Manager Forms、AEM Forms、LiveCycle が同じ意味で使用されています。

スニペットサンプル ファイル

フィールドの合計の計算 フォーム階層中の異なるレベルのフィールドの合計を計算する方法を示します。

CalculateSum.xdp

フィールドの塗りつぶしの色の変更 実行時にフィールドの塗りつぶし色を変更する方法を示します。

ChangeFillColor.xdp

データに基づいた条件付改行の使用 繰り返しサブフォームに対する条件付き改行の適用方法を示します。

ConditionalPageBreak.xdpConditionalPageBreak.xml

データが指定されたサブフォームの使用 選択サブフォームセットからのサブフォーム表示の制御方法を示します。

DataNominatedSubform.xdpDataNominatedSubform.xml

拡大可能なフィールドの使用 データ量に応じてフィールドが拡大されフローする様子を示します。

ExpandableFields.xdp

データの読み込みおよび書き出し フォーム内でのデータの読み込み方法と書き出し方法を示します。

ImportExportData.xdpImportExportData.xml

アプリケーションを開く スクリプティングを使用してアプリケーションを開く方法を示します。

LaunchApp.xdp

Paper Forms Barcode の使用 Paper Forms Barcode のデータ容量を示します。データ内に大文字と小文字が混在している場合や特殊文字がある場合の、データ容量の変化も示しています。

PaperFormBarcode.xdp

データの検証 スクリプトを使用してデータ値を検証する方法を示します。 RangeValidation.xdp

Page 6: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

2

1.1.1. フィールドの合計の計算

フィールドの合計の計算スニペットでは、フォームを開いたとき、フォーム階層中の異なるレベルのフィールドの合計を計算する方法を示します。

次の例とその他の情報については、 AEM forms デベロッパーセンターを参照してください。

この例では、繰り返しフィールドの合計が計算されます。

フォーム内の繰り返しフィールドの合計を計算するには

1) 合計フィールドに calculate イベントを追加します。

var fields = xfa.resolveNodes("NumericField1[*]");

var total = 0; for (var i=0; i <= fields.length-1; i++) { total = total + fields.item(i).rawValue; }

this.rawValue = total;

この例では、繰り返しフィールド内に階層化されたフィールドの合計が計算されます。

Page 7: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

3

繰り返しサブフォーム内に階層化されたフィールドの合計を計算するには

1) 合計フィールドに calculate イベントを追加します。

var fields = xfa.resolveNodes("detail[*].NumericField1");

var total = 0; for (var i=0; i <= fields.length-1; i++) { total = total + fields.item(i).rawValue; } this.rawValue = total;

この例では、最初のページにあるフィールドの合計が計算されます。

最初のページにあるフィールドの合計を計算するには

1) 合計フィールドに calculate イベントを追加します。

var fields = xfa.layout.pageContent(0 , "field", 0);

var total = 0; for (var i=0; i <= fields.length-1; i++) { if (fields.item(i).name == "NumericField1") { total = total + fields.item(i).rawValue; } }

this.rawValue = total;

Page 8: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

4

1.1.2. フィールドの塗りつぶし色の変更

フィールドの塗りつぶしの色の変更スニペットでは、実行時にフィールドの塗りつぶし色を変更する方法を示します。

このスニペットでは、「塗りつぶしの色を適用」ボタンがクリックされると、テキストフィールドの色が灰色に変わります。

フィールドの塗りつぶし色を変更するには

1) 「塗りつぶしの色を適用」ボタンに次のスクリプトを追加します。

TextField1.fillColor = “200,200,200”;

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 9: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

5

1.1.3. 繰り返しサブフォームでの条件付き改行の使用

データに基づいた条件付改行の使用スニペットでは、繰り返しサブフォームに対する条件付き改行の適用方法を示します。データオーバーフローに応じたページ番号付けとは異なり、条件付き改行を使用すると、「 条件ステートメント 」と呼ばれる一連のチェックに基づいて、フォームに含まれるサブフォームの改行方法を手動で制御できます。この例では、フォームがレンダリングされるとき、3 つのコンテンツ領域を使用してデータを 3 列に編成します。カテゴリが変わるときには改行が挿入され、次の列の先頭から新しいカテゴリが開始されます。

条件付き改行は、条件付き改行の編集ダイアログボックスで指定します。このダイアログボックスを表示するには、Movies サブフォームオブジェクトを選択し、オブジェクトパレットの「ページ番号」タブにある「編集」をクリックします。

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 10: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

6

1.1.4. 条件ステートメントに基づくサブフォーム表示の制御

このデータが指定されたサブフォームスニペットでは、複数の代替サブフォームの内の 1 つを、条件ステートメントに基づいてフォームに表示する方法を示します。データ連結を使用すると、フォームに表示するサブフォームを決定する条件を設定できます。

サブフォームはサブフォームセットに含まれます。Designer では、サブフォームセットにより、サブフォームの表示をデータのフローに基づいて制御できます。この例では、データ内のカテゴリがコメディと一致するたびに Comedy サブフォームが表示され、カテゴリがアクションと一致するたびに Action サブフォームが表示され、データ内のカテゴリがドラマと一致するたびに Drama サブフォームが表示されます。

代替サブフォームは、データが指定されたサブフォームを編集ダイアログボックスで指定します。このダイアログボックスを表示するには、Movie サブフォームセットオブジェクトを選択し、オブジェクトパレットの「サブフォームセット」タブにある「代替オブジェクトの編集」をクリックします。

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 11: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

7

PDF ファイルを生成する場合は、フォームをデータとマージする必要があります。マージを行わないと、インスタンスを作成するサブフォームを決定するスクリプトでデータを使用できません。ユーザーがAdobe® Acrobat® で PDF ファイルを開くと、警告メッセージが表示されます。この警告が表示されないようにするには、データ値の存在を確認するスクリプトを追加してから、スクリプトを実行します。

1.1.5. テキストフィールドで複数行のテキストを使用できるようにする

拡大可能なフィールドスニペットでは、複数行のデータを表示できるようにテキストフィールドを拡大する方法を示します。この例では、複数行のテキストを表示できるように、5 つの質問フィールドを調整する必要があります。

テキストフィールドオブジェクトごとに、オブジェクトパレットの「フィールド」タブにある「複数行」オプションを選択することにより、1 行以上の改行テキストを受け入れられるように設定します。

また、同じページに収まらないテキストを適切に表示するため、Questions サブフォームの「コンテンツ内で改ページを許可」オプションを選択します。

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 12: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

8

1.1.6. 読み込むデータおよび書き出すデータのファイル名の入力を促す

データの読み込みおよび書き出しスニペットでは、読み込んだり書き出んだりする XML データのファイル名を入力するように、ユーザーに促す方法を示します。

この例では、「データの書き出し」ボタンのスクリプトによってファイル名が与えられないので、書き出されるデータファイルの名前を指定するようにユーザーに促します。

「データの書き出し」ボタンにスクリプトを追加するには

xfa.host.exportData(““,0);

同様に、「データの読み込み」ボタンのスクリプトによってファイル名が与えられないので、読み込まれるデータファイルの名前を指定するようにユーザーに促します。

「データの読み込み」ボタンにスクリプトを追加するには

xfa.host.importData(““,0);

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 13: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

9

1.1.7. フォームからアプリケーションを開く

アプリケーションを開くスニペットでは、フォームからブラウザーでユーザー指定の URL を開く方法、およびフォームから Acrobat または Adobe® Reader® でファイルを開く方法を示します。

この例では、「開く」ボタンがクリックされると、別のブラウザーコンテナーでユーザー指定の URL が開きます。

ブラウザーでユーザー指定の URL を開くスクリプトを追加するには

1) 「開く」ボタンに次のスクリプトを追加します。

app.launchURL(TextField1.rawValue, true);

この例では、「開く」ボタンがクリックされると、現在のコンテナーでユーザー指定の URL が開きます。

ブラウザーでユーザー指定の URL を開くスクリプトを追加するには

1) 「開く」ボタンに次のスクリプトを追加します。

xfa.host.gotoURL(TextField2.rawValue, 0);

この例では、「開く」ボタンがクリックされると、Acrobat または Adobe Reader でユーザー指定のPDF ファイルが開きます。

Page 14: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

10

ユーザー指定の PDF ファイルを開くスクリプトを追加するには

1) 「開く」ボタンに次のスクリプトを追加します。

app.openDoc(FilePath.rawValue);

同様の例については、 AEM forms デベロッパーセンターを参照してください。

1.1.8. Paper Forms Barcode のデータの表示

Paper Forms Barcode の使用スニペットでは、Paper Forms Barcode の容量を示します。データ内に大文字と小文字が混在している場合や特殊文字がある場合の、データ容量の変化も示しています。

この例では、255 未満の文字数を入力し、「データを生成」ボタンをクリックすると、バーコードデータ容量が変化します。また、「大文字のみ使用」チェックボックスの選択を解除すると、大文字と小文字を混在させたときにバーコードのデータ容量が減少することがわかります。

「生成する文字数」テキストボックスのスクリプトを追加するには

form1.#subform[0].CharstoGen::validate - (JavaScript, client) // The maximum number of characters to generate is 255. if (this.rawValue > 255) {this.rawValue = 255; false; }

Page 15: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

11

「大文字のみ使用」チェックボックスのスクリプトを追加するには

form1.#subform[0].UpperCaseOnly::change - (JavaScript, client) if (this.rawValue == 1) { CharacterBase.value = " ABC DEF GHI JKL MNO PQR STU VWX YZ,"; } else { CharacterBase.value = " ABC DEF GHI JKL MNO PQR STU VWX YZa bcd efg hij klm nop qrs tuv wxy z01 234 567 890 <xml>,"; xfa.host.messageBox("When data is encoded into a PDF417 barcode, all UPPER CASE data requires less space in a barcode. 大文字と小文字の切り替えを行う場合、特殊文字をバー

コード内に埋め込み、 大文字と小文字間の変更が行われていることをデコーダーまたはスキャナーが認識

できるようにする必要があります。 この例から分かるように、 バーコードのデータ容量は、 大文字と小文

字が混在している場合に少な く なります。 ", "大文字" ,3, 1); }

if (CharstoGen.rawValue >= 255) CharstoGen.rawValue = 255;

「データを生成」ボタンにスクリプトを追加するには

form1.#subform[0].Button1::click - (JavaScript, client) // Display random data in Paper Form barcode. var RandomLetters = ""; var sequence = ""; var FieldFillSize = 0; var nIndex = 0;

RandomLetters = CharacterBase.value; FieldFillSize = CharstoGen.rawValue;

for (var i = 1; i <= FieldFillSize; i++) { nIndex = Math.floor(Math.random() * RandomLetters.length); sequence = sequence + RandomLetters.charAt(nIndex); }

BarcodeData.rawValue = sequence;

Page 16: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

12

バーコードにスクリプトを追加するには

BarcodeData.rawValue = sequence; form1.#subform[0].Barcode::calculate - (JavaScript, client) //{{Start Generated Content// var is705ViewerRequired = false; //End Generated Content}}//

function createBarcodeContent() {

// TODO: Encode your barcode content here var barcodeContent = " "; barcodeContent = BarcodeData.rawValue; return barcodeContent;

}

// Assign content to the barcode. // Note: Do not assign a null value to // the barcode. Otherwise, the barcode is // displayed as blank. if(createBarcodeContent() != null) {

this.rawValue = createBarcodeContent(); } else { this.rawValue = " "; } // Final sanity check, located here not for // efficiency but for consistency and correctness if (is705ViewerRequired && xfa.host.version < 7.05) { this.rawValue = " "; }

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 17: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム

13

1.1.9. スクリプトを使用した日付の検証

日付の検証スニペットでは、ユーザーが入力した日付範囲に基づく日付の検証方法を示します。

この例では、ユーザーがカレンダーから日付を選択します。次に、指定された日付を有効と見なす日付範囲を指定します。指定された日付と日付範囲がフォームによって比較され、指定された年、月および日が有効かどうかがレポートされます。

「検証」ボタンにスクリプトを追加するには

form1.#subform[0].Button1::click - (JavaScript, client) Status.clearItems(); //Clear the status listbox.

// Create a date() for parsing information. var sDate = Date.rawValue; var oDate = util.scand("yyyy-mm-dd", sDate); if(oDate == null) { xfa.host.messageBox("Pleae enter a valid date."); exit; }

// Store date values. var nYear = oDate.getFullYear(); var nMonth = oDate.getMonth() + 1; // 0 based var nDay = oDate.getDate();

// Validation flags. var bStartYear = false; var bEndYear = false; var bStartMonth = false; var bEndMonth = false; var bStartDay = false; var bEndDay = false;

// Validate the year range. if((StartYear.rawValue == null) || (StartYear.rawValue <= nYear))

Page 18: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォームスニペットとフォーム 1

14

bStartYear = true; if((EndYear.rawValue == null) || (EndYear.rawValue >= nYear)) bEndYear = true; if(bStartYear && bEndYear) Status.addItem("valid year"); else Status.addItem("invalid year");

// Validate the month range. if((StartMonth.rawValue == null) || (StartMonth.rawValue <= nMonth)) bStartMonth = true; if((EndMonth.rawValue == null) || (EndMonth.rawValue >= nMonth)) bEndMonth = true; if(bStartMonth && bEndMonth) Status.addItem("valid month"); else Status.addItem("invalid month");

// Validate the day range. if((StartDay.rawValue == null) || (StartDay.rawValue <= nDay)) bStartDay = true; if((EndDay.rawValue == null) || (EndDay.rawValue >= nDay)) bEndDay = true; if(bStartDay && bEndDay) Status.addItem("valid day"); else Status.addItem("invalid day");

同様の例については、 AEM forms デベロッパーセンターを参照してください。

Page 19: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サンプルフォーム

15

2. サンプルフォーム

Designer には、完全なサンプルフォームが各種用意されています。各サンプルフォームには、フォームデザインと最終のバージョンフォームが含まれています。一部のサンプルフォームにはサンプルデータやスキーマも含まれています。サンプルフォームは、単純型と複合型の両方のフォームデザインテクニックを表したもので、Designer のインストールフォルダー内の JA¥Samples フォルダーにインストールされます。

注:Purchase Order Dynamic.xdp などの一部のサンプルフォームデザインは、データとマージして使用します。この種のフォームを PDF 形式で保存すると、Acrobat または Adobe Reader で開くときに、警告が生成される場合があります。

次の表に、すべてのサンプルと Designer インストールフォルダーにおける各サンプルの場所を示します。

フォームサンプル 場所

催促状 ダイナミック PDF フォームの動作を実際に試すことができます。 ¥JA¥Samples¥Forms¥Dunning Notice

E チケット ダイナミック PDF フォームの動作を実際に試すことができます。Designer ヘルプ E-Ticket.pdf サンプルファイルに表示される数字記号について説明します。

¥JA¥Samples¥Forms¥E-Ticket

援助金申請書 インタラクティブ PDF フォームの動作を実際に試すことができます。

¥JA¥Samples¥Forms¥Grant Application

発注書 ダイナミックおよびインタラクティブな PDF フォームの動作を実際に試すことができます。

¥JA¥Samples¥Forms¥Purchase Order

スクリプティング FormCalc および JavaScript 言語によるスクリプト記述を体験できます ™ 。 スクリプトをボックスに入力し、ボタンをクリックすると、そのスクリプトを実行できます。

¥JA¥Samples¥Forms¥Scripting

サブフォームセット ダイナミック PDF フォームの動作を実際に試すことができます。サンプルには 4 つのサブサンプルが含まれています。これを使用して、サブフォームタイプと繰り返し回数の様々な関係に応じたサブフォームセットオブジェクトのインスタンス作成動作を実際に試すことができます。

¥JA¥Samples¥Forms¥SubformSet

納税証明書 ダイナミック PDF フォームの動作を実際に試すことができます。 ¥JA¥Samples¥Forms¥Tax Receipt

Page 20: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

督促状サンプル 3

16

3. 督促状サンプル

督促状サンプルを使用して、ダイナミック PDF フォームの動作を実際に試すことができます。

このサンプルでは、3 つの督促レベルを使用できます。各レベルに適した情報が、未払い文書のリストと共に印刷される必要があります。

サンプルには以下のファイルが含まれます。

3.1. 督促状サンプルを実行するには

1) ¥JA¥Samples¥Forms¥Dunning Notice¥Forms にある Dunning Notice.xdp ファイルを Designer で開きます。

2) プレビューオプションを指定するには、ファイル/フォームのプロパティを選択します。

3) 「PDF プレビュー」タブをクリックし、次の操作を実行します。

• プレビューのタイプリストから「印刷フォーム」を選択します。

• 「データファイル」ボックスで Data フォルダーを参照し、いずれかのサンプルデータファイル(例えば、Dunning Notice Level1.xml)を選択します。

• 「OK」をクリックします。

4) フォームをプレビューするには、「PDF プレビュー」タブをクリックします。

Outputs フォルダーにある出力サンプル PDF ファイルは、3 セットのデータをそれぞれに結合してレンダリングしたフォームです。これらのファイルを使用して、プレビュー表示したフォームの結果と比較できます。

ファイル 説明

Dunning Notice.xdp Designer フォームファイルは Forms フォルダー内にあります。

Dunning Notice Level1.xmlDunning Notice Level2.xmlDunning Notice Level3.xml

Data フォルダー内の XML データファイル。Dunning Notice Level 3 データファイルには、多くの請求書が含まれているので 1 ページには収まりません。

Dunning Notice.tif 画像ファイルは Images フォルダー内にあります。

Dunning Notice Level1.pdfDunning Notice Level2.pdfDunning Notice Level3.pdf

データを結合してレンダリングしたフォームは Outputs フォルダー内にあります。

Page 21: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

督促状サンプル

17

3.2. 督促状フォームについて

このフォームの特長は以下のとおりです。

フォームの階層構造督促状フォームは、間接的なデータ連結処理の利点を活かすことができるデータ構造に基づいています。

マスターページ2 つのマスターページが必要です。1 つ目のマスターページには、会社のロゴ、フォームタイトルおよびスタティックテキストが表示されます。これが最初に印刷されるページで、印刷時の奇数ページに表示されます。2 つ目のマスターページは、印刷時の偶数ページに使用されます。ページ番号に加え、同じスタティックテキストが表示されます。

ページ番号ページ番号は、テキストオブジェクトに実行時プロパティを挿入することによって取得した計算値です。

フローコンテンツサブフォームの親(dunningNotice)の「コンテンツ」オプションを「フローレイアウト」に設定すると、データがフォームに結合されるときに、サブフォームが他のサブフォームの 1 つ下位に配置されます。「コンテンツ」オプションはオブジェクトパレットの「サブフォーム」タブにあります。オブジェクトパレットの「サブフォーム」タブにあるフローの方向リストは、「上から下へ」に設定します。レイアウトパレットでサブフォームの余白を指定すると、2 つのサブフォーム間に必要な余白を挿入できます。

header、level1、level2、level3 および closing サブフォームにもフローコンテンツが含まれます。フィールドの余白を指定して、2 つのオブジェクト間に必要な余白を挿入できます。

サブフォームオカレンス連携して正しくデータを収容するために、フォームには複数のサブフォームが含まれています。サブフォーム自体は、繰り返されるサブフォームと単発のサブフォームから構成されます。detail headerおよび closing サブフォームを除くすべてのサブフォームの「各データアイテムについてサブフォームを繰り返す」をチェックして最小値を 0 に設定すると、必要なサブフォームだけを印刷するように指定できます。単発の各サブフォームの最大値は 1 に設定されています。繰り返されるサブフォームの場合は、データセットによって最大値が異なるので、繰り返し回数の最大値はありません。closingサブフォームの場合は、サブフォームのインスタンスを生成するデータが存在しないので、最小値が1 に設定されます。

詳細ヘッダー詳細ヘッダーには列の見出しが表示され、最初の詳細行の前に印刷されます。詳細行が 1 ページに収まりきらず次のページに続く場合には、この詳細ヘッダーの情報が各ページの最上部に表示されます。detailHeader サブフォームの「各データアイテムについてサブフォームを繰り返す」をチェックして最小値を 1 に設定すると、ヘッダーが必ず少なくとも 1 回は印刷されます。

オーバーフローリーダーdetailHeader サブフォームは、オーバーフローリーダーとして文書サブフォームに関連付けられています。この機能によって、文書サブフォームが新しいページに流し込まれるたびに、必ず文書サブフォームのオーバーフローリーダーサブフォームが印刷されます。detailHeader サブフォームにはフィールドがないので、オブジェクトパレットの「連結」タブの「データ連結」オプションは「データ連結なし」に設定されます。

Page 22: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

督促状サンプル 3

18

グローバルフィールド通貨の値はデータファイルで 1 回だけ指定します。通貨フィールドのデフォルトの連結をグローバルに設定して、このフィールドを複数箇所で使用すると、各フィールドにこの値が入力されます。

画像フィールド会社のロゴは変わる可能性があるので、ロゴファイルはデータファイルに埋め込まれます。画像フィールドオブジェクトを使用して画像を表示します。

各フィールドの最大文字数各フィールドの最大文字数の値は、データ仕様に応じて設定されます。「最大文字数」オプションはオブジェクトパレットの「フィールド」タブにあります。

拡張可能フィールドとアンカーの位置様々な長さのデータ値を収容するために、billToAddress フィールド、Salutation フィールドおよびClosing フィールドに対してレイアウトパレットの「拡大して合わせる」オプションが選択されています。これらのフィールドのアンカーの位置は、フィールドを適切な方向に拡張できるように設定されています。

変数全段落の結びは同じです。メンテナンスを簡単にするために、結びの値は変数として定義され、スクリプトを使用してこの値が参照および表示されます。フィールドの値が計算されるので、「データ連結」オプションは「データ連結なし」に設定されます。

スクリプティング住所の値は一まとめにして表示する必要があります。JavaScript スクリプトを使用してデータ値を連結します。billToAddress フィールドの値が計算されるので、「データ連結」オプションは「データ連結なし」に設定されます。

複数行フィールドbillToAddress フィールドの場合、オブジェクトパレットの「フィールド」タブにある「複数行」プロパティが選択されています。これにより、計算した値を複数行に出力できます。

フローティングフィールドlevel3 サブフォームには、テキストとフィールドの両方が含まれています。フローティングフィールドを使用すると、情報を自然に流し込むことができます。表示パターンをフィールドに対して直接指定して、段落に表示できます。表示パターンを指定するには、オブジェクトパレットの「フィールド」タブにある「パターン」オプションを使用します。フローティングフィールドはテキストオブジェクトに挿入された非表示のフィールドです。フローティングフィールドへの参照は、中括弧内のフィールド名(例えば、{fieldName})で表します。

表示パターン値によっては、表示パターンを適用すると読みやすくなります。例えば、level3 サブフォームのdeadline の値には、オブジェクトパレットの「連結」タブでデータパターン値に標準の長さの日付が適用されています。

Page 23: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

E チケットサンプル

19

4. E チケットサンプル

E チケットサンプルを使用して、ダイナミック PDF フォームの動作を実際に試して理解することができます。サンプルフォームには、黒丸に白抜きの数字で表した番号が含まれています。これらの番号については、「 E チケット出力について」で説明します。

このフォームでは、航空便予定表、米国の税関申告書、健康状態申告書、フライト乗り換え券、宿泊先情報および搭乗券を含むオリジナルのトラベルパッケージが印刷されます。パッケージの各セクションに応じて用紙の向きを変えて印刷するようになっています。

このサンプルには以下のファイルが含まれます。

4.1. E チケットサンプルを実行するには

1) ¥JA¥Samples¥Forms¥E-Ticket¥Forms にある E-Ticket.xdp ファイルを Designer で開きます。

2) プレビューオプションを指定するには、ファイル/フォームのプロパティを選択します。

3) 「PDF プレビュー」タブをクリックし、次の操作を実行します。

• プレビューのタイプリストから「印刷フォーム(両面)」を選択します。

• 「データファイル」ボックスで Data フォルダーを参照し、サンプルデータファイル E-Ticket.xmlを選択します。

• 「OK」をクリックします。

4) フォームをプレビューするには、「PDF プレビュー」タブをクリックします。

Outputs フォルダーにある出力サンプル PDF ファイルは、データを結合してレンダリングしたフォームです。このファイルを使用して、プレビュー表示したフォームの結果と比較できます。

ファイル 説明

E-Ticket.xdp Designer フォームファイルは Forms フォルダー内にあります。

E-Ticket.xml XML データファイルは Data フォルダー内にあります。

E-Ticket.tif 画像ファイルは Images フォルダー内にあります。

E-Ticket.pdf データを結合してレンダリングしたフォームは Outputs フォルダー内にあります。

Page 24: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

E チケットサンプル 4

20

4.2. E チケット出力について

以下の番号は、サンプルフォームファイルの番号付き丸アイコンの数字に対応します。

1) パッケージの表紙は、用紙の向きを縦にして 1 回だけ印刷します。• cover page データグループが存在すると、coverPage サブフォームが呼び出されます。• coverPage サブフォームはページセットで定義される最初のページ範囲なので、縦向きのマス

ターページに配置されます。

• coverPage サブフォームの最小値は 0 で最大値は 1 です。「最小値」および「最大値」オプションはオブジェクトパレットの「連結」タブにあります。

• 画像ファイルはフォームにリンクされています。リンクは画像オブジェクトの URL として設定されます。

• 「本トラベルパッケージの内容」セクションでは、JavaScript によって、フィールドのキャプションテキストが必要に応じて複数になるように設定されています。

注:トラベルパッケージの複数箇所に印刷する必要があるデータ値は、グローバルフィールドとして作成されます。例えば、lastName、firstName および initial フィールドがこれに相当します。

2) 航空便予定表ヘッダーの情報は用紙の向きを横にして、フライト予定のリストの前に印刷する必要があります。

• flightHeader サブフォームを呼び出すには、サブフォームとサブフォームセットの繰り返し回数と subformSet の関係タイプの組み合わせが必要です。

• itinerary サブフォームセットのインスタンスが作成されるのは、flight サブフォームのインスタンスが作成される場合のみです。これを実行するには、サブフォームセットの「各データアイテムについてサブフォームを繰り返す」をチェックして「最小値」を 0 に設定します。サブフォームセットのインスタンスが作成されると、flightHeader サブフォームが呼び出されます。これは flightHeader サブフォームの「最小値」が 1 であるためです。ただし、オブジェクトパレットの「サブフォームセット」タブでサブフォームセットのタイプの値を「すべてのサブフォームを順番に使用」に設定する必要があります。

• flightHeader サブフォームは横向きのマスターページに関連付けられます。flightHeader サブフォームの配置は「ページ "landscape" 上」です。

• flightHeader サブフォームは、オーバーフローリーダーとして flight サブフォームに関連付けられています。flightHeader サブフォームは、航空便予定セクションの各ページの上部に印刷されます。この情報は繰り返す必要があるので、オブジェクトパレットの「連結」タブにある「データ連結」フィールドで、デフォルトの連結を「グローバルデータによる」に設定します。

3) フライトはトラベルパッケージに固有のもので、旅程によって異なる可能性があります。

• flight データグループが存在すると、flight サブフォームが呼び出されます。flight サブフォームの「各データアイテムについてサブフォームを繰り返す」の「最小値」は 0 で、最大繰り返し数は無制限です。つまり、データが存在する場合にのみサブフォームのインスタンスが作成され、データを印刷するために必要な回数だけ無制限に繰り返されます。「各データアイテムについてサブフォームを繰り返す」オプションを選択し、「最大値」オプションの選択を解除すると、最大値が無制限になります。「各データアイテムについてサブフォームを繰り返す」オプションは、オブジェクトパレットの「連結」タブにあります。

• flight サブフォームは前のサブフォームに続けて配置されます。

Page 25: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

E チケットサンプル

21

4) 家族 1 人ずつに 1 通の税関申告書が必要です。申告書は用紙の向きを縦にして印刷します。

• customs データグループが存在すると、customs サブフォームが呼び出されます。

• customs サブフォームの「各データアイテムについてサブフォームを繰り返す」の「最小値」は0で、「最大値」は 1 です。

• customsサブフォームは縦向きのマスターページに関連付けられています。customsサブフォームは縦向きのページの先頭に配置されます。これにより新しいページが作成されます。

5) 用紙の向きを縦にして、1 ページに 1 通の健康状態申告書を印刷します。

• medical データグループが存在すると、medical サブフォームが呼び出されます。

• medicalサブフォームの「各データアイテムについてサブフォームを繰り返す」の「最小値」は0で、最大繰り返し数は無制限です。

• medical サブフォームは縦向きのマスターページに関連付けられ、縦向きのページの先頭に配置されるので、新しいページが作成されます。

• JavaScript を使用して搭乗者の自宅住所の情報が連結されます。homeAddress フィールドに対して「複数行」オプションを有効にすると、情報が正しくひとまとめに印刷されます。「複数行」オプションはオブジェクトパレットの「フィールド」タブにあります。

6) 宿泊先ヘッダーの情報は用紙の向きを横にして、ホテルのリストの前に印刷する必要があります。

• hotelHeader サブフォームを呼び出すには、サブフォームとサブフォームセットの繰り返し回数とサブフォームセットの関係タイプの組み合わせが必要です。

• accommodation サブフォームセットのインスタンスが作成されるのは、hotel サブフォームのインスタンスが作成される場合のみです。これを実行するには、サブフォームセットの「各データアイテムについてサブフォームを繰り返す」をチェックして最小値を 0 に設定します。サブフォームセットのインスタンスが作成されると、hotelHeader サブフォームが呼び出されます。これは hotelHeader サブフォームの「最小値」が 1 であるためです。ただし、サブフォームセットのタイプを「すべてのサブフォームを順番に使用」に設定する必要があります。

• hotelHeader サブフォームは横向きのマスターページに関連付けられています。hotelHeaderサブフォームは横向きのページに配置されます。

• hotelHeader サブフォームは、オーバーフローリーダーとして hotel サブフォームに関連付けられています。hotelHeader サブフォームは、宿泊先ホテルセクションの各ページの上部に印刷されます。この情報は繰り返す必要があるので、フィールドをグローバルに設定します。

• JavaScript を使用して、lastName と firstName のデータ値を連結します。

• 宿泊客住所の値は一まとめにして表示する必要があります。JavaScript を使用してデータ値を連結します。

Page 26: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

E チケットサンプル 4

22

7) ホテルリストはトラベルパッケージに固有のものであり、旅程によって異なる可能性があります。

• hotel データグループが存在すると、hotel サブフォームが呼び出されます。hotel サブフォームの「各データアイテムについてサブフォームを繰り返す」の「最小値」は 0 で、最大繰り返し数は無制限です。データが存在する場合にのみサブフォームのインスタンスが作成され、データを印刷するために必要な回数だけ無制限に繰り返されます。

• hotel サブフォームは前のサブフォームの後に配置されます。

• 部屋タイプの値は一まとめにして表示する必要があります。JavaScript スクリプトを使用してデータ値を連結します。roomName フィールドの値が計算されるので、「データ連結」オプションは「データ連結なし」に設定されます。

8) 搭乗券は、用紙の向きを横にして 1 ページに 1 枚印刷します。

• boardingデータグループが存在すると、boarding サブフォームが呼び出されます。

• boarding サブフォームの「各データアイテムについてサブフォームを繰り返す」の「最小値」は 0 で、最大繰り返し数は無制限です。つまり、データが存在する場合にのみサブフォームのインスタンスが作成され、データを印刷するために必要な回数だけ無制限に繰り返されます。

• boardingサブフォームは横向きのマスターページに関連付けられています。boardingサブフォームは横向きのページの先頭に配置され、これにより新しいページが作成されます。

Page 27: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

援助金申請書サンプル

23

5. 援助金申請書サンプル

援助金申請書サンプルを使用して、インタラクティブ PDF フォームの動作を実際に試すことができます。

このサンプルには、フォームを発行した団体または組織用に記入する援助金申請書が含まれています。

このサンプルには Grant Application.pdf というファイルが含まれます。ユーザーが情報のやり取りをするフォームデザインとフォームは Forms フォルダー内にあります。

5.1. 援助金申請書サンプルを実行するには

1) ¥JA¥Samples¥Forms¥Grant Application¥Forms にある Grant Application.pdf というフォームをAcrobat または Adobe Reader で開きます。

2) プロジェクトのタイトルのフィールドをクリックして、フォームの入力を開始します。

5.2. 援助金申請書フォームについて

このフォームの特長は以下のとおりです。

ページ番号ページ番号は、テキストオブジェクトに実行時プロパティを挿入することによって取得した計算値です。

各フィールドの最大文字数オブジェクトパレットの「フィールド」タブにある「最大文字数」オプションは、各フィールドのデータ仕様によって異なります。

複数行フィールドDescription フィールドの場合、オブジェクトパレットの「フィールド」タブにある「複数行」オプションが選択されています。これにより、ユーザーが複数行に入力できます。

表示パターン一部の値は特定の形式で入力する必要があります。オブジェクトパレットの「値」タブで確認メッセージを設定できます。ユーザーが正しい形式で値を入力しなかった場合に、このメッセージが表示され、正しい形式で入力し直すよう要求されます。例えば、BudgetDirectCosts フィールドにユーザーが入力した値をスクリプトを使用して検証します。

カスタムライブラリオブジェクトU.S. States カスタムライブラリオブジェクトを使用して、State および OrgState コンボボックスを作成します。

タブの順序列に合わせて移動できるように、デフォルトのタブの順序が変更されました。タブの順序を表示するには、表示メニューから「タブの順序」コマンドを選択します。

Page 28: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

発注書サンプル 6

24

6. 発注書サンプル

4 つの発注書サンプルを使用して、ダイナミックおよびインタラクティブな PDF フォームの動作を実際に試すことができます。

ダイナミック発注書サンプルには以下のファイルが含まれます。

ダイナミックおよびインタラクティブ発注書サンプルには以下のファイルが含まれます。

フォームフラグメント発注書サンプルには以下のファイルが含まれます。

ファイル 説明

PurchaseOrder.xdp Designer フォームファイルは Forms フォルダー内にあります。

Purchase Order.xml XML データファイルは Data フォルダー内にあります。

Purchase Order.tif 画像ファイルは Images フォルダー内にあります。

Purchase Order.pdf データを結合してレンダリングしたフォームは Outputs フォルダー内にあります。

ファイル 説明

Purchase Order.pdf Designer フォームファイルは Forms フォルダー内にあります。

Purchase Order.tif 画像ファイルは Images フォルダー内にあります。

ファイル 説明

Purchase Order Dynamic Interactive.pdfPurchase Order Dynamic.xdpPurchase Order Interactive.pdf

Designer フォームファイルは Forms フォルダー内にあります。

Purchase Order Canada.xmlPurchase Order US.xml

XML データファイルは Data フォルダー内にあります。

Purchase Order.tif 画像ファイルは Images フォルダー内にあります。

CountryScript.xdpDeliverToAddress.xdpFooter.xdpFooterCanada.xdpFooterUS.xdpHeader.xdpOrderedByAddress.xdpPartNoScript.xdp

Fragments フォルダー内のフラグメント。

Purchase Order Canada.pdfPurchase Order US.pdf

データを結合してレンダリングしたフォームは Outputs フォルダー内にあります。

Page 29: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

発注書サンプル

25

インタラクティブ発注書サンプルには以下のファイルが含まれます。

スキーマ発注書サンプルには以下のファイルが含まれます。

6.1. E チケットサンプルを実行するには

1) ¥JA¥Samples¥Forms¥E-Ticket¥Forms にある E-Ticket.xdp ファイルを Designer で開きます。

2) プレビューオプションを指定するには、ファイル/フォームのプロパティを選択します。

3) 「PDF プレビュー」タブをクリックし、次の操作を実行します。

• プレビューのタイプリストから「印刷フォーム(両面)」を選択します。

• 「データファイル」ボックスで Data フォルダーを参照し、サンプルデータファイル E-Ticket.xmlを選択します。

• 「OK」をクリックします。

4) フォームをプレビューするには、「PDF プレビュー」タブをクリックします。

Outputsフォルダーにある出力サンプルPDFファイルは、データを結合してレンダリングしたフォームです。このファイルを使用して、プレビュー表示したフォームの結果と比較できます。

ファイル 説明

Purchase Order.pdf ユーザーが情報のやり取りをするフォームデザインとフォームは Forms フォルダー内にあります。

Purchase Order.tif 画像ファイルは Images フォルダー内にあります。

ファイル 説明

Purchase Order.xdp Designer フォームファイルは Forms フォルダー内にあります。

Purchase Order.xml XML データファイルは Data フォルダー内にあります。

Purchase Order.xsd スキーマファイルは Schema フォルダー内にあります。

Purchase Order.tif 画像ファイルは Images フォルダー内にあります。

Purchase Order.pdf データを結合してレンダリングしたフォームは Outputs フォルダー内にあります。

Page 30: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

発注書サンプル 6

26

6.2. ダイナミックおよびスキーマ発注書を実行するには

1) 以下のうち適切なフォームを Designer で開きます。

• ¥JA¥Samples¥Forms¥Purchase Order¥Dynamic¥Forms にある Purchase Order.xdp ファイル

• ¥JA¥Samples¥Forms¥Purchase Order¥Schema¥Forms にある Purchase Order.xdp ファイル

2) プレビューオプションを指定するには、ファイル/フォームのプロパティを選択します。

3) 「PDF プレビュー」タブをクリックし、次の操作を実行します。

• プレビューのタイプリストから「印刷フォーム(両面)」を選択します。

• 「データファイル」ボックスで Data フォルダーを参照し、サンプルデータファイル PurchaseOrder.xml を選択します。

• 「OK」をクリックします。

4) フォームをプレビューするには、「PDF プレビュー」タブをクリックします。

Outputsフォルダーにある出力サンプルPDFファイルは、データを結合してレンダリングしたフォームです。このファイルを使用して、プレビュー表示したフォームの結果と比較できます。

6.3. インタラクティブおよびダイナミックインタラクティブ発注書を実行するには

1) 以下のうち適切なフォームを Acrobat または Adobe Reader で開きます。

• ¥JA¥Samples¥Forms¥Purchase Order¥Interactive¥Forms にある Purchase Order.xdp ファイル

• ¥JA¥Samples¥Forms¥Purchase Order¥Dynamic Interactive¥Forms にある Purchase Order.xdpファイル

2) 発注番号フィールドをクリックして、フォームの入力を開始します。

Outputsフォルダーにある出力サンプルPDFファイルは、データを結合してレンダリングしたフォームです。このファイルを使用して、プレビュー表示したフォームの結果と比較できます。

Page 31: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

スクリプティングサンプル

27

7. スクリプティングサンプル

スクリプティングサンプルを使用すると、FormCalc および JavaScript 言語によるスクリプト記述を体験できます。スクリプトをボックスに入力し、ボタンをクリックすると、そのスクリプトを実行できます。サンプルには、スクリプトに使用できる様々なフィールドタイプが含まれています。

このサンプルには Scripting.pdf というファイルが含まれます。ユーザーが情報のやり取りをするフォームデザインとフォームは Forms フォルダー内にあります。

7.1. スクリプティングサンプルを実行するには

1) ¥JA¥Samples¥Forms¥Scripting¥FormsにあるScripting.pdfというフォームを、Acrobatまたは AdobeReader で開きます。

2) 「ここにスクリプトを入力してください」フィールドにスクリプトを入力します。

3) スクリプトに必要な項目を入力します。

4) 適切なボタンをクリックして、スクリプトを実行します。出力は「結果」フィールドに表示されます。必要に応じて、これらの結果を別のフィールドに割り当てることができます。

5) スクリプトを実行したら、「フィールドをクリア」をクリックして、スクリプトを再実行するか変更します。

簡単なスクリプトを試すには、以下のいずれかのサンプルを使用します。

7.2. JavaScript

if (NF1.rawValue < NF2.rawValue) NF3.rawValue = 0 else

NF3.rawValue = NF1.rawValue - NF2.rawValue

7.3. FormCalc

if (NF1 < NF2) then NF3 = 0 else NF3 = NF1 - NF2 endif

両方のスクリプトで数値フィールド「 NF1」、「 NF2」および「 NF3 」を使用します。ユーザーは「 NF1 」および「 NF2 」フィールドに数値を入力し、スクリプトによって減算(NF1-NF2)が実行されます。その差が「 NF3 」フィールドに表示されます。 結果が負の場合は、「 NF3 」の値が 0に設定されます。

Page 32: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サブフォームセットのサンプル 8

28

8. サブフォームセットのサンプル

サブフォームセットのサンプルを使用して、ダイナミック PDF フォームの動作を実際に試すことができます。サブフォームタイプと繰り返し回数の様々な関係に応じたサブフォームセットオブジェクトのインスタンス作成動作を、4 つのサブサンプルを使用して実際に試すことができます。サンプルフォームには、黒丸に白抜きの数字で表した番号が含まれています。これらの番号については、「 サブフォームセットの出力について」で説明します。

サンプルには以下のファイルが含まれます。

8.1. サブフォームセットのサンプルを実行するには

1) ¥JA¥Samples¥Forms¥SubformSet にある Forms フォルダー内のいずれかのフォームを、Designerで開きます。

2) プレビューオプションを指定するには、ファイル/フォームのプロパティを選択します。

3) 「PDF プレビュー」タブをクリックし、次の操作を実行します。

• プレビューのタイプリストから「印刷フォーム(両面)」を選択します。

• 「データファイル」ボックスで Data フォルダーを参照し、いずれかのサンプルデータファイル(例えば、DataA.xml)を選択します。

• 「OK」をクリックします。

4) フォームをプレビューするには、「PDF プレビュー」タブをクリックします。

Outputsフォルダーにある出力サンプルPDFファイルは、2セットのデータをそれぞれに結合してレンダリングしたフォームです。これらのファイルを使用して、プレビュー表示したフォームの結果と比較できます。

ファイル 説明

SubformSet1.xdpSubformSet2.xdpSubformSet3.xdpSubformSet4.xdp

Forms フォルダー内の Designer フォームファイル

DataA.xmlDataB.xml

Data フォルダー内の XML データファイル

SubformSet1 DataA.pdfSubformSet1 DataB.pdfSubformSet2 DataA.pdfSubformSet2 DataB.pdfSubformSet3 DataA.pdfSubformSet3 DataB.pdfSubformSet4 DataA.pdfSubformSet4 DataB.pdf

Outputs フォルダー内にある、データを結合してレンダリングしたフォーム

Page 33: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

サブフォームセットのサンプル

29

8.2. サブフォームセットの出力について

以下の番号付きコメントは、サブフォームセットのサンプルフォームにある番号付き黒丸アイコンの数字に対応します。

1. データこのサンプルには 2 つのサンプルデータファイルがあります。この節には、フォームに結合されたデータファイルの名前とデータファイルの内容が記載されています。この情報は、第 3 節「サブフォームの関係」に示されるデータを比較する際に役立ちます。

2. サブフォームオカレンス各フォームには 3 つのサブフォームが含まれています。この節では、サブフォームの繰り返し回数の最小値と最大値を示します。繰り返し回数はオブジェクトパレットの「連結」タブで指定します。

8.2.1. 1 つのフォームに対するサブフォームの仕様

* オブジェクトパレットの「連結」タブで「各データアイテムについてサブフォームを繰り返す」オプションが選択されている場合、最大値が無制限になります。

3. サブフォームの関係第 3 節には 3 つの列があり、様々な関係タイプのサブフォームのレイアウトを比較するために使用します。

フォーム subformA subformB subformC

SubformSet1.xdp 最小値 = 0 最大値 = -1* 最小値 = 0 最大値 = -1* 最小値 = 0 最大値 = -1*

SubformSet2.xdp 最小値 = 0 最大値 = 1 最小値 = 0 最大値 = 1 最小値 = 0 最大値 = 1

SubformSet3.xdp 最小値 = 1 最大値 = 1 最小値 = 1 最大値 = 1 最小値 = 1 最大値 = 1

SubformSet4.xdp 最小値 = 2 最大値 = 2 最小値 = 1 最大値 = 1 最小値 = 3 最大値 = 3

列 タイプ コメント

1 すべてのサブフォームを順番に使用 フォームで宣言した順番でサブフォームのインスタンスが作成されます。フォームの順番に従うために、内容の順番が変わる可能性があります。

2 候補からサブフォームを 1 つ選択する サブフォームは互いに排他的で、1 つのサブフォームでのみインスタンスを作成することができます。どのサブフォームのインスタンスが作成されるかは、データに基づき決定されます。

Page 34: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

納税証明書サンプル 9

30

9. 納税証明書サンプル

納税証明書サンプルを使用して、ダイナミック PDF フォームの動作を実際に試すことができます。

このフォームでは、財団法人用コピー、支部用コピーおよび所得税用コピーの 3 部の納税証明書が1ページに印刷されます。

サンプルには以下のファイルが含まれます。

9.1. 納税証明書サンプルを実行するには

1) Designer で Tax Receipt.xdp フォームを開きます。

2) プレビューオプションを指定するには、ファイル/フォームのプロパティを選択します。

3) 「PDF プレビュー」タブをクリックし、次の操作を実行します。

4) プレビューのタイプリストから「印刷フォーム(両面)」を選択します。

• 「データファイル」ボックスで Data フォルダーを参照し、Tax Receipt.xml サンプルデータファイルを選択します。

• 「OK」をクリックします。

5) フォームをプレビューするには、「PDF プレビュー」タブをクリックします。

Outputsフォルダーにある出力サンプルPDFファイルは、データを結合してレンダリングしたフォームです。このファイルを使用して、プレビュー表示したフォームの結果と比較できます。

9.2. 納税証明書フォームについて

このフォームの特長は以下のとおりです。

フォームの階層構造

納税証明書フォームは、間接的なデータ連結処理の利点を活かすことができるデータ構造に基づいています。

ファイル 説明

Tax Receipt.xdp Forms フォルダー内の Designer フォームファイル

Tax Receipt.xml Data フォルダー内の XML データファイル

Signature.tifTax Receipt.tif

Images フォルダー内の画像ファイル

Tax Receipt.pdf Outputs フォルダー内にある、データを結合してレンダリングしたフォーム

Page 35: Designer サンプル - Adobe Inc....アプリケーションを開く スクリプティングを使用してアプリケーションを開 く方法を示します。LaunchApp.xdp

納税証明書サンプル

31

マスターページ

フッターテキストは各ページの下部に表示する必要があるので、マスターページで定義します。

フローコンテンツ

receipt サブフォームのインスタンスは他のインスタンスの 1 つ下位に配置します。そのために、taxReceipt サブフォームの「コンテンツ」オプションを「フローレイアウト」に設定します。「コンテンツ」オプションはオブジェクトパレットの「サブフォーム」タブにあります。同じ「サブフォーム」タブにある「フローの方向」は「上から下へ」に設定します。レイアウトパレットでサブフォームの余白を指定すると、2 つのサブフォーム間に必要な余白を挿入できます。

サブフォームオカレンス

receipt サブフォームにはフィールドやスタティック要素などの納税証明書の情報が含まれています。納税証明書は 1 ページに 3 回印刷する必要があるので、receipt サブフォームの「各データアイテムについてサブフォームを繰り返す」の最大値は 3 に設定されています。最大値はオブジェクトパレットの「連結」タブで指定します。

グローバルフィールド

寄付者情報はデータファイルで 1 回だけ指定します。寄付者のフィールドをグローバルに設定すると、これらの値がすべての納税証明書に印刷されます。

画像フィールド

会計担当者の署名は変わる可能性があるので、署名画像のリンクはデータファイルにあります。画像フィールドを使用して署名の画像を表示します。

各フィールドの最大文字数

各フィールドの最大文字数は、オブジェクトパレットの「フィールド」タブで指定します。この値は、各フィールドのデータ仕様に応じて指定します。

拡張可能フィールドとアンカーの位置

receiptSerialフィールドとcopyLabelフィールドについては、様々な長さのデータ値を収容するため、レイアウトパレットの「拡大して合わせる」オプションが選択されています。これらのフィールドのアンカーの位置は、フィールドを適切な方向に拡張できるように設定されています。

スクリプティング

住所の値は一まとめにして表示する必要があります。JavaScript スクリプトを使用してデータ値を連結します。donorAddress フィールドの値が計算されるので、「データ連結」オプションは「データ連結なし」に設定されます。デフォルトの連結は、オブジェクトパレットの「連結」タブで指定します。

複数行フィールド

donorAddress フィールドについては、オブジェクトパレットの「フィールド」タブにある「複数行」オプションが選択されています。これは、複数行で印刷できるようにするためです。

表示パターン

値によっては、表示パターンを適用すると読みやすくなります。表示パターンを適用するには、オブジェクトパレットの「フィールド」タブにある「パターン」オプションを使用します。例えば、日付の値には長い日付形式が適用されています。