• 検索結果がありません。

FlexReport for WinForms

N/A
N/A
Protected

Academic year: 2021

シェア "FlexReport for WinForms"

Copied!
213
0
0

読み込み中.... (全文を見る)

全文

(1)

2018.04.09 更新

(2)

目次

FlexReport for WinForms の概要

5

C1Report から FlexReport へのアップグレード

5-7

FlexReport と C1Report

7-8

C1Report から FlexReport への重要な変更点

8-10

主な特長

11

FlexReport の詳細情報

12

コンポーネントとコントロール

12

オブジェクトモデルの概要

12-14

FlexReport のセクション

14-16

FlexReport クイックスタート

17

手順 1:レポート定義の作成

17-27

手順 2:レポートの修正

27-30

手順

 3:C1FlexReport コンポーネントでのレポートのロード

30-31

手順 4:レポートのレンダリング

31-32

設計時サポート

33

C1FlexReport のタスク]メニュー

33

[C1FlexViewer のタスク]メニュー

33-34

FlexReport の操作

35-36

C1FlexReport と C1Document

36

C1Document の重要な変更点

36-38

FlexReport のデータ連結

38

データベースからのデータの取得

38-39

ストアドプロシージャからのデータの取得

39-41

データテーブルオブジェクトをデータソースとして使用

41

カスタムデータソースオブジェクトの使用

41-42

FlexReport のデータソース

42

コードを使用した複数のデータソースへの接続

42-43

複数データソースレポートでのチャートへのデータの連結

43-48

複数データソースレポートでのパラメータへのデータの連結

48-49

計算フィールドの定義

49-50

デスクトップ用

 FlexReport の開発

50

(3)

設計時の

 FlexReport のロード

50-51

設計時の

 FlexReport の作成

51-52

実行時の FlexReport のロード

52-55

パラメータの追加

55-56

データのグループ化

56-58

小計などの集計の追加

58-61

クロス集計レポートの作成

61-67

データのソート

67-68

データのフィルタ処理

68-69

さまざまな形式へのレポートのエクスポート

69-70

VBScript の操作

70-72

VBScript の要素、オブジェクト、変数

72-76

互換性のための関数:Iif および Format

76-77

集計関数

77-79

FlexReport オブジェクトの分割の管理

79

フィールドの変更

79-80

値に応じたフィールドの書式設定

80-82

データがないセクションの非表示

82-83

値に基づいたフィールドの表示/非表示

83-85

ページカウンタのリセット

85-86

サブセクションの追加

86

FlexReportDesigner の操作

87

FlexReportDesigner について

87-89

[ファイル]メニュー

89-90

設計モード

90-91

[ホーム]タブ

91-95

[挿入]タブ

95-96

[調整]タブ

96-97

[ページ設定]タブ

97

プレビューモード

97-99

FlexReportDesigner オプションの設定

99-104

スタイルギャラリー

104-106

複数のサブセクションの追加

107-108

(4)

FlexReport フィールドの追加

108

FlexChart フィールド

108-109

FlexChartフィールドとデータの連結

109-110

FlexChartFieldとFlexChartの違い

110-113

FlexChart フィールドのデータオブジェクトモデル

113

サポートされているチャートタイプ

113-120

グループ化と集計

120-122

FlexChart ナビゲーション

122-123

テキストフィールド

123-124

RTF フィールド

124-125

パラグラフフィールド

125-127

チェックボックスフィールド

127-128

バーコードフィールド

128-129

バーコードシンボル

129-134

バーコードのプロパティ

134-136

計算フィールド

136-138

画像フィールド

138-139

図形フィールド

139

サブレポートフィールド

139-143

レガシーチャートフィールド

143

チャートタイプ

143-149

設計時サポート

149-152

データバインドされたチャートでデータのプロット

152-153

非連結チャートでのデータのプロット

153-155

複数の系列を持つチャート

155-156

グループ化されたレポート内のチャート

156-158

FlexReport カスタムフィールドの追加

158

マップカスタムフィールド

158-159

マップカスタムフィールドのプロパティ

159-162

マップカスタムフィールドの追加

162-165

SuperLabel カスタムフィールド

165-167

パラメータの操作

167-169

データ連結

169-170

(5)

計算フィールド

170-171

サブレポート

171-173

パラメータのカスケード

173-175

複数値パラメータ

175-176

パラメータの暗黙的な受け渡し

176

複数のデータソースの追加

176-178

FlexReport のデータソースの変更

178-179

FlexReportDesigner でデータのソート化

179-182

FlexReport のプレビューと印刷

182-183

FlexReportDesigner でのレポートのインポート

183-184

Microsoft Access レポートのインポート

184-187

Crystal Reports のインポート

187-190

レポートのエクスポートと公開

190

PDF/A へのエクスポート

190-191

FlexReports の見栄えの向上

191

背景

191-193

境界線

193-195

レポートおよびドキュメントビューア(

C1FlexViewer コントロール)

196

FlexViewer の主な特長

196

FlexViewer ツールバー

196-197

レポートのビューの回転

198-199

FlexReport と FlexViewer の連結

199-200

タスク別ヘルプ

201

交互表示の背景の追加

201-202

条件付き書式設定の追加

202-204

カスタム用紙サイズの指定

204-205

動的ページヘッダーの追加

205-206

ガターマージンの作成

206-207

グループ化とソート

207-210

カスケードパラメータ

210-212

(6)

FlexReport for WinForms の概要

の概要

ComponentOne には、FlexReport for WinForms が導入されています。これは、C1Report を更新して高速化した新しいコ ンポーネントです。

FlexReport は、複雑なレポートの作成からプレビュー、エクスポート、印刷まで、完全なレポートソリューションを提供する包括 的なレポートツールです。FlexReport は、優れたオブジェクトモデルを備え、プレビューコントロールやデザイナアプリケーショ ンとして最新のユーザーインタフェースを提供しています。これを使用して、魅力的で機能豊富なレポートを柔軟に生成できま す。FlexReportコントロールを操作するには、最小限必要なサーバー構成はWindows 7 SP1またはWindows Server 2008 R2 SP1用プラットフォーム更新(KB2670838)です。

データを集約した形式で提示し、レポートを設計およびカスタマイズし、FlexReport によって生成されたレポートに基づいて重 要なビジネス意思決定を行ってください。高品質なレンダリング、正確な計算、使いやすさにより、FlexReport は、基礎レベル のレポート設計者だけでなく上級レベルのレポート設計者にとっても必須のコントロールです。

C1Report から

から

FlexReport へのアップグレード

へのアップグレード

C1Report を使用して作成されたレポートは、C1FlexReport と完全に互換性があります。以下に、既存の C1Report レポー ト定義(.xml)を C1FlexReport レポート定義(.flxr)に簡単にアップグレードまたは変換する 2 つの方法を示します。 デザイナでデザイナで C1Report レポート定義をアップグレードするレポート定義をアップグレードする 1. C1FlexReportDesigner.4.exe を実行します。 2. [ファイル][ファイル]→[開く][開く]に移動し、アップグレードする C1Report レポート定義(.xml)を選択します。次のダイアログボックス が表示されます。 3. [[OK]]をクリックします。 4. [ファイル][ファイル]→[保存][保存]に移動します。 5. [レポート定義ファイルの保存][レポート定義ファイルの保存]ダイアログボックスで、[ファイル名][ファイル名]を指定し、[保存][保存]をクリックします。 レポート定義がタイプ .flxr として保存されます。これで、レポート定義が C1Report の .xml から C1FlexReport の .flxr に変換 されました。

Visual Studio で既存ので既存の C1Report Windows アプリケーションプロジェクトをアプリケーションプロジェクトを FlexReport Windows アプリケーアプリケー ションプロジェクトにアップグレードするションプロジェクトにアップグレードする

1. C1Report(.xml)ファイルを含む既存の Windows アプリケーションプロジェクトを開きます。 2. Form から C1Report を削除します。

3. Form から C1Report のプレビューコントロール C1PrintPreview または C1RibbonPreviewControl を削除します。 4. C1FlexReport コンポーネントをツールボックスツールボックスに追加します。

a. タブを右クリックし、[アイテムの選択][アイテムの選択]を選択します。[ツールボックスアイテムの選択][ツールボックスアイテムの選択]ダイアログボックスが表 示されます。

b. [参照]をクリックし、bin\v4.0 フォルダから C1.Win.FlexReport.4.dll を選択します。C1FlexReport コンポー ネントがツールボックスに追加されます。

5. C1FlexViewer コントロールをツールボックスツールボックスに追加します。

a. タブを右クリックし、[アイテムの選択][アイテムの選択]を選択します。[ツールボックスアイテムの選択][ツールボックスアイテムの選択]ダイアログボックスが表 示されます。

(7)

b. [参照]をクリックし、bin\v4.0 フォルダから C1.Win.FlexViewer.4.dll を選択します。C1FlexViewerコントロー ルがツールボックスツールボックスに追加されます。

6. C1FlexReport を Form にドロップします。C1FlexReport のバージョンと同じバージョンの以下の dll が参照に追加さ れます。 C1.C1Pdf.4 C1.Win.4 C1.Win.BarCode.4 C1.Win.C1Document.4 C1.Win.FlexReport.4 これらの参照が同じバージョンでない場合は、それらを手動で追加する必要があります。

7. C1FlexViewer コントロールを Form にドロップします。C1FlexViewer のバージョンと同じバージョンの以下の dll が参 照に追加されます。 C1.C1Zip.4 C1.Win.C1DX.4 C1.Win.C1Ribbon.4 C1.Win.FlexViewer.4 C1.Win.ImportServices.4 これらの参照が同じバージョンでない場合は、それらを手動で追加する必要があります。 8. 以下の dll を参照に追加します。 C1.C1Word.4 C1.C1Excel.4 C1.Win.C1Chart.4 C1.Win.C1Chart3D.4 マップおよびスーパーラベルカスタムフィールドを使用する場合は、以下の dll を参照に追加します。 C1.Win.FlexReport.CustomFields.4 C1.WPF.Maps.4 C1.WPF.4 9. C1Report コンポーネントの名前を C1FlexReport コンポーネントに変更します。コードでは、次のようにしてコンポー ネントの名前を変更できます。

Dim

report

As

New

C1Report()

' 変更後

Dim

report

As

New

C1FlexReport()

C1Report report =

new

C1Report();

//変更後

C1FlexReport report =

new

C1FlexReport();

10. コードビハインドで、名前空間の名前を C1.C1Report から C1.Win.FlexReport に変更します。

11. C1Report とその依存関係(C1.C1Report、C1.Win.C1Report、C1.Win.C1Barcode、C1.Win.C1RibbonPreview)の dll へのすべての参照を削除します。

12. 名前空間 C1.Win.C1Preview を削除します。

13. licenses.licx から、C1Report と参照先ビューア(C1Preview または C1RibbonPreview)のライセンスエントリを削除し ます。 14. C1FlexReport と C1FlexViewer を連結するには、次のようにコードを変更する必要があります。 Visual Basic C# Visual Basic

(8)

Dim

c1r

As

C1.C1Report.C1Report =

New

C1Report()

c1r.Load(filepath, reportname)

C1PrintPreviewControl1.Document = clr

' 変更後

Dim

report

As

New

C1FlexReport()

report.Load(filepath, reportname)

C1FlexViewer1.DocumentSource = report

C1.C1Report.C1Report c1r =

new

C1Report();

c1r.Load(filepath, reportname);

c1PrintPreviewControl1.Document=clr;

//変更後

C1FlexReport report =

new

C1FlexReport();

report.Load(filepath, reportname);

c1FlexViewer1.DocumentSource = report;

FlexReport は、実行時に C1FlexViewer コントロールを使用してのみプレビューできることに注意してください。 C1FlexViewer コントロールは、C1PrintPreviewControl または C1RibbonPreviewControl と互換性がありません。

C#

FlexReport と

C1Report

FlexReport は、C1Report を新しく機能強化した製品です。主に次の相違点があります。

レポートフィールドタイプの階層レポートフィールドタイプの階層

FlexReport の Field オブジェクトの構造は階層的であり、基本クラス FieldBase と他のさまざまなクラスタイプを使用して、さまざまなフィールドを表しま す。テキスト、画像、形状、サブレポートなどの各種データを表すために、さまざまなタイプのレポートフィールドがあります。FlexReport の Field オブ ジェクト階層の利点として、フィールドの操作がたいへん容易かつ柔軟になることがあります。

一方、C1Report のフィールドオブジェクトは複雑で、C1.C1Report.Field.Text プロパティを定義し、Calculated を True に設定する必要があります。 この場合は、各フィールドがレコードごとに個別に評価される式として解釈されるため、C1Report のフィールドはデータのレンダリングプロセスが低速 になります。

これらの事情にもかかわらず、FlexReport のフィールドタイプは C1Report のフィールドタイプと完全に互換性があり、FlexReport で C1Report の定義 をロードおよびレンダリングすることができます。 複数のデータソース複数のデータソース FlexReport 定義は、それぞれが一意の名前で識別される複数のデータソースを持つことができます。レポートに複数のデータソースが含まれる場合 は、データソースの 1 つがレポートのメインデータソースになります。他のデータソースから取得した値は、レポートパラメータを追加したり、チャート フィールドを作成するために使用できます。詳細については、「FlexReport のデータソース」を参照してください。 データソートの強化データソートの強化 FlexReport は、データソースソート機能が強化されています。DataSource.SortDefinitions プロパティを使用して、データに対していくつかのソート式 を定義し、ソートの条件と方向を指定できます。 さらに、データのソートとグループ化は独立しています。つまり、レコードのセットにグループ化を適用し、同時にソートを使用してレコードの順序を制御 できます。単純な例として、データを都市でソートし、同時に国別にグループ化できます。これにより、Crystal Report との互換性が向上します。詳細に ついては、「データのソート」を参照してください。 データフィルタの強化データフィルタの強化

FlexReport は、データフィルタ機能が強化されており、これを通常の VBScript(C1Report や FlexReport の他のすべての式も同様)や DataView(デー タをフィルタ処理するための条件を指定するいくつかの式)の中で指定できます。FlexReport でデータをフィルタ処理するための構文タイプを指定する には、FilterExpressionSyntax 列挙を DataView(デフォルト)または VBScript に設定します。

一方、C1Report のフィルタ処理は、C1Report.Filter プロパティによって指定され、これには DataView.Filter プロパティの制限された構文が使用さ れます。これらの事情にもかかわらず、FlexReport のフィルタ処理は、C1Report のフィルタ処理と完全に互換性があります。詳細については、「データ のフィルタ処理」を参照してください。

(9)

データソースの計算フィールドデータソースの計算フィールド FlexReport では、データソースが計算フィールドをサポートしています。つまり、データソースで計算フィールドを定義して、計算されたデータをフェッチ できます。計算フィールドの式は、DataSource.CalculatedFields コレクションで VBScript 式を使用して指定します。これらの式で、他のデータソース フィールド、レポートパラメータなどを使用できます。詳細については、「計算フィールドの定義」を参照してください。 レポートパラメータレポートパラメータ レポート内のレポートパラメータは、データのデフォルト値を変更して、レポートのレンダリング時にこれらの値を更新するために使用されます。 FlexReport では、C1FlexReport.Parameters コレクションでレポートパラメータを定義し、さらにいくつかのプロパティを使用します。Parameters コレク ションの各要素は ReportParameter クラスのインスタンスです。詳細については、「パラメータの追加」を参照してください。

C1Report では、DataSource.RecordSource または DataSource のいずれかでパラメータを指定できます。次のように、接続文字列で PARAMETERS "キーワード" を使用します。

C1Report.DataSource.RecordSource = “PARAMETERS param1 int 0; select * from Customers where id < param1”. C1Report レポート定義が FlexReport にロードされると、DataSource.RecordSource および DataSource.Filter を使用して指定されたパラメータが

C1FlexReport.Parameters コレクションに正しくインポートされます。 複数のサブセクション複数のサブセクション C1FlexReport では、各セクションに少なくとも 1 つのサブセクションが含まれます。セクションと同様に、サブセクションにもいくつかのレポートフィールド が含まれます。サブセクションを追加する利点は、親セクションにあるデータを補完できることです。サブセクションには、Section.SubSections コレク ションプロパティを使用してアクセスできます。詳細については、「複数のサブセクションの追加」を参照してください。 ビジュアルプロパティビジュアルプロパティ 境界線境界線 FlexReport では、VisualReportObject.Border プロパティを使用して、フィールド、サブセクション、およびセクションに境界線を指定できます。 また、境界線の各辺に独自のスタイルを設定し、各角にはさまざまな半径の丸みを設定できます。詳細については、「境界線」を参照してくださ い。 C1Report では、境界線はフィールドに対してのみ定義できます。 背景背景 FlexReport では、フィールド、サブセクション、およびセクションに背景を指定できます。背景色は、VisualReportObject.Background プロパ ティを使用して、単色またはグラデーションを設定できます。詳細については、「背景背景」を参照してください。 C1Report では、フィールドやセクションの背景色を設定するために BackColor プロパティが使用されます。

C1Report から

から

FlexReport への重要な変更点

への重要な変更点

FlexReport のコードはゼロから作成されています。したがって、C1Report から FlexReport への API の移行には、次のように重要な変更点が 含まれています。

C1Report では、DataSource.RecordSource 内でしかパラメータを直接指定できません(SQL 文の直前のキーワード PARAMETERS の 後)。 FlexReport では、レポートレベルの専用コレクション C1FlexReport.Parameters が別途用意されています。このコレクションで、レポー トパラメータを指定できます。.xml ファイルから C1Report レポート定義をインポートすると、PARAMETERS キーワードを使用して従来の 方法で指定されたパラメータは、C1FlexReport.Parameters コレクションに自動的に追加されます。 FlexReport では、データソースが開かれた後に OnOpen スクリプトが実行されます。したがって、そのスクリプトでメインデータソースに 行われた変更は、レポートに影響しません。レポートを生成する前にデータソースの一部を変更するには、GlobalScripts を使用しま す。GlobalScripts には、関数定義、プロシージャ定義、およびこれらの定義内にないコードを含めることができます。これらの定義とコー ドは、レポートのレンダリングが開始されてデータソースが開かれる前に、すべて実行されるようになりました。

C1Report では、Field から派生されたカスタムフィールドは、GetRenderContent() メソッドをオーバーライドします。C1FlexReport で は、このメソッドのシグネチャが次のように変更されました。

public virtual void GetDesignerRenderContent( ref string text,

ref Image image,

ref bool disposeImage);

このオーバーライドメソッドの disposeImage を true に設定すると、画像の使用後に、C1FlexReport がその画像に対して Dispose() を 呼び出します。

(10)

OutlineParent プロパティを使用します。サブレポートによって生成されたアウトラインをオフにするに

は、SubreportField.OutlinesVisible プロパティを使用します。

C1Report には、テキストを生成/レイアウトするためのメソッドが 2 つあり(デフォルトおよび「gdi+」)、それらは少し異なっています(

C1Report.UseGdiPlusTextRendering を true に設定した場合は非デフォルト)。これらのメソッドは、多少異なるテキストレイアウトを

行う場合があります(改行が異なる場所に配置されるなど)。FlexReport は常に、UseGdiPlusTextRendering が設定された C1Report と 同様にテキストを生成/レイアウトします。ただし、それでも、UseGdiPlusTextRendering が設定された C1Report と FlexReport の間では 改行に違いが発生する場合があります。

AddOutlineEntry イベントは削除されています。フィールド/セクション/サブセクションによって生成されるアウトラインエントリのテキスト

を変更するには、OutlineLabel プロパティを使用します。

C1FlexReport.ReportError イベントのために特殊な新しいイベントタイプ(ReportErrorEventArgs イベント引数を受け取る ReportErrorEventHandler)が追加されました。ReportEventArgs タイプが変更されました。イベント引数から Exception と Handled

が削除されました。

レポートにマップカスタムフィールドが含まれる場合は、レポートを同期して生成する必要があります(RenderAsync() ではなく Render() を呼び出す)。そうしないと、C1FlexViewer コントロールにマップフィールドが表示されませ

ん。C1FlexViewer.UseAsyncRendering プロパティを False に設定する必要があります。

C1Report では、エラーが発生した場合、EndReport イベントが呼び出されません。FlexReport では、レンダリング中に致命的エラーが 発生した場合でも、EndReport イベントが呼び出されます。 次の C1Report メソッド/プロパティは、C1FlexReport から削除されました。 C1Report.Document.Generate() C1Report.Document.Export() C1Report.Document.CreationDpi C1Report.DocumentInternal C1Report.Document.DoEvents C1Report.Document.HasEditableTags C1Report.CreationDevice StartReport()、StartSection()、EndSection()、RenderField() C1Report.DataSource.DataObject:C1FlexReport では、DataSource.Recordset プロパティから同じプロパティにアクセスでき ます。 C1Report.EmfType:C1FlexReport では、代わりに EMF+ を使用します。 C1Report.GetReportInfo():C1FlexReport では、代わりに C1FlexReport.ReportInfo を使用します。 C1Report.PageRenderingMode:C1FlexReport では、C1FlexReport.GetPageImage を使用してページのメタファイルを取得し ます。

C1FlexReport では、コードビハインドで C1Report Render<X> メソッドにアクセスできません。これらのメソッドは内部的に使用されま す。

次のコードでは、C1Report Render<X> オブジェクトを使用できません。 c1Report1.Document.Body.Children.Add(RenderGraphic obj) このメソッドは、FlexReport ではサポートされていません。

C1FlexReport.Document は System.Drawing.Printing.PrintDocument に変換できません。PrintDocument の C1Report.Document プロパティは存在しないため、FlexReport で PrintDocument を使用してはなりません。

FlexReport では、IC1FlexReportRecordset に ApplyFilter() メソッドと ApplySort() メソッドがありません。代わりに、FlexReport の DataSource にあるフィルタ定義とソート定義を使用してください。IC1FlexReportRecordset を DataSource.Recordset に割り当てても、 DataSource でフィルタ/ソートを定義できます。

FlexReport では、C1Report の FieldBase オブジェクトを使用できなくなりました。

C1FlexReport では、フィールドは「レガシー」タイプです。特殊なタイプは、C1FlexReport の FieldBase から派生されるようになりました。 次のフィールドオブジェクトは、コードビハインドで直接作成する必要があります。

TextField text = new TextField();

BarCodeField barcode = new BarCodeField(); SubreportField subreport = new SubreportField(); ChartField chart = new ChartField();

RTFField rtf=new RTFField();

CheckBoxField checkbox = new CheckBoxField(); CalculatedField calField=new CalculatedField();

(11)

ImageField img = new ImageField(); ShapeField shape = new ShapeField();

対応するプロパティは、C1Report FieldBase オブジェクトの設定に使用されるプロパティと同じプロパティを使用します。 C1FlexReport では、C1Report の CanGrow プロパティと CanShrink プロパティの名前が変更されました。代わり

に、C1FlexReport.AutoHeight、C1FlexReport.AutoWidth、および C1FlexReport.AutoSizeBehavior を使用します。

CanGrow=True および CanShrink=True は、C1FlexReport.AutoSizeBehavior.GrowAndShrink として使用できます。 FlexReport では、AddScriptObject イベントの代わりに、GetScriptObject イベントがあります。したがって、次のコードは private void c1flxr_StartReport(object sender, System.EventArgs e)

{

c1flxr.AddScriptObject("LookUp", new LookUpObject()); }

次のように変更します。

c1flxr.GetScriptObject += c1flxr_GetScriptObject; ...

void c1flxr_GetScriptObject(object sender, C1.Win.FlexReport.ReportGetScriptObjectEventArgs e) {

if (e.Name.ToLower() == "lookup") e.Object = new LookUpObject(); }

レポートテンプレートが変更されない場合、C1FlexReport は、レンダリングされたコンテンツをキャッシュし、レポートを再生成しません。 レポートを必ず再生成するには、C1FlexReport.SetDirty() メソッドを呼び出します。

(12)

主な特長

主な特長

FlexReport for WinForms の主な機能は次のとおりです。 軽量、高速軽量、高速

FlexReport は、特に小さなレポートで軽量かつ高速です。FlexReport は C1Report と比べて 2 倍高速にレンダリング されます。また、PDF、HTML などの主要なエクスポートは C1Report より大幅に高速化されています。 高品質なレンダリング高品質なレンダリング FlexReport は、DirectWrite/Direct2D を使用することで、プリンタや画面などの測定コンテキストに依存しない、高パ フォーマンスで高品質なレポートコンテンツを描画および生成できます。 1 つのビューアですべてのドキュメントタイプを表示つのビューアですべてのドキュメントタイプを表示 FlexViewer は、FlexReport の 2015 v3 で導入された新しいコント ロールです。このコントロールを使用して、C1Report、C1FlexReport、SSRS、C1Document などの複数のドキュメントタ イプを表示することができます。パラメータの使用/リセット、レポートレンダリングをリフレッシュおよびキャンセルするオ プション、レポート内のさまざまな場所にジャンプするためのブックマークなどの機能が提供されています。 より正確なより正確な Crystal Report の移行の移行

FlexReport は、Crystal Reports との互換性を向上させる機能を備えています。以下の機能に関して適切な移行がサ ポートされています。 サブセクション 複雑な式 指定された順序でのグループ化 強化された境界線スタイル 詳細については、「Crystal Reports のインポート」を参照してください。 モダンモダン UI レポート設計アプリケーション(FlexReportDesigner)とプレビューツール(FlexViewer)はリボンベースの UI インタ フェースを備えており、デザイナやビューアのオプションがアクセスしやすく配置されて、直感的でリッチなユーザー使 用環境が提供されています。 リッチなユーザー使用環境を備えた新しいデザイナアプリケーションリッチなユーザー使用環境を備えた新しいデザイナアプリケーション FlexReportDesigner アプリケーションには、レポート設計を従来より格段に容易にする機能が追加されています。次の 新機能があります。 コントロールからの距離を表示および配置するスナップライン。 折りたたみ/展開が可能なセクションとサブセクション。 オプションでセクションとサブセクションのヘッダーストリップを表示するためのキャプション表示設定。 設計時にチャートフィールドのプロパティ、データソース、視覚効果を設定するためのチャートエディタ。 データソース、パラメータ、ソート式、計算フィールドを追加、編集、削除するためのデータタブ。 コンテキストメニューの[式の編集]を使用して式を編集する機能。 デザイナで[標準の配置]ボタンを使用して、数値を左詰め、その他の値を右詰めに揃える機能。 詳細については、「FlexReportDesigner について」を参照してください。 新しいさまざまなチャート新しいさまざまなチャート FlexReport では 70 種類以上のチャートタイプが提供されており、そこから自由に選択できます。FlexReportDesigner アプリケーションの設計時エディタを使用して、チャートへのデータの連結、プロパティの設定、視覚効果の追加、その 他関連タスクを容易に実行できます。 SQLiteデータベースへのサポートの追加 他のデータベースと同様に、SQLiteへの接続をFlexReportDesignerにて指定してデータを取得することが可能です。 そのために、 <br />SQLiteのADO.NETプロバイダがシステムにインストールされている必要があります。 詳細につ いては、「https://system.data.sqlite.org」をご参考ください。

(13)

FlexReport の詳細情報

の詳細情報

FlexReport の使用を開始する前に、FlexReport に付属しているコンポーネントとコントロール、FlexReport のオブジェクトモデ ル、FlexReport で使用できるセクションまたはテーブル領域について理解しておく必要があります。以下のセクションでは、こ れらに関する詳細な情報を提供します。

コンポーネントとコントロール

コンポーネントとコントロール

FlexReport for WinForms は、以下のアセンブリで構成されています。 C1.Win.FlexReport dll 以下のコンポーネントを通して、すべてのレポートレンダリング機能とドキュメント生成機能を提供します。 C1FlexReport: C1FlexReport コンポーネントは、水平区切りデータベースレポートを生成するレポート生成コンポーネントです。レ ポートを直接プリンタまたはプレビューコントロールにレンダリングすることも、さまざまな移植可能な形式(XLS、PDF、 HTML、テキスト、画像など)にエクスポートすることもできます。FlexReport コンポーネントは、レポート定義を作成、カ スタマイズ、ロード、および保存するための機能豊富なオブジェクトモデルも公開しています。 C1.Win.FlexViewer dll 以下のコントロールまたはコンポーネントを通して、すべての表示機能を提供します。 C1FlexViewer: C1FlexViewerコントロールは、複数ドキュメントプレビューコントロールです。リボンベースの UI を備えており、すべて のプレビュー関連オプション(ビューアペインおよびステータスバー)に簡単にアクセスできます。 C1FlexViewerPane: C1FlexViewerPane コントロールは、プレビュー中のドキュメントのページを表示し、パン、ズームなどのプレビュー操 作を処理できます。フォームデザイナでは、コンテキストメニュー項目を使用して、現在のフォーム内に標準のツール バーとステータスバーを作成できます。 C1FlexViewerDialog: C1FlexViewerDialog は、ネストされた C1FlexViewer コントロールを使用して表示されるフォームです。 含まれるアプリケーション含まれるアプリケーション レポート作成用のコンポーネントとコントロールに加えて、FlexReport には以下のスタンドアロンアプリケーションも含まれま す。 C1FlexReportDesigner exe C1FlexReport レポート定義ファイルを作成および編集するための組み込みアプリケーションです。このデザイナを使用 して、C1FlexReport コンポーネントで読み込めるファイル(XML)を作成、編集、ロード、および保存できます。

オブジェクトモデルの概要

オブジェクトモデルの概要

C1FlexReport は優れたオブジェクトモデルを備え、その大部分は Microsoft Access モデルに基づいています。これらのオブ ジェクト、コレクション、関連するプロパティやメソッドなどにより、FlexReport を柔軟かつ容易に生成することが可能です。次の 表に、オブジェクトおよびそのプロパティとメソッドを一覧します。 C1FlexReport オブジェクトオブジェクト ReportName、Load、GetReportList、Save、Clear、Render、Parameters、Document、 DoEvents、Cancel、Page、MaxPages、Font、OnOpen、OnClose、OnNoData、OnPage、OnError、Evaluate、Execute Layout オブジェクトオブジェクト Width、MarginLeft、MarginTop、MarginRight、MarginBottom、PaperSize、Orientation、

(14)

Columns、ColumnLayout、PageHeader、PageFooter DataSource オブジェクトオブジェクト CalculatedFields、ConnectionString、Filter、RecordSource、SortDefinitions DataSourceCollection Report、Add、RemoveAt SortDefinition オブジェクトオブジェクト Direction、Expression SortDefinitionCollection Owner、Report CalculatedField オブジェクトオブジェクト DataSource、Expression、Type CalculatedFieldCollection Owner、Report グループグループ GroupBy、KeepTogether、SectionHeader、SectionFooter、Sort、SortExpression GroupCollection Add、Clear、RemoveAt、Report ReportParameter オブジェクトオブジェクト AllowedValuesDefinition、DisplayText、ParentReport、SetName ReportParameterCollection InsertItem、RemoveItem、SetItem、Report AllowedValuesDefinition オブジェクトオブジェクト AssignFrom、Binding、Values Section オブジェクトオブジェクト Calculated、Fields、Height、KeepTogether、SplitBehavior、SubSections SectionCollection Detail、Footer、Header、PageFooter、PageHeader SubSection オブジェクトオブジェクト Calculated、Fields、Height、ParentReport、ParentSection、SplitBehavior、Visible SubSectionCollection Add、Remove、RemoveAt、Report FieldBase オブジェクトオブジェクト Anchor、Height、KeepTogether、ForcePageBreak、MarginBottom、MarginLeft、 MarginRight、MarginTop、Section、SplitHorzBehavior、SplitVertBehavior FieldCollection Add、Remove、RemoveAt

(15)

BarCodeField オブジェクトオブジェクト BarCode、BarCodeOptions、Font、Text CheckBoxField オブジェクトオブジェクト CheckAlign、CheckMark、Text、ThreeState、Value DataField オブジェクトオブジェクト Calculated、Name、Type、Value ImageField オブジェクトオブジェクト AssignFrom、PictureAlign、PictureScale RtfField オブジェクトオブジェクト AssignFrom、DetectUrls、Text ShapeField オブジェクトオブジェクト Line、Shape、ShapeBackColor、ShapeBackground、ShapeType SubreportField オブジェクトオブジェクト ParameterValues、Subreport、SubreportFilter TextField オブジェクトオブジェクト Format、Text ExportFilter オブジェクトオブジェクト ExportFilter GraphicsFilter オブジェクトオブジェクト GraphicsFilter HtmlFilter オブジェクトオブジェクト ExportProvider、Paged PdfFilter オブジェクトオブジェクト EmbedFonts、ExportProvider、UseOutlines、PdfACompatible、PdfSecurityOptions RtfFilter オブジェクトオブジェクト ExportProvider、OpenXml、Paged XlsFilter オブジェクトオブジェクト ExportProvider、OpenXml、PictureLayer、SheetName、Tolerance VisualReportObject Background、Border、BordersSplitHorzMode、BordersSplitVertMode、OutlineLabel BehaviorOptions AssignFrom、Reset、IgnoreInvisibleFieldsInGrowShrinkSections

FlexReport のセクション

のセクション

(16)

すべてのレポートは、次の 5 つの基本セクションで構成されます。 セクションセクション 説明説明 詳細 詳細セクションには、ソースレコードセット内の各レコードごとに一度ずつレンダリングされるフィール ドが含まれます。 ヘッダー レポートのヘッダーセクションは、レポートの最初にレンダリングされます。 フッター レポートのフッターセクションは、レポートの最後にレンダリングされます。 ページヘッダー ページヘッダーセクションは、各ページの上部にレンダリングされます(オプションで、レポートヘッ ダーを含むページを除外することもできます)。 ページフッター ページフッターセクションは、各ページの下部にレンダリングされます。 さらに、グループごとに、グループヘッダーグループヘッダーとグループフッターグループフッターという 2 つの追加セクションがあります。たとえば、3 つのグルー プレベルを持つレポートには 11 のセクションがあることになります。 サブセクションサブセクションという追加セクションをレポートの任意のセクションに追加することもできます。 これらのセクションを非表示にすることはできますが、グループを追加または削除しない限り、セクションを追加または削 除することはできません。 次の図に、一般的なレポートで各セクションがどのようにレンダリングされるかを示します。図では、詳細セクションに置かれた サブセクションがレポートでどのようにレンダリングされるかも示しています。 レポートヘッダーレポートヘッダー 最初にレンダリングされるセクションは、レポートヘッダーです。このセクションには、通常、レポートを識別する情報が含まれま す。 ページヘッダーページヘッダー レポートヘッダーの次に、ページヘッダーがレンダリングされます。レポート内にグループがない場合、このセクションには、通 常、詳細セクション内のフィールドについて説明するラベルが含まれます。 グループヘッダーとグループフッターグループヘッダーとグループフッター

(17)

次に、グループヘッダー、詳細、グループフッターの各セクションがレンダリングされます。これらが、実際のレポートデータを含 むセクションです。グループヘッダーとグループフッターには、多くの場合、グループの合計、パーセント値、最大値、最小値な どの集計関数が含まれます。グループヘッダーとグループフッターは、GroupBy プロパティによって指定された式の値が、あ るレコードから次のレコードへ変わるたびに挿入されます。 詳細詳細 詳細セクションには、各レコードのデータが含まれます。Visible プロパティを False に設定してこのセクションを非表示にし、グ ループヘッダーとグループフッターだけを表示することもできます。これは、サマリーレポートの作成に便利な方法です。 ページフッターページフッター 各ページの下部には、ページフッターセクションがレンダリングされます。このセクションには、通常、ページ番号、レポートの総 ページ数、レポートの印刷日などの情報が含まれます。 レポートフッターレポートフッター 最後に、レポートフッターセクションが最後のページフッターの前に出力されます。このセクションは、多くの場合、レポート全体 に関するサマリー情報を表示するために使用されます。 サブセクションサブセクション サブセクションは、レポートの任意のセクションに追加できます。デフォルトでは、現在選択されているセクションの下部に追加 されます。このセクションには、親セクションにあるデータを補完する付加的なデータが含まれます。セクションの高さは、サブ セクションの高さの合計によって決まります。 カスタムセクションカスタムセクション

セクションを表示するかどうかは、Visible プロパティを True または False に設定することで決定できます。グループヘッダー は、Repeat プロパティを True に設定することで、(ページがグループの最初のページかどうかにかかわらず)各ページの上 部に繰り返し表示できます。ページヘッダーとページフッターは、Layout オブジェクトの PageHeader プロパティと PageFooter プロパティを設定することで、レポートヘッダーおよびレポートフッターセクションを含むページから削除できます。

(18)

FlexReport クイックスタート

クイックスタート

C1FlexReport は、デスクトップ上のさまざまな状況で使用できますが、どの場合でも主な手順は同じです。 1. レポート定義を作成するレポート定義を作成する

レポート定義は、FlexReportDesigner アプリケーションを使用して直接作成するか、Microsoft Access のレポートデ ザイナや Crystal Report を使用して作成した後で、FlexReportDesigner にインポートできます。コードを使用して作 成することもできます。この場合は、オブジェクトモデルを使用してグループおよびフィールドを追加するか、カスタム XML ファイルを記述します。 2. C1FlexReport コンポーネントにレポートをロードするコンポーネントにレポートをロードする レポートをロードするには、設計時に[レポートのロード][レポートのロード]コンテキストメニューを使用するか、プログラムで C1FlexReport.Load メソッドを使用します。設計時にレポートをロードした場合、レポートはコントロールに保持(保存) されるため、レポート定義ファイルを配布する必要はありません。 3. レポートをレンダリングするレポートをレンダリングする レポートは、C1FlexViewer.DocumentSource プロパティを使用して FlexViewer コントロールにレンダリングできま す。プレビューコントロールによってレポートが画面に表示され、ユーザーは、全画面表示やパンなどの機能を使用し てレポートをプレビューできます。レポートのレンダリングは、デスクトップアプリケーションでのみサポートされます。 以下の手順は、レポート定義を作成し、レポートを C1FlexReport コンポーネントにロードし、レポートをレンダリングする方法を 示します。

手順

手順

1:レポート定義の作成

:レポート定義の作成

次のトピックでは、FlexReportDesigner アプリケーションとコードコードを使用してレポート定義を作成する方法について説明します。レポート定義の作成は、レポートのレンダリン グとは異なることに注意してください。レポートのレンダリングは、既存のレポート定義をロードし、C1FlexReport.Render メソッドを呼び出すだけで行うことができます。レ

ポート定義を作成する最も簡単な方法は、C1FlexReportDesigner を使用することです。これは、Microsoft Access のレポートデザイナや Crystal Report に似たスタンドア

ロンアプリケーションです。 FlexReportDesigner を使用したレポート定義の作成を使用したレポート定義の作成 C1FlexReport ウィザードウィザードは、新しいレポートの作成手順を最初から最後までガイドします。次の手順に従います。 1. まず、.NET プロジェクトを作成し、C1FlexReport コンポーネントをツールボックスに追加します。 2. ツールボックスで、C1FlexReport アイコンをダブルクリックして、このコンポーネントをプロジェクトに追加します。コンポーネントは、コンポーネントトレイ内でフォーム の下に表示されます。 3. C1FlexReport コンポーネントのスマートタグをクリックし、そのタスクタスクメニューから[レポートの編集][レポートの編集]を選択します。 C1FlexReportDesigner が開き、C1FlexReport ウィザードウィザードによる 5 つの簡単な手順のガイドが開始されます。 C1FlexReport ウィザードウィザードで、次の 5 つの手順を実行してレポートを作成します。 1. 新しいレポートのデータソースを選択します。新しいレポートのデータソースを選択します。 このページを使用して、レポートデータの取得に使用される DataSource.ConnectionString と DataSource.RecordSource を選択します。 DataSource.ConnectionString は、次の 3 つの方法で指定できます。 文字列をエディタに直接入力します。 ドロップダウンリストを使用して、最近使用した接続文字列を選択します(デザイナには、最近使用された接続文字列が 8 個まで保持されます)。 省略符省略符((...))ボタンをクリックして、標準の接続文字列ビルダを起動します。 DataSource.RecordSource の文字列は、次の 2 つの方法で指定できます。 [テーブル][テーブル]オプションをクリックし、リストからテーブルを選択します。 [[SQL]]オプションをクリックし、エディタに SQL 文を入力(または貼り付け)します。 手順手順 1 の実行の実行

(19)

次の手順を実行します。

1. 省略符省略符ボタンをクリックして、標準の接続文字列ビルダを起動します。[データリンクプロパティ][データリンクプロパティ]ダイアログボックスが開きます。 2. [プロバイダ][プロバイダ]タブを選択し、リストからデータプロバイダを選択します。この例では、Microsoft Jet 4.0 OLE DB Provider を選択します。

3. [次へ][次へ]ボタンをクリックするか、[接続][接続]タブを選択します。ここで、データソースを選択する必要があります。

4. 省略符省略符ボタンをクリックしてデータベースを選択します。[[Access データベースの選択]データベースの選択]ダイアログボックスが表示されます。この例では、(デフォルトでは

Documents フォルダにインストールされる)ComponentOne Samples ディレクトリの Common フォルダにある C1NWind.mdb を選択します。このディレク

トリはデフォルトのインストールパスに基づいていますが、インストールパスを変更した場合は、パスが異なる場合があります。 5. [開く][開く]をクリックします。接続をテストし、[[OK]]をクリックします。 6. [[OK]]をクリックして、[データリンクプロパティ][データリンクプロパティ]ダイアログボックスを閉じます。 7. データソースを選択したら、テーブル、ビュー、またはストアドプロシージャを選択して実際のデータを提供できます。DataSource.RecordSource の文字列 は、次の 2 つの方法で指定できます。 [データソース] [データソース]タブを選択し、[テーブル][テーブル]リストから Products テーブルを選択します。 [[SQL]]タブを選択し、エディタに SQL 文を入力(または貼り付け)します。 次に例を示します。

select * from products

8. [次へ][次へ]をクリックします。ウィザードに従って残りの手順を実行します。 2. レポートに含めるフィールドを選択します。レポートに含めるフィールドを選択します。 このページには、手順 1 で選択したレコードセットにあるフィールドのリスト、およびレポートのグループフィールドと詳細フィールドを定義する 2 つのリストが表示され ます。グループフィールドはデータのソート方法と集計方法を定義し、詳細フィールドはレポートに表示する情報を定義します。 マウスポインタを使用してドラッグすることで、リスト間でフィールドを移動することができます。フィールドを[詳細][詳細]リストにドラッグしてレポートに入れたり、リスト内で フィールドをドラッグして順序を変更することができます。レポートからフィールドを削除する場合は、フィールドをドラッグして[利用可能なフィールド][利用可能なフィールド]リストに戻します。 手順手順 2 の実行の実行 次の手順を実行します。 1. マウスポインタを使用して CategoryID フィールドを選択し、[グループ][グループ]リストにドラッグします。 2. [>>]ボタンをクリックして、残りのフィールドを[詳細][詳細]リストに移動します。

(20)

3. [次へ][次へ]をクリックします。ウィザードに従って残りの手順を実行します。 3. 新しいレポートのレイアウトを選択します。新しいレポートのレイアウトを選択します。 このページには、ページ内でのデータの構成方法を定義するいくつかのオプションが用意されています。レイアウトを選択すると、左側にサムネイルプレビューが表示 され、ページ内でレイアウトがどのように表示されるかを確認できます。2 つのレイアウトグループがあります。1 つは、グループなしのレポート用のレイアウトグルー プ、もう 1 つはグループありのレポート用のレイアウトとグループです。目的とするレポートの最終的な外観に最も近いレイアウトを選択してください。 また、このページでは、用紙の方向と、フィールドをページ幅に合わせて調整するかどうかを選択できます。 [ラベル][ラベル]レイアウトオプションを使用して、Avery スタイルのラベルを印刷します。このオプションを選択すると、印刷するラベルの種類を指定するためのページが表示 されます。 手順手順 3 の実行の実行 次の手順を実行します。 1. [アウトライン][アウトライン]レイアウトのままにします。 2. [次へ][次へ]をクリックします。ウィザードに従って残りの手順を実行します。 4. 新しいレポートのスタイルを選択します。新しいレポートのスタイルを選択します。 このページでは、新しいレポートで使用するフォントと色を選択できます。前のページと同様に、プレビューが表示され、各スタイルがどのように表示されるかを確認で きます。最適なスタイルを選択します(スタイルは後で変更したり、詳細に調整することができます)。

(21)

手順手順 4 の実行の実行 1. Verdana スタイルを選択します。 2. [次へ][次へ]をクリックします。ウィザードに従って残りの手順を実行します。 5. 新しいレポートのタイトルを選択します。新しいレポートのタイトルを選択します。 この最後の手順のページでは、新しいページのタイトルを選択します。また、新しいレポートをすぐにプレビューするか、プレビューする前に編集モードに移動してデザ インに手を加えるかを指定します。 手順手順 5 の実行の実行 1. 新しいレポートのタイトルを入力します。たとえば、「Products Report」とします。 2. [レポートのプレビュー][レポートのプレビュー]を選択し、[完了][完了]をクリックします。 デザイナデザイナのプレビューペインにレポートが直ちに表示されます。 レポートに何らかの調整が必要なことに気づくことがあります。レポートの修正方法については、次の手順で説明します。 コードを使用したレポート定義の作成コードを使用したレポート定義の作成 以下の手順では、FlexReportDesigner アプリケーションまたはコードを使用してレポート定義を作成する方法について説明します。独自のレポートデザイナを記述したり、ア ドホックなレポートジェネレータを作成することもできます。

(22)

この例では、コードを使用して、C1NWind データベースに基づく単純な表形式のレポート定義を作成します。コードにはコメントが付けられ、C1FlexReport オブジェクトモデル の最も重要な要素が例示されています。次の手順を実行します。 1. 最初に、ボタンコントロール、C1FlexReport コンポーネント、および C1FlexViewer コントロールをフォームに追加します。次のプロパティを設定します。 Button.Name = btnEmployees C1FlexReport.Name = c1FlexReport1 (C# でのデフォルト名) C1FlexViewer.Name = c1FlexViewer1 (C# でのデフォルト名) 2. c1FlexReport1 という名前のコントロールを初期化します。それには、Clear メソッドを使用してコンテンツを消去し、コントロールのフォントを設定します(このフォントが 新しいフィールドに割り当てられます)。

Private Sub RenderEmployees()

C1FlexReport1.DataSource.RecordSourceType = RecordSourceType.Auto ' 既存のフィールドをすべて消去します C1FlexReport1.Clear() ' すべてのコントロールのデフォルトのフォントを設定します C1FlexReport1.Font.Name = "Tahoma" C1FlexReport1.Font.Size = 8 End Sub

private void RenderEmployees() { c1FlexReport1.DataSource.RecordSourceType = RecordSourceType.Auto; // 既存のフィールドをすべて消去します c1FlexReport1.Clear(); // すべてのコントロールのデフォルトのフォントを設定します c1FlexReport1.Font.Name = "Tahoma"; c1FlexReport1.Font.Size = 8; }

3. 次に、C1NWind.mdb データベースから必要なデータを取得するように DataSource オブジェクトを設定します。それには、ConnectionString プロパティと

RecordSource プロパティを使用します。

' DataSource を初期化します

Dim ds As DataSource = C1FlexReport1.DataSource

ds.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;

Data Source=C:\...\ComponentOne Samples\Common\C1NWind.mdb;"

ds.RecordSource = "Employees"

//DataSource を初期化します

DataSource ds = c1FlexReport1.DataSource;

ds.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\...\ComponentOne Samples\Common\C1NWind.mdb;"; ds.RecordSource = "Employees"; 4. 次に、ページ内のレポートのレイアウト方法を定義する Layout オブジェクトを初期化します。ここでは、レポートを Portrait(縦)モードでレンダリングし、Width を 6.5 インチ(ページ幅 8.5 インチから、両側のマージン各 1 インチを引いた値)に設定します。 'Layout を初期化します

Dim l As Layout = C1FlexReport1.Layout l.Orientation = OrientationEnum.Portrait l.Width = 6.5 * 1440 ' 8.5 からマージンを引いた値(ツイップ単位) //Layout を初期化します Layout l = c1FlexReport1.Layout; l.Orientation = OrientationEnum.Portrait; l.Width = 6.5 * 1440; // 8.5 からマージンを引いた値(ツイップ単位) 5. 次の手順は、興味深いものです。すべてのレポートには、5 つの基本セクション(詳細詳細、レポートヘッダーレポートヘッダー、レポートフッターレポートフッター、ページヘッダーページヘッダー、ページフッターページフッター)がありま す。次のコードを使用して、レポートヘッダーを設定します。ここでは、いくつかのプロパティを設定し、タイトルフィールドを追加します。 Visual Basic C# Visual Basic C# Visual Basic C# Visual Basic

(23)

' レポートヘッダーを作成します

Dim s As Section = C1FlexReport1.Sections(SectionTypeEnum.Header) s.Height = 1440

s.Visible = True

s.BackColor = Color.FromArgb(200, 200, 200) Dim textFld1 As New TextField()

textFld1.Name = "FldTitle"

textFld1.Text = "Employees Report"

textFld1.Left = 0 textFld1.Top = 0 textFld1.Width = 8000 textFld1.Height = 1440 textFld1.Font.Size = 24 textFld1.Font.Bold = True textFld1.ForeColor = Color.FromArgb(0, 0, 100) C1FlexReport1.Sections.Header.Fields.Add(textFld1) // レポートヘッダーを作成します Section s = c1FlexReport1.Sections[SectionTypeEnum.Header]; s.Height = 1440; s.Visible = true; s.BackColor = Color.FromArgb(200, 200, 200); TextField textFld1 = new TextField();

textFld1.Name = "FldTitle";

textFld1.Text= "Employees Report"; textFld1.Left = 0; textFld1.Top = 0; textFld1.Width = 8000; textFld1.Height = 1440; textFld1.Font.Size = 24; textFld1.Font.Bold = true; textFld1.ForeColor = Color.FromArgb(0, 0, 100); c1FlexReport1.Sections.Header.Fields.Add(textFld1); 上記のセクションオブジェクトには、Fields コレクションがあります。このコレクションの Add メソッドは、新しいフィールドを作成し、それをセクションに割り当てます。パ ラメータで、新しいフィールドの Name、Text、Left、Top、Width、Height の各プロパティを指定しています。デフォルトでは、フィールドのフォントはコントロールと同じ です。このフィールドはタイトルなので、フォントを変更してサイズを大きくしています。フォントサイズに合わせてフィールドの高さを十分大きくしてください。そうしない と、何も表示されなくなります。 6. 次に、ページフッターセクションを設定します。このセクションは、テキストフィールドに式が含まれており、さらに興味深くなっています。テキストフィールド内の式を評価 するには、TextField.Text.Expression プロパティに式を設定するだけです。テキストフィールド内の式は、レポートのレンダリング時に評価されます。C1Report で は、フィールドの Calculated プロパティを True に設定することで、同じことを実現できます。ページフッターを作成するには、次のコードを追加します。 ' ページフッターを作成します s = C1FlexReport1.Sections(SectionTypeEnum.PageFooter) s.Height = 500 s.Visible = True

Dim textFld2 As New TextField() textFld2.Name = "FldFtrLeft"

textFld2.Text.Expression = """Employees: Printed on "" & Now"

textFld2.Left = 0 textFld2.Top = 0 textFld2.Width = 4000 textFld2.Height = 300 textFld2.Font.Size = 8 textFld2.Font.Bold = False C1FlexReport1.Sections.PageFooter.Fields.Add(textFld2) Dim textFld3 As New TextField()

textFld3.Name = "FldFtrRight"

textFld3.Text.Expression = """Page "" + Page + "" of "" & Pages"

textFld3.Left = 4000 textFld3.Top = 0 textFld3.Width = 4000 textFld3.Height = 300

textFld3.Align = FieldAlignEnum.RightTop

textFld3.Width = C1FlexReport1.Layout.Width - textFld3.Left C1FlexReport1.Sections.PageFooter.Fields.Add(textFld3) 'ページフッターの前に直線を追加します

Dim shpfld As New ShapeField()

C#

(24)

shpfld.Name = "FldLine" shpfld.ShapeType = ShapeType.Line shpfld.Left = 0 shpfld.Top = 0 shpfld.Width = C1FlexReport1.Layout.Width shpfld.Height = 20 C1FlexReport1.Sections.PageFooter.Fields.Add(shpfld) // ページフッターを作成します s = c1FlexReport1.Sections[SectionTypeEnum.PageFooter]; s.Height = 500; s.Visible = true;

TextField textFld2 = new TextField(); textFld2.Name = "FldFtrLeft";

textFld2.Text.Expression = @"""Employees: Printed on "" & Now"; textFld2.Left = 0; textFld2.Top = 0; textFld2.Width = 4000; textFld2.Height = 300; textFld2.Font.Size = 8; textFld2.Font.Bold = false; c1FlexReport1.Sections.PageFooter.Fields.Add(textFld2); TextField textFld3 = new TextField();

textFld3.Name = "FldFtrRight";

textFld3.Text.Expression = @"""Page "" + Page + "" of "" & Pages"; textFld3.Left = 4000;

textFld3.Top = 0; textFld3.Width = 4000; textFld3.Height = 300;

textFld3.Align = FieldAlignEnum.RightTop;

textFld3.Width = c1FlexReport1.Layout.Width - textFld3.Left; c1FlexReport1.Sections.PageFooter.Fields.Add(textFld3);

//ページフッターの前に直線を追加します

ShapeField shpfld = new ShapeField(); shpfld.Name = "FldLine"; shpfld.ShapeType = ShapeType.Line; shpfld.Left = 0; shpfld.Top = 0; shpfld.Width = c1FlexReport1.Layout.Width; shpfld.Height = 20; c1FlexReport1.Sections.PageFooter.Fields.Add(shpfld);

このページフッターセクションの式では、VBScript 固有の変数ではなく、C1FlexReport で定義されている変数を使用しています。Page と Pages は、現在のページ番 号と総ページ数が格納される変数です。このセクションでは、直線として表示されるように設定されたフィールドも使用されています。 7. 次に、ページヘッダーセクションを設定します。このセクションは、各ページの上部にレンダリングされ、フィールドラベルが表示されます。ページヘッダーセクションを使 用してフィールドラベルを表示するテクニックは、表形式のレポートでよく使用されます。コードは単純ですが、すべてのフィールドのサイズを指定しているため、見た目 は多少煩雑です。実際のアプリケーションでは、これらの値はプログラムに組み込まれません。フィールドラベルを含むページヘッダーを作成するには、次のコードを 追加します。 'フィールドラベルを含むページヘッダーを作成します s = C1FlexReport1.Sections(SectionTypeEnum.PageHeader) s.Height = 500 s.Visible = True C1FlexReport1.Font.Bold = True

Dim textFld4 As New TextField() textFld4.Name = "LblID" textFld4.Text = "ID" textFld4.Left = 0 textFld4.Top = 50 textFld4.Width = 400 textFld4.Height = 300 textFld4.Align = FieldAlignEnum.RightTop C1FlexReport1.Sections.PageHeader.Fields.Add(textFld4) Dim textFld5 As New TextField()

textFld5.Name = "LblFirstName"

textFld5.Text = "First"

textFld5.Left = 500

C#

(25)

textFld5.Top = 50 textFld5.Width = 900 textFld5.Height = 300

C1FlexReport1.Sections.PageHeader.Fields.Add(textFld5) Dim textFld6 As New TextField()

textFld6.Name = "LblLastName" textFld6.Text = "Last" textFld6.Left = 1500 textFld6.Top = 50 textFld6.Width = 900 textFld6.Height = 300 C1FlexReport1.Sections.PageHeader.Fields.Add(textFld6) Dim textFld7 As New TextField()

textFld7.Name = "LblTitle" textFld7.Text = "Title" textFld7.Left = 2500 textFld7.Top = 50 textFld7.Width = 2400 textFld7.Height = 300 C1FlexReport1.Sections.PageHeader.Fields.Add(textFld7) Dim textFld8 As New TextField()

textFld8.Name = "LblTitle" textFld8.Text = "Notes" textFld8.Left = 5000 textFld8.Top = 50 textFld8.Width = 8000 textFld8.Height = 300 C1FlexReport1.Sections.PageHeader.Fields.Add(textFld8) C1FlexReport1.Font.Bold = False

Dim shpfld2 As New ShapeField() shpfld2.Name = "FldLine" shpfld2.ShapeType = ShapeType.Line shpfld2.Left = 0 shpfld2.Top = 400 shpfld2.Width = C1FlexReport1.Layout.Width shpfld2.Height = 20 C1FlexReport1.Sections.PageHeader.Fields.Add(shpfld2) //フィールドラベルを含むページヘッダーを作成します s = c1FlexReport1.Sections[SectionTypeEnum.PageHeader]; s.Height = 500; s.Visible = true; c1FlexReport1.Font.Bold = true; TextField textFld4 = new TextField(); textFld4.Name = "LblID"; textFld4.Text = "ID"; textFld4.Left = 0; textFld4.Top = 50; textFld4.Width = 400; textFld4.Height = 300; textFld4.Align = FieldAlignEnum.RightTop; c1FlexReport1.Sections.PageHeader.Fields.Add(textFld4); TextField textFld5 = new TextField();

textFld5.Name = "LblFirstName"; textFld5.Text = "First"; textFld5.Left = 500; textFld5.Top = 50; textFld5.Width = 900; textFld5.Height = 300; c1FlexReport1.Sections.PageHeader.Fields.Add(textFld5); TextField textFld6 = new TextField();

textFld6.Name = "LblLastName"; textFld6.Text = "Last"; textFld6.Left = 1500; textFld6.Top = 50; textFld6.Width = 900; textFld6.Height = 300; c1FlexReport1.Sections.PageHeader.Fields.Add(textFld6); TextField textFld7 = new TextField();

textFld7.Name = "LblTitle"; textFld7.Text = "Title";

参照

関連したドキュメント

Bluetooth® Low Energy プロトコルスタック GUI ツールは、Microsoft Visual Studio 2012 でビルドされた C++アプリケーションです。GUI

Visual Studio 2008、または Visual Studio 2010 で開発した要素モデルを Visual Studio

春から初夏に多く見られます。クマは餌がたくさんあ

発行日:2022 年3月 22 日 発行:NPO法人

2リットルのペットボトル には、0.2~2 ベクレルの トリチウムが含まれる ヒトの体内にも 数十 ベクレルの

パルスno調によ るwo度モータ 装置は IGBT に最な用です。この用では、 Figure 1 、 Figure 2 に示すとおり、 IGBT

1 つの Cin に接続できるタイルの数は、 Cin − Cdrv 間 静電量の,計~によって決9されます。1つのCin に許される Cdrv への静電量は最”で 8 pF

最終的な認定データおよび特性データは最終製品 / プロセス変更通知 (FPCN) に含まれます。この IPCN は、変 更実施から少なくとも 90