本ページでは、Excel/PDFエクスポートがどのようなルールに基づいて出力を行うのかを理解するために、レポートを構成する機能と概念について説明します。関連する機能の詳細については、エクスポートのページ設定など、各種該当ページを参照してください。
印刷のサイズとは最終的に紙に印刷される場合の1ページ分の出力範囲を指します。この領域は[レポート]タブにある[余白]、[印刷の向き]、[サイズ]などによって決まります。
Forguncyページの何行目、および何列目までが印刷のサイズに収まるのかは、[印刷範囲の点線]トグルボタンをクリックすることで確認できます。次の図は、[余白]が「標準」、[印刷の向き]が「横」、[サイズ]が「A5」の場合において、印刷範囲の点線を表示させたものです。21行目、かつAF列までが1ページの領域として収まることを確認できます。
この1ページ分の印刷範囲に収まるようにページをレイアウトすることで、PDFエクスポートやExcelエクスポートを行った際にそのレイアウトが印刷における1ページとなります。なお、[印刷範囲]を設定することで、ページの一部分を印刷範囲とすることも可能です。
印刷のサイズと範囲に関する基本的な概念は上記のようになりますが、テーブルのデータを表示することによって領域が動的に拡張する要素をレイアウトした場合には、この限りではなくなります。
Excel/PDFエクスポートにおいて、動的に行が追加される要素として次の2つが存在します。
リストビュー
リピーター型セル
これら2つの要素は、ページのレイアウト時には固定的な大きさの領域を設定しますが、そのページをWebブラウザーに表示した際には表示するデータの数に応じてスクロールバーが表示されます。スクロールバーが表示されるような場合、Excel/PDFエクスポートにおいてはすべてのデータを出力するために行が自動的に追加されます。
次の図のようにページをレイアウトした場合で説明します。
この場合、リストビューはデータを12行まで表示できる高さの領域を持っています。そのため、表示されるデータが12行に満たない場合にはリストビュー内に空白の領域が発生します。下の図では、リストビューに7件までしかデータを表示しないようにクエリー条件を設定しているため、5行分の空白領域が存在しています。
このページをPDFファイルへとエクスポートした場合、Forguncy Builder上のレイアウトとエクスポートされたPDFファイルのレイアウトが一致していることを確認できます。
この状態から、[リストビューの設定]ダイアログで[空白領域に空行を追加し、スタイル、および数式を適用する]チェックオプションをチェックします。
Webブラウザー上の表示は変わりませんが、PDFエクスポートの結果は次の図のようになります。
空白領域だった部分に、罫線や背景色といったスタイルが適用されていることを確認できます。
リストビューのクエリー条件を変更し、これまで7件表示されていたデータを17件表示するように変更します。Webブラウザーにページを表示した場合、12行分のリストビュー高さには収まらないことから、スクロールバーが表示されます。
この状態のページをPDFエクスポートすると、次の図のような結果となります。12行分のリストビュー高さに収まらなかった5件分のデータにより5行が動的に追加され、それと共に2ページ目にレイアウトが跨がってしまっていることを確認できます。
このようにリストビュー、もしくはリピーター型セルが存在するページの場合、そこに表示するデータの件数に応じて縦方向に動的に行が追加されます。その結果、Forguncy Builderでレイアウトした1ページ分の印刷範囲とは異なる結果となります。このような動的に行が追加される要素を含むページを、Forguncy Builderにおける1ページ分のレイアウトを繰り返して表示するためには、[レポートの繰り返し設定]機能を使用します。
レポートの繰り返し設定はPDFエクスポートにて動的に行が追加され改ページが発生した場合に、全ページで同様のレイアウトになる領域を設定する機能です。
例えば、レポートの繰り返し設定を利用することでヘッダー領域とフッター領域を選択することができ、改ページによるレイアウトの変化に対応することが可能です。
本機能はPDFエクスポートでのみ有効であり、Excelエクスポートの結果には影響を与えません。
1ページ分の領域となる行全体を選択した状態で、コンテキストメニューから[レポートの繰り返し設定] - [繰り返し領域の設定]を選択します。
ヘッダー領域となる行を選択した状態で、コンテキストメニューから[レポートの繰り返し設定] - [ヘッダー領域の設定]を選択します。ヘッダー領域とはすべてのページの上部に出力する固定的なレイアウトです。
フッター領域となる行を選択した状態で、コンテキストメニューから[レポートの繰り返し設定] - [フッター領域の設定]を選択します。フッター領域とはすべてのページの下部に出力する固定的なレイアウトです。
本設定を行ってもWebブラウザー上の表示に変化はありませんが、PDFエクスポートの結果は次のようになります。
2ページ目にもヘッダー領域、およびフッター領域として指定した部分の内容が出力されていることを確認できます。しかし、1ページ目に出力されたリストビューの高さがForguncy Builderでレイアウトした際のリストビューの高さと同一であるのに対し、2ページ目に出力されたリストビューは、出力された件数分の高さとなっていることが分かります。そのため、2ページ目のレイアウトは1ページ目のレイアウトとは異なる結果となっています。
この状態から、[リストビューの設定]ダイアログで[2ページ目以降も設計時の行数を基にリストビューの領域を確保する]チェックオプションをチェックします。
PDFへのエクスポートの結果は次の図のようになります。2ページ目の出力においても、1ページ目のリストビューの領域と同じ高さの領域が確保され、その部分に空行が出力されていることを確認できます。
この2ページ目のリストビュー領域の高さは、Forguncy Builderでレイアウトしたリストビューの行数と出力するデータの件数に基づいて算出されます。今回の場合、12行分が表示できるリストビューの領域の高さに対して、17件のデータが出力されました。そのため、2ページ目には17件から12件を引いた5件が表示されることになります。2ページ目では12件の高さに対して5件しか出力しないことになるため、不足している高さの行数は7行です。今回、リストビューのテンプレート行の高さは20ピクセルに設定されていたため、「20 × 7 = 140」となり140ピクセルの高さが2ページ目のリストビューの出力領域として追加されました。不足している高さの領域はテンプレート行の高さを基に計算されることに注意してください。リストビューとして定義されている行がテンプレート行を含めて同じ高さとなっていない場合、レイアウトと算出する不足している高さの領域の間にずれが生じることとなり、期待する結果とはなりません。
Forguncyは「Excelエクスポート(ページ)」コマンドと「PDFエクスポート」コマンドの2つを提供しており、どちらも本来画面に表示するために作成する「ページ」をExcelファイル、またはPDFファイルへとエクスポートするという点においては同じです。しかし、同じページをエクスポートした場合でも、多くの場合その出力結果の見た目は異なります。
たとえば、次の図のようなForguncyのページを作成し、ExcelファイルとPDFファイルへエクスポートします。
エクスポートされたExcelファイルは次ような結果となります。上部に配置されていた「出力」ボタンやリストビューもExcelファイルのシートへとエクスポートされていることが確認できます。
しかし、PDFファイルのエクスポート結果は次の図のようになり、Forguncyのページでリピーター型セルを配置していた部分のみがPDFファイルへと出力されていることが確認できます。上部に配置されていた「出力」ボタンやリストビューは出力されません。
これは[印刷範囲]の機能を使用し、リピーター型セルの領域のみを印刷範囲として設定しているためです。Excelエクスポートの場合、この印刷範囲の設定はExcelファイルのページ設定に反映されます。そのため、エクスポートされたExcelファイルの印刷プレビューを表示した場合、次のような結果となります。
PDFエクスポートの出力とほとんど同じレイアウトになっていることを確認できます。ただし、PDFエクスポートの場合とは異なり、リピータ型セルのテンプレートの途中で改ページが行われてしまっていることが確認できます。これはPDFエクスポートの場合にのみ、リピーター型セルの1つのテンプレートの途中では改ページが行われないように自動的な制御が行われるためです。そのため、Excelエクスポートにおいてリピーター型セルを使用する場合には、用紙サイズ、余白、テンプレートのサイズといったレイアウトを調整する必要があります。
ExcelエクスポートとPDFエクスポートの主な違いは次の通りです。
PDFエクスポートでは印刷範囲に指定された部分のみが出力されるが、Excelエクスポートではページ全体が出力され、印刷範囲などのエクスポートの印刷設定はそのままExcelのページ設定として出力される。
リピーター型セルはPDFエクスポートにおいてのみテンプレートの途中で改ページされない制御が行われる。
レポートの繰り返し設定はPDFエクスポートにおいてのみ機能する。