PowerTools ActiveReports for .NET 9.0J > ActiveReportsユーザーガイド > サンプルとチュートリアル > サンプル > レポートギャラリー サンプル |
本サンプルでは、セクションレポート/ページレポート/RDLレポートを使用した様々なレイアウトのサンプルを閲覧できます。
フォルダ
Visual Basic.NET
<User Folder>\Samples\Reports Gallery\VB.NET
C#
<User Folder>\Samples\Reports Gallery\C#
実行時の機能
このサンプルを実行すると、Viewerコントロールが配置されたフォームが開き、フォームの左側にレポートのカテゴリ別リストが表示されます。各カテゴリを展開して配下のいずれかのレポートをダブルクリックすると、そのレポートがViewerにロードされます。
プロジェクトの構造
ReportsFormフォーム
サンプルの実行時に表示されるメインフォームです。このフォームにはViewerコントロールが配置されており、左側のTreeViewで選択されたレポートファイルをロードします。
Reportsフォルダ
ReportsフォルダにはPage Report、RDL Report、Section Reportの3つのサブフォルダがあり、対応するレポートタイプの主要な機能を使用したレポートが含まれています。
Page Reportフォルダ
このフォルダには、ページレポートを使用したサンプルレポートが、用途のカテゴリ別のサブフォルダ内に配置されています。
Drill Throughフォルダ
ドリルスルーレポートのレイアウトサンプルが含まれます。
AllCustomersレポート: Tableデータ領域を使用してデータを表示します。Tableの詳細行のCustomerIDフィールドに、CustomerDetailsレポートへのドリルスルーリンクを設定しています
CustomerDetailsレポート: AllCustomersレポートの子レポート(ドリルスルー先のレポート)です。Tableの詳細行のOrderIDフィールドに、OrderDetailsレポートへのドリルスルーリンクを設定しています。※レポートリストには表示されません。
OrderDetailsレポート: CustomerDetailsレポートの子レポート(ドリルスルー先のレポート)です。※レポートリストには表示されません。
Invoiceフォルダ
請求書関連のレイアウトサンプルが含まれます。
BillingInvoiceレポート: コンビニエンスストア等で使用される払込取扱票のレイアウトサンプルです。バーコードには、GS1-128(EAN128FNC1)バーコードを使用しています。
Invoice_Groupedレポート: 請求書のサンプルレイアウトです。請求先別にグループ化してレポートを作成します。
Invoice_Parametersレポート: 請求書のサンプルレイアウトです。Invoice_Groupedレポートにパラメータを追加しており、実行時に請求先をリストから選択してレポートを作成します。
Invoice1レポート: 納品書のサンプルレイアウトです。ページおよびBandedListコントロールに対して、OrderIDフィールドでグループ化しています。また、合計の表示にはSum関数を使用しています。
Invoice2レポート: 納品書のサンプルレイアウトです。ページに対して、EstimateIDフィールドでグループ化しています。また、合計の表示にはSum関数を使用しています。
Otherフォルダ
その他のレイアウトサンプルが含まれます。
BarCodeレポート: このレポートは、ActiveReportsでサポートされているすべてのバーコードシンボルの例を示します。単一のページレイアウトを使用して、バーコードシンボルがTableデータ領域に表示されます。バーコードシンボルの例を読みやすく表示するために、テーブルの背景色を隔行で変更しています。実行時には、すべてのバーコードシンボルがTableデータ領域に収まる単一ページのバーコードレポートが表示されます。
Catalogレポート: 商品カタログのサンプルレイアウトです。このレポートは、4つのページレイアウト(ページタブ)から構成されます。「ページ1」タブおよび「ページ2」タブのレイアウトは、カタログの表紙および見出しページとして使用します。「ページ3」タブのレイアウトは、商品カタログの明細として使用します。Listデータ領域を配置し、内部にTextBoxコントロールおよびTableデータ領域を配置しています。また、商品をカテゴリ別に表示するために、CategoryIDフィールドでグループ化しています。このレイアウトは、データ数に応じて複数ページ作成されます。「ページ4」タブのレイアウトは、注文申し込みシートとして使用します。
CellMergingレポート: 連絡先のサンプルレイアウトです。Matrixデータ領域を使用して、同じ値を持つセルを自動的にマージしてレポートを作成します。県名および市町村名のセルでマージされていることが確認できます。
DeliverySlip_themeレポート: 納品書/納品書控/請求書/受領書をセットにしたサンプルレイアウトです。このレポートは、1つのページレイアウト(ページタブ)および2つのテーマを使用して作成します。各ページの作成順序は、レポートのCollateByプロパティにより設定しています。なお、使用するデータはEstimateIDフィールドでグループ化されています。
EmployeeSalesレポート: 従業員ごとの売上高を表示するサンプルレイアウトです。このレポートでは、ChartコントロールおよびTableデータ領域を使用して、従業員別の売上高をグラフと明細で表示します。
Letterレポート: 受注履歴の確認レターのサンプルレイアウトです。このレポートは、2つのページレイアウト(ページタブ)から構成されます。「ページ1」タブのレイアウトは、レターヘッドおよび受注履歴の明細を表示するメインのページとして使用します。明細データの表示用にTableデータ領域を配置し、OverflowNameプロパティに「ページ2」タブに配置されたOverflowPlaceholderコントロールを設定しています。これにより、1ページ目にデータがおさまらない場合は、「ページ2」タブのレイアウトを使用してレポートの続きを作成します。なお、使用するデータはCustomerIDフィールドでグループ化されています。
MatrixSampleレポート: 商品売上レポートのサンプルレイアウトです。Matrixデータ領域を使用してマトリックス集計レポートを作成します。カテゴリ別/商品別に対して、四半期別/年度別の売上合計を表示します。使用するデータは、CategoryName、ProductNameを行グループに、年、四半期を列グループに設定しています。なお、集計にはSum関数を使用しています。
PurchaseReportレポート: 仕入れおよび販売管理のサンプルレイアウトです。Tableコントロールを使用して、各会社に対する仕入れおよび販売データの明細を表示します。TableコントロールのFixedSizeプロパティを使用してページ全体にデータを表示していますが、ページにおさまらない場合は同じレイアウトを使用して複数のページを作成します。
ReelsMatrixレポート: 売上レポートのサンプルレイアウトです。Matrixデータ領域を使用してマトリックス集計レポートを作成します。国別/都市別/メディア別に対して、四半期別/年度別の売上および小計/合計を表示します。使用するデータは、Country、City、MediaTypeを行グループに、年、四半期を列グループに設定しています。なお、集計にはSum関数を使用しています。
SalesReportレポート: 売上状況を表示するサンプルレイアウトです。このレポートでは、Chartコントロールを使用して販売数および利益を、Tableデータ領域を使用してグラフの詳細データを表示します。また、Tableコントロール内の利益には、DataBar関数を使用してデータを可視化しています。Tableデータ領域のデータは1ページ目におさまらないため、「ページ2」タブのOverflowPlaceHolderコントロールで処理されます。
TackSealレポート: タックシールのサンプルレイアウトです。Listデータ領域およびOverflowPlaceholderコントロールを使用して、ページ内に複数のタックシールを作成します。なお、Listデータ領域のOverflowNameプロパティにはOverflowPlaceHolder1、OverflowPlaceHolder1コントロールのOverflowNameプロパティにはOverflowPlaceHolder2を設定しています。
RDL Reportフォルダ
このフォルダには、RDLレポートを使用したサンプルレポートが、用途のカテゴリ別のサブフォルダ内に配置されています。
Calendarフォルダ
Calendarを使用したレイアウトサンプルが含まれます。
Eventsレポート:Calendarコントロールにイベント情報を表示するサンプルレイアウトです。XMLデータからイベントの詳細情報を取得します。
EventTypesレポート: Calendarコントロールに家族、音楽、文化の各イベント情報を表示するサンプルレイアウトです。XMLデータからイベントの詳細情報を取得します。また、[スクリプト]タブで各イベントタイプのカスタムのイベント背景色も設定されています。
Vacationsレポート: Calendarコントロールに従業員の休暇情報を表示するサンプルレイアウトです。XMLデータからイベントの詳細情報を取得します。
DashBoardフォルダ
ダッシュボード形式のレイアウトアンプルが含まれます。
CallCenterDashBoardレポート: 本レポートは、Bulletコントロール、およびをSparklineコントロールを使用してコールセンターの作業実績および売上データの日々の傾向を示します。また、アイコンを使用して実績データの警告レベルを示します。
MarketDashBoardレポート: 本レポートは、Sparklineコントロールで過去30日間の株価の動向を表示します。Sparklineを使用することで、各ポイントに対応する実際の値を表示せずに動向だけを示すことができます。
SalesDashboardレポート: 本レポートは、Matrixコントロール、および複数種類のChartコントロールを使用して売上情報を様々な観点から分析して表示します。また、2つのデータセットから表示する売上情報を取得しています。デフォルトでは、レポートはビューワ上でゲラモードで表示され、レポートは縦横に拡大し1枚のページで表示されます。
TeamListレポート: 本レポートは、アメフトのチーム名のリストを表示するListコントロールがあり、各チーム名をクリックするとドリルスルーリンクを使用して選択したチームの統計情報を表示するTeamStatisticsDashboard.rdlxレポートに移動できます。
TeamStatisticsDashBoardレポート: 本レポートは、Bulletコントロールでチームのスコア実績が平均より下、平均、平均より上のいずれの範囲にあるかを表示します。また、Sparklineコントロールを使用してチームのスコアの統計情報を表示します。※レポートリストには表示されません。
FactBookフォルダ
世界各国の様々な統計情報から作成したレポートが含まれます。
CountryFactsレポート: 本レポートには、CountryIDによってデータを 国別にグループ化するListデータ領域があります。また、マップ画像が含まれており、マップ画像の 値 プロパティにはXMLデータソースからの MapCode データフィールドを含む式が設定されています。さらに、CountryIDを受け取るための隠し パラメータ も含まれます。このレポートは他のレポートのドリルスルーリンクから呼び出されるか、またはサブレポートとして呼び出されるので、CountryIDはサイレントで渡されます。既定のIDはWorldです。データセットには、レポートパラメータによって指定された国だけを取得するフィルタが設定されています。 [エネルギー生産/消費] の下のカテゴリを示す各テキストボックスの横に アイコン を使用したImageコントロールがあり、消費が生産を超えているエネルギーのカテゴリを旗で示しています。
LifeExpectancyByGdpAndMedianAgeレポート: 本レポートは、Matrixデータ領域で年齢中央値とGDP別の平均寿命を比較します。
Top10CountriesByGdpレポート: 本レポートは、Imageコントロールを含むListデータ領域とRangeBar関数を使用してGDPの上位10か国をアドホックな横棒グラフで表示します。
Othersフォルダ
カテゴリに属さないレポートのサンプルが含まれます。
Seiseki_Mainレポート: Listデータ領域、Tableデータ領域、SubReportコントロールを使用して学習塾などの模試の成績表を表示するサンプルです。レポートにはパラメータが設定されており、合計3回の模試のうち、どの成績表を表示するかを選択できます。また、SubReportコントロールでSeiseki_Subレポートを呼び出し、過去3回の模試の結果の推移を折れ線グラフで可視化します。
Seiseki_Subレポート: 4つのChartコントロールで、過去3回の模試の各教科および合計の推移を折れ線グラフで可視化します。※レポートリストには表示されません。
Reelsフォルダ
Reelsデータベース(Reels.mdb)を使用したレポートが含まれます。
CustomerMailingListレポート: 本レポートは、顧客の郵送名簿をTextBoxとBarcodeコントロールを含むContainerコントロールを使用して表示します。BodyセクションのColumnsプロパティは3に設定されており、郵送ラベルが3列で表示されます。
CustomerOrdersレポート: 本レポートは、Listデータ領域とTableデータ領域を使用して、CustomerID別およびSaleID別にデータをグループ化して注文情報を表示します。TableのSalesAmountテキストボックスのValueプロパティには、各注文の合計を(テーブルグループの小計として)計算するSum関数が設定されています。TableのYearTotalテキストボックスのValueプロパティには、税込売上額の総計を計算するSum関数が設定されています。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。PageHeaderセクションにあるページ番号は、新しい顧客が表示されるたびにリセットされます。このレポートにはサブレポート(CustomerOrdersCoupon.rdlx)も含まれています。
CustomerOrdersCouponレポート: 本レポートはCustomerOrdersレポートのサブレポートとして使用されます。このレポートは、TextBox、Image、Barcodeの各コントロールを含むRectangleを使用して割引クーポンのレイアウトを作成します。また、顧客への割引を設定する CouponAmount パラメータも設定されています。※レポートリストには表示されません。
DistrictReportレポート: 本レポートはChartデータ領域とMatrixデータ領域を使用して、選択した地区の2年間(2004〜2005年)の月ごとの販売品目数と利益を表示します。表示する地区はレポート パラメータ によって決定され、2番目のレポートデータセットである SalesDataの値が使用されます。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。レポートのボディにある StoreName テキストボックスには ドリルスルーリンク ( [アクション] が [レポートに移動]に設定されている)が設定されており、これをクリックすると詳細な売上情報を示す StoreReport.rdlx が開きます。
DistrictSalesレポート: 本レポートは、 BandedListデータ領域でSaleYear、DistrictID、RegionID 別にデータをグループ化して地区別の売上の詳細を表示します。また、 Sum 関数を使用してDistrict、Region、Yearの各レベルの売上額を計算し、総計を表示します。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
Filmographyレポート: 本レポートは、入れ子になったListデータ領域を使用して MovieID別 および MoviePersonID 別にデータをグループ化し、選択された俳優が出演する映画のリストを表示します。リストに表示する俳優を絞り込むために2つのカスケードパラメータが設定されており、俳優名の先頭のアルファベットで対象を絞り込んでから、次に俳優の名前で絞り込みます。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
GenreSalesレポート: 本レポートは、Matrixデータ領域を使用してジャンルごと、年ごと、および四半期ごとの販売数量を表示します。また、縦棒グラフを使用してジャンルごとの販売タイトルの数を表示します。このレポートには複数選択可能なパラメータが設定されており、売上データを表示するジャンルを複数選択できます。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
GenreStatisticsレポート: 本レポートはMedianおよびMode 集計関数 を使用してデータセットの中央値と最頻値を表示します。また、 ReelsConfidential.rdlx-master レポートを使用して標準のページヘッダとページフッタを提供します。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
MonthlySalesReportレポート: 本レポートは、 Tableデータ領域でDistrictID別にデータをグループして表示します。TableのTextboxコントロールの Value プロパティには、地区ごとおよび地域ごとの売上合計、および特定の月の地域内の全地区の売上総額を表示する式が設定されています。また、折れ線グラフで月の売上と利益を表示します。このレポートは、クエリベースのパラメータを使用して、データを表示する月および地域を選択します。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
MovieReport: 本レポートは4つのListデータ領域で構成されています。 MovieList は、 MovieIDによってグループ化されます。 GenreList はジャンル名を表示するリストで、 GenreIDによってグループ化されます。 CrewList はタイトルを表示するリストで、 CrewTitleIDによってグループ化されます。 CastNameList はキャストとクルーを表示するリストで、 MoviePersonIDによってグループ化されます。このレポートにはカスケードパラメータが使用されています。最初のパラメータで映画タイトルの先頭の文字を選択し、2番目のパラメータで表示する映画を選択します。レポートのボディにある CrewName テキストボックスにはドリルスルーリンク( [アクション] が [レポートに移動]に設定されている)が設定されており、これをクリックすると俳優の詳細情報を表示する Filmography.rdlx が開きます。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
ReelsConfidential.rdlx-masterレポート: この マスターレポート は他のレポート用のテンプレートであり、子レポートが使用する Reels データソースへの接続を提供します。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。※レポートリストには表示されません。
RegionPerformanceレポート: 本レポートはTableデータ領域で Regionの値でレポートデータをグループ化し、 SalesAmount の値でレポートデータを並べ替えます。また、 フィルタ を使用して RegionID の値でレポートデータをフィルタリングします。TableのTextboxコントロールの Value プロパティには、各地域の売上額の合計を表示するSum関数が設定されています。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
ReorderListレポート: 本レポートのTableの詳細行の BackgroundColor プロパティには、背景色を1行おきに黄色にする 式 が設定されています。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
SalesByMediaTypeレポート: 本レポートは、Listデータ領域を使用して、埋め込み画像でグループ化されたデータを表示します。このListには、 MediaID別にデータをグループ化するTableデータ領域も配置されています。また、縦棒グラフで各カテゴリのメディアタイプと売上・利益を表示します。このレポートは、 ReelsConfidential.rdlx-master レポートを使用してレポートのページヘッダとページフッタを描画します。
SalesByRegionレポート: このレポートは、Matrixデータ領域と 小計 を使用して各地域の年および四半期別の販売数量と利益を表示します。Matrixの行は Region によってグループ化され、列は SaleDate.Yearによってグループ化されています。また、縦棒グラフを使用して各地域の年間利益を表示します。グラフのデータは RegionとSaleDate.Yearによってグループ化されています。
SalesReceiptレポート: 本レポートは、Tableデータ領域とListデータ領域内で入れ子になった3つのContainerコントロールで構成されています。Listは SaleID によってグループ化されており、領収書の本体となります。 salesTaxLabelテキストボックスとtotalSalesTax テキストボックスでは、Sum関数を使用してリスト中の価格を合計し、総計フィールドの合計に税金を加算します。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
SalesReportレポート: 本レポートは、Tableデータ領域とChartデータ領域を使用して、選択された日付の範囲の売上および利益の合計を表示します。さらに、Tableで データバー 関数を使用して利益をプロットします。ChartおよびTableのデータは、 MonthとYearによってグループ化されています。 Month テキストボックスにはドリルスルーリンクが設定されており、これをクリックすると選択した月の詳細情報を示す MonthlySalesReport.rdlx が表示されます。このレポートには、日付の範囲にnullも設定することが可能です。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
StorePerformanceレポート: 本レポートは、利益が期待値を超えている店舗、または期待値を下回っている店舗をアイコンを使用して識別します。このレポートではIconSet関数を使用してデータベース画像を表示する2つのImageコントロールが含まれています。このレポートは、 ReelsConfidential.rdlx-master レポートを使用してページヘッダとページフッタを描画します。
StoreReportレポート: 本レポートは、Table、List、Chartデータ領域を使用して各従業員の売上を表示します。TableおよびChartのデータは、 EmployeeIDによってグループ化されています。Tableは、階層的にグループ化されており、各店舗の従業員と管理者の関係を表示します。 FirstName テキストボックスの Padding> Left プロパティに、左側に15ピクセル幅のスペースを空ける Level 関数が設定されています。また、本レポートは ドリルダウン レポートであり、テーブル詳細行の Visibility > Hidden プロパティが =Fields!Supervisor.Value <> 0 に設定されており、 Visibility >ToggleItem プロパティは FirstName データフィールドに設定されています。 Visibility > Hidden プロパティに設定された式は、管理者フィールドが0かどうかを返します。そのため、初期状態では管理者の名前だけが表示されます。管理者名の横のトグル画像をクリックすると、従業員に関する詳細を含む行が表示されます。このレポートは、 Region、District、StoreNumberの順のカスケード型のパラメータが設定されています。各パラメータは前のパラメータの値に依存し、選択された値に応じて異なるデータセットから値が取得されます。レポートに表示されるReelsロゴは、Reelsテーマ内に埋め込まれています。
TopPerformersレポート: 本レポートは、2つのTableデータ領域を使用して、映画の売上に基づいて上位および下位の出演者を表示します。各Tableのデータは MoviePersonIDおよびMovieID によってグループ化されています(入れ子になったグループ化)。片方のテーブルにはTopNフィルタが適用されており、もう一方のテーブルにはBottomNフィルタが適用されています。各フィルタによって返される項目の数はレポートパラメータで指定されます。また、このレポートは2つの整数パラメータを使用して、各テーブルに表示する項目の数を変更できます。これらのパラメータは既定値を使用しており、その値がテーブルヘッダのテキストボックスに渡されます。本レポートはドリルダウンレポートであり、各テーブルの2番目のテーブルグループヘッダの Visibility > Hidden プロパティが True に設定され、 ToggleItem プロパティは PerformerName テキストボックスに設定されています。名前の横のトグル画像をクリックすると、出演者に関する詳細を含む行が表示されます。
Section Reportフォルダ
BarCodeレポート
このレポートは、ActiveReportsでサポートされているすべてのバーコード形式を表示します。
Invoice1レポート
本レポートは、顧客ごとの請求書を表示します。
「今回消費税」および「今回ご請求額」のTextboxコントロールの値は[スクリプト]タブで設定し、BeforePrintイベントで計算されます
メモ: 本サンプルでは、PageHeader上にバウンドフィールドを配置していますが、ページに出力される全てのレコードの値が必ず同一であることを前提としています。 ActiveReportsでは、基本的にPageHeaderやPageFooterにバウンドフィールド(データベースに直接連結されたコントロール)を配置することはお勧めしません。PageHeaderは、1ページに1度だけ出力されるセクションです。このため、1レコード毎にデータが変化するようなフィールドを配置すると、予期した結果と異なる値が出力されることになります。同じ理由で、GroupHeaderやGroupFooterセクションにバウンドフィールド(データベースに直接連結されたコントロール)を配置することもお勧めしません。よくある質問の「データベース」ページで「ページヘッダに次レコードのデータが出力されるのを防ぐには」の内容もあわせてご確認ください。 |
Detailセクションにて1行ごとに背景色を切り替えて出力するために、Shapeコントロールを使用しています。詳細については、[スクリプト]タブで、Detail_Formatイベント内のshpDetailBack.BackColorプロパティを確認してください。
Invoice2レポート
このレポートはSeikyu2.mdbデータベースをデータソースとした請求書レイアウトを表示します。
Year、MonthおよびDayのTextboxコントロールの値は[スクリプト]タブで設定しており、ReportStartイベントで計算されます。
CrossSectionLineコントロールおよびCrossSectionBoxコントロールを配置することで、GroupHeader1からGroupFooter1セクションまでまたがる罫線を描画しています。これらのコントロールにより、実行時に、請求書の詳細情報に罫線を描画します。
このサンプルでは、事前に1グループ内に何件の詳細データが存在しているかを取得することで、必要な空白行を計算しています。必要な空白行の数分、FetchDataイベント内でデータの代わりに "" を代入しています。
詳細セクションの Formatイベント内で、最背面に配置したShapeコントロールのBackColorプロパティを設定することにより、一行ごとに背景色を変更しています。詳細については、[スクリプト]タブで、Detail_Formatイベント内のshpDetailBack.BackColorプロパティを確認してください。
LabelReportレポート
郵便物用のカスタマバーコードを使用したタックシールを出力するサンプルレポートです。複数カラムでレイアウトし、DataFieldプロパティによってデータ連結して郵便カスタマバーコードを作成します。
連絡情報を表示する連結フィールド、およびDataFieldプロパティによってデータに連結されたBarcodeコントロールを配置しています。タックシールを3列で出力するために、ColumnCountプロパティを3に設定しています。
PaymentSlipレポート
コンビニエンスストアでの料金収納サービスで使用するGS1-128(旧称UCC/EAN-128)バーコードを使用した請求書を作成します。
一般的に、コンビニエンスストアの料金代理収納で使用されるGS1-128は高い精度(印刷および読み取り)が要求されます。しかしながら、プリンタの解像度や用紙・インクなどの条件によっては、バーコードの読み取り精度が低下する可能性があります。この現象を回避するために、本レポートでは、黒バーのドット補正が可能なEAN128FNC1バーコードを使用しています。
PurchaseOrderレポート
DetailセクションのRepeatToFillプロパティがTrueに設定することにより、レポートの行数を固定にしています。
Scheduleレポート:
社員の週のスケジュールを、ガントチャート形式に表示します。サンプルを実行すると、6日分のスケジュールを表示します。
ガントチャートビューを、LabelコントロールおよびLineコントロールを使用して作成しています。サンプルでは、Detailセクションにコード上で追加したLabelコントロールのサイズをデータの内容に合わせて変更することにより、ガントチャートの横棒としてレポート上に出力しています。ガントチャートの横棒となる、9−20時の各時間枠ごとに上下で12×2=24枚のLabelコントロールを、ReportStartイベント内で動的に追加します。追加した段階ではこれらのVisibleプロパティをFalseに設定し、非表示にしておきます。
横棒の幅を調整するには、Detail_Formatイベント内で、時間幅から算出した値をLabelコントロールのTagプロパティにセットします。Detail_BeforePrintイベント内で、Tagプロパティの値に合わせてLabelコントロールの幅を変更し、横棒の横幅を調整します。
Detailセクション内に複数のレポートを表示するには、Detail_Formatイベント内で日付データを前レコードと比較し、同一の日付であればDetailの出力位置を変更せずにレコードポインタのみを移動する処理を、LayoutActionプロパティの動的な切り替えにより行っています。
UnderlayNextレポート:
このレポートは、データベースから取得したデータをもとに顧客名簿を作成します。