説明用Fieldの作成
今度は、メーカの説明文を表示するFieldを作成し、タイトル用Fieldの上に重ねて配置します(なお、ここでは便宜上3つだけ作成します)。
この処理は、ComboBoxで選択されたメーカー名で処理を分岐するようにします。
Fieldの追加
まず、タイトル用Fieldの高さと背景色を変更します。
そして、タイトル用Fieldと同じようにFieldsコレクションのAddメソッドを実行します。引数の文字列は配列から取得します。
Select Case Me.ComboBox1.SelectedIndex Case 0 With Me.C1Report1.Sections(SectionTypeEnum.Header) .Height = 1000 .Visible = True .BackColor = Color.BlueViolet f = .Fields.Add("exp", exp(0), 100, 800, 8000, 1500) f.Font.Size = 12 f.ForeColor = Color.Gold End With
switch(ComboBox1.SelectedIndex){ case 0: s.Height = 1000; s.Visible = true; s.BackColor = Color.BlueViolet; f = s.Fields.Add("exp", exp[0], 100, 800, 8000, 1500); f.Font.Size = 12; f.ForeColor = Color.Gold; break;
これで、1つ目のメーカー説明文が出来上がりました。同じようなコードを、他のメーカー分作成します。
タイトル文字の色を入れ替える
なお、case 2とcase 3では、見栄えをよくするためだけですが、タイトルの文字色を入れ替えておきます。
既に作成したFieldオブジェクトを参照するには、インデックス番号以外に、Addメソッドで付けたオブジェクト名を使って参照することもできます。
タイトル用Fieldは、Addメソッドで「title」という名前をつけているので、これを使って参照します。
.Fields("title").ForeColor = Color.Blue
s.Fields["title"].ForeColor = Color.LimeGreen;
これで、3種類のタイトルが出来上がります。
まとめ
クエリの結果によってレポートの形式を切り替えることができるようになると、アプリケーションの魅力もぐっとアップします。
今回は、説明文はコードの中に埋め込みましたが、説明文をデータベースやテキストファイルに格納しそこから取り出せるようにすれば、もっと便利な機能になります。
ヘッダーを例にコードの説明をしましたが、Fieldはレポート内のいろいろなところに組み込め、それぞれセクションごとに分けて操作できるので、プログラム実行時にいろいろなレポートが作成できるようになります。今回は、Fieldを作り直して入れ替えるようにしましたが、すでにあるFieldのプロパティを操作してコンテンツを入れ替えるようにすることもできます。
このFieldをうまく使うと、見栄えの良いレポートを作り出すことができます。