作成日: 2022/04/20 最終更新日: 2022/04/20
文書種別
使用方法
詳細
コントロールのプロパティを動的に変更する方法は、レポートの形式によって異なります。
セクションレポートの場合
イベントにコントロールのプロパティを変更するコードを実装することで、動的な変更を実現できます。たとえば、以下のようなコードになります。
◆サンプルコード (C#)
private void detail_Format(object sender, EventArgs e) { // Textプロパティの値を別の文字列に変換します。 string s; switch (this.textBox1.Text) { case "1": s = "文字列1"; break; case "2": s = "文字列2"; break; case "3": s = "文字列3"; break; default: s = "その他"; break; } this.textBox1.Text = s; // (X=2, Y=1.5)センチの位置に移動します。(※1) this.textBox1.Location = new System.Drawing.PointF( GrapeCity.ActiveReports.SectionReport.CmToInch(2.0f), GrapeCity.ActiveReports.SectionReport.CmToInch(1.5f)); // 「MS ゴシック」の14pt、太字+斜体に変更します。(※2) this.textBox1.Font = new System.Drawing.Font("MS ゴシック", 14.0f, System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, 128); }
◆サンプルコード (VB.NET)
Private Sub Detail1_Format(...) Handles Detail1.Format ' Textプロパティの値を別の文字列に変換します。 Dim s As String Select Case Me.TextBox1.Text Case "1" : s = "文字列1" Case "2" : s = "文字列2" Case "3" : s = "文字列3" Case Else : s = "文字列X" End Select Me.TextBox1.Text = s ' (X=2, Y=1.5)センチの位置に移動します。(※1) Me.TextBox1.Location = New System.Drawing.PointF( _ GrapeCity.ActiveReports.SectionReport.CmToInch(2.0F), _ GrapeCity.ActiveReports.SectionReport.CmToInch(1.5F)) ' "MS ゴシック"の14pt、太字+斜体に変更します。(※2) Me.TextBox1.Font = New System.Drawing.Font("MS ゴシック", 14.0F, _ FontStyle.Bold Or FontStyle.Italic, GraphicsUnit.Point, 128) End Sub
※Locationプロパティは値型であるため、このプロパティから返されるLocationオブジェクトのメンバ(Location.Xなど)を直接変更することはできません。Locationプロパティを動的に変更する場合は、Locationプロパティのデータ型であるSystem.Drawing.PointFクラスのインスタンスを新たに生成する必要があります。
※Fontプロパティ以下のプロパティはReadOnlyであるため、たとえばFont.Nameプロパティの値を直接変更するといったことはできません。Fontプロパティを動的に変更する場合は、Fontオブジェクトのインスタンスを新たに生成する必要があります。
なお、コントロールを操作できるのは、そのコントロールが配置されているセクションのイベント(Format、BeforePrint、AfterPrint)内、またはReportStartイベント内のみです。
製品ヘルプの以下のトピックもあわせてご確認ください。
イベント
隔行で色の変更
条件による詳細情報の表示/非表示
よくある質問 > セクションレポート > イベント
ページレポート/RDLレポートの場合
変更したいコントロールのプロパティに「式」を設定することで、動的な変更を実現できます。以下のような例が挙げられます。
- 出力する値を別の文字列に変換する
以下のような式をValueプロパティに設定します。
=Switch(Fields!FieldName.Value="1", "文字列1", Fields!FieldName.Value="2", "文字列2", Fields!FieldName.Value="3","文字列3", True, "その他")
- 出力する値がマイナス値の時のみ、フォントを斜体に設定する
以下のような式をFont.FontStyleプロパティに設定します。
=IIF(Fields!FieldName.Value<0,"Italic","Normal")
- 最終ページのみ値を表示する
以下のような式をValueプロパティに設定します。
=IIF(Globals!PageNumber=Globals!TotalPages,Fields!FieldName.Value,"")
式の詳細や使用例については、製品ヘルプの以下のトピックをご覧ください。
式
マイナス値の赤表示
隔行で色の変更
カスタムコードを使用するレポートの作成
ただし、この方法は「式」を設定できる ExpressionInfo型のプロパティにのみ適用可能です。
コントロールの位置やサイズなどを変更することはできません。
※ページレポートはデザイン時にページのレイアウトを決定し、そのレイアウト通りに出力することを前提としたレポートです。そのため、コントロールの位置やサイズなど、レイアウトに影響する設定をレポートの実行中に動的に変更することはできません。