4D v16.3

レポート印刷用のフォーム

ホーム

 
4D v16.3
レポート印刷用のフォーム

レポート印刷用のフォーム  


 

 

4Dではフォームまたはクイックレポートエディター (クイックレポート参照) を使用してレポートを生成できます。

フォームを使用してレポートを作成することにはいくつかの利点があります。フォーム上に画像を配置できる、精密にレポート要素の配置をコントロールできる、メソッドを使用して複雑な計算を行える、そしてブレークレポートの各サブセクションを識別するためにヘッダーを使用できるなどです。フォームレポートはユーザーフォームエディターを使用して各ユーザーがカスタマイズを行うことも可能です (ユーザーフォーム参照)。

以下のようなレポートを作成するためにフォームを使用できます:

  • 列形式でないフォーマットを使用する場合
  • サブフォームを使用する場合
  • 埋め込み画像を使用する場合
  • 極細線などの特別な画像要素を使用する場合

画面に表示されるフォームと異なり、印刷されるレポートではレポートの最後でブレークエリアを使用できます。各ページ毎に下部に表示されるオブジェクトをフッターエリアに置きます。

注: セレクション型リストボックスもまたレコード一覧の表示・印刷に特に適しています。

情報を列に表示したリストは、電話番号、料金表、仕様書、部品リストなど、印刷レポートによく使用されます。
フォームウィザードを使用して一覧レポートを作成するにはフォームタイプとして印刷用リストフォームを選択します。

画面にレコードを表示するリストフォームと同様に、印刷用リストフォームにも一連の情報が列に表示され、列タイトルを表示したり、画像を配置したりできます。レポートの最後に印刷されるブレークエリアには総計などの計算値を配置します。

総計を計算するためにメソッドを使用する方法については後述の例題を参照してください。

一ページに一レコードを印刷するようなレポートもあります。例えばデータベースから請求書やレターなどを印刷するような場合です (差し込み印刷ドキュメントを作成する) 参照。

このようなレポートを作成する場合、フォームウィザードのフォームタイプで印刷用詳細フォームを選択します。

ヘッダー (H) マーカーをページの一番上に配置し、フィールドやその他のレポート要素をその下に配置します。

レポートにサブフォームが含まれる場合、サブフォームエリアのサイズを固定にし、エリアに表示されるフォームのタイプを印刷に設定してください。そうするとサブフォームエリアはそのサイズで印刷され、次のページにまたがることはありません。固定長フレームの印刷についてはリストサブフォームの章の中の"印刷"を参照して下さい。

詳細 (D)、ブレーク (B0)、そしてフッター (F) マーカーは用紙サイズの一番下に配置します。これにより一ページに一レコードしか印刷されなくなります。

請求書の印刷はアプリケーションでよくある最も基本的な機能です。典型的な請求書には宛先名と請求先所在地、配送先所在地、請求金額があり、さらに購入物品のリストが続きます。

請 求アプリケーションではページモードの印刷レポートフォームを作成します。このフォームには2つのテーブルからデータを取得し、印刷します。 [Orders]テーブルからは顧客情報 (請求先所在地、配送先所在地) を、[Line Items]テーブルからは購入物品を取り出します。総請求額は計算で求められ、[Orders]テーブルに格納されます。

請求書用フォー ムは[Orders]テーブルフォームとして作成され、[Line Items]テーブルのリストフォームをサブフォームとして含みます。印刷時にサブフォームは、すべての購入物品を印刷するために拡張されるかもしれませ ん。詳細はリストサブフォームの章内の"印刷"を参照して下さい。

詳細エリアはページいっぱいに取られます。各売上オーダーごとにひとつの請求書が印刷され、購入物品は必要なだけ印刷されます。

多くのデータベースでは、ユーザーが注記や詳細をテキストフィールド、あるいは変数に入力する事ができます。同様に、レポートの中にピクチャーフィールドまたは変数ないに写真やグラフィックスを含める事ができます。

これらの要素は詳細エリアないにて展開可能エリアとして表示する事ができます。全てのデータを表示するように印刷時に展開する事もできます。印刷モードの設定についての詳細な情報に関しては、印刷時可変の章を参照して下さい。

注: この原則は4D Write Proエリアにも適用されます。

郵便物のラベルを作成したい場合、特別な印刷用フォームをデザインできます。グラフィック要素やフォントの設定、変数の使用なども可能です。

注: ラベルエディターを使用すると、素早く簡単にラベルを作成できます。

ラベル印刷用に出力フォームを作成する方法についてはPRINT LABELコマンドを使用するを参照してください。

ブレークやブレークヘッダーを使用したレポートを印刷することができます。ブレークはレコードのソートに基づいて作成されます。

4DデータベースでCDの楽曲リストを管理しているとしましょう。このリストをアーチストごと印刷するとします。アーチストでレコードをソートすると、すべてのレコードはいずれかのアーティストグループに属します。ここでブレークは印刷される各グループの最後のレコードの後に発生します。画面上でレポートをプレビューした結果は以下の通りです:

4Dは情報を魅力的に表示するために使用することのできる機能を提供しています。このフォームをエディターで開くと以下の通りです:

注: ブレークレベルやヘッダーを使用するレポートを構築するためには、まずブレーク処理を起動しなければなりません。ブレーク処理を起動するために使用することのできる方法については後述の"ブレーク処理を起動する"を参照してください。

ブレークヘッダーはレコードグループが印刷される前に一回印刷され、ブレークはレコードグループが印刷された後に一回印刷されます。先の例では並び替えに使用された最初のフィールドの結果としてブレークが発生するため、ブレークが"レベル1ブレーク"、ブレークヘッダーが"レベル1ブレークヘッダー"と呼ばれます。

最大9個のブレークを設定できます。ブレーク処理を起動するためにSubtotalを使用する場合、使用するブレーク数よりも1つ多い数のフィールドでソートしなければなりません。1ブレークを使用する場合、2つのフィールドでソートしなければなりません。3ブレークを使用する場合、4つのフィールドでソートしなければなりません。

レポートフォーム中で、ブレークレベルやブレークヘッダーレベルの追加は、エリアの追加に対応していなければなりません。これらのエリアはマーカーラインを追加することによって行います。マーカーラインの追加方法については出力コントロールラインを使用するを参照してください。

ここではブレークを使用するレポートの作成方法について説明します。完全な例題はレポートの例題を参照してください。

ブレークヘッダーエリアや累計小計値、その他のブレーク処理を印刷するためには、まずレポートフォーム上でブレーク処理を起動しなければなりません。ブレーク処理の起動は以下のいずれかの方法で行います:

  • フォームメソッドまたはオブジェクトメソッドにSubtotal関数を配置する
  • レポート印刷開始前にBREAK LEVELACCUMULATEコマンドを実行する

Subtotal関数を使用する場合、使用するブレークレベル数よりも1多いフィールド数でソートを行わなければなりません。例えば2ブレークレベルを使用する場合、3フィールドでソートします。

このセクションではソートの順番がどのようにレポートに影響するのか、またブレークを追加して小計を作成する方法について説明します。

自動で総計や小計を計算させ、印刷することができます。以下のレポートでは各顧客ごとに小計を、レポートの最後では総計を計算しています。

これらのレコードは顧客および製品でソートされています。各顧客のレコードグループが印刷された後、その顧客の小計が計算され印刷されます。すべての顧客のレコードが印刷されたあと、総計が印刷され印刷されます。

小計の計算と印刷を行うタイミングは、最初のソートフィールドの値が変わったときであり、そこがブレークとなります。顧客ごとの小計はレベル1のブレークと呼ばれます。これは顧客フィールドが最初のソート条件フィールドであり、その値が変わったところでブレークが生成されるからです。総計はレベル0のブレークで計算されます。レベル0のブレークはすべてのレコードが印刷されたあと、レポートの最後に印刷されます。

以下の図はブレーク時の印刷に関するもう一つの例題です。同じレコードを使用していますが、異なるブレークを生成するために異なるソート順を使用しています。今回はレコードを製品そして顧客でソートしています。小計は製品名が変わったときに計算されます。これは先ほどと同じレベル1のブレークですが、異なるフィールドに対して生成されています。


ソートレベルとブレークレベルを追加することで、追加のサマリ計算を提供できます。

下の図は売り上げの記録を示していて、顧客/製品/営業担当でソートされています。サマリ計算では2セットの小計、各顧客ごとの小計と、さらに各顧客内で、製品ごとの小計が印刷されています。最後にこのレポートは会社全体の総計を印刷します。これはそれぞれレベル2ブレーク、レベル1ブレーク、そしてレベル0ブレークを実行する例題です。

小計の計算はブレークを生成するレコードグループでのみ実行されます。例えばこの例では各顧客ごとに販売された各製品ごとに、そして各顧客に販売された製品すべての小計が計算されます。

注: ブレークレベルの追加については出力コントロールラインを使用するを参照してください。

サマリ (概要) 情報だけを印刷するレポートを作成することもできます。このようなレポートでは小計と総計だけがそのタイトルとともに印刷されます。以下の図はサマリ情報のみを印刷するレポートです:

このレポートではレコードが顧客/製品/日付でソートされ、ソート順で作成されたブレークで計算が実行されます。各レコードの詳細エリアは印刷されません。レコードは計算のためにのみ使用されます。この場合でも4Dはレポートの印刷中、計算のためにレコードを先頭から最後までロードすることに留意してください。このような種類のレポートは詳細マーカーをヘッダーマーカーと同じ位置に置き、詳細エリアの高さを0にすることで実現します。

小計、平均、最大、最小値を追加で計算し、フッターエリアに印刷することもできます。このような計算は統計関数を使用して実行します (統計関数参照)。



参照 

クイックレポート
リストボックス
レコードを印刷する
出力コントロールラインを使用する
差し込み印刷ドキュメントを作成する

 
プロパティ 

プロダクト: 4D
テーマ: 一覧フォームとレポート

 
履歴 

 
ARTICLE USAGE

デザインリファレンス ( 4D v16)
デザインリファレンス ( 4D v16.1)
デザインリファレンス ( 4D v16.3)