E チケットサンプル

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

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

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

ファイル

説明

E-Ticket.xdp

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

E-Ticket.xml

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

E-Ticket.tif

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

E-Ticket.pdf

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

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 チケット出力について

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

  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 サブフォームは前のサブフォームに続けて配置されます。

  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 を使用してデータ値を連結します。

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

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

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

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

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

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

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

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