レポートに行番号を出力するには?

文書番号 : 37846     文書種別 : 使用方法     登録日 : 2015/02/26     最終更新日 : 2017/04/19
文書を印刷する
対象製品
ActiveReports for .NET 9.0J
詳細
レポートに行番号を出力する方法は、レポートの形式によって異なります。
  1. セクションレポートの場合
  2. ページレポートの場合


セクションレポートの場合

TextBoxコントロールの集計機能やコード処理を利用することで、レコード(Detailセクション)毎に行番号を出力することができます。
  1. 集計機能(Summary***プロパティ)を利用する場合
    DetailセクションにTextBoxコントロールを配置し、プロパティを以下のように設定します。
     CountNullValues= True
     SummaryFunc= Count
     SummaryGroup= (空白)
     SummaryRunning= All
     SummaryType= GrandTotal

    グループ化されたレポートで、グループ毎に連番をリセットしたい場合は、Detailセクション上に配置したTextBoxコントロールのプロパティを以下のように設定します。
     CountNullValues= True
     SummaryFunc= Count
     SummaryGroup= (目的とするグループヘッダ)
     SummaryRunning= Group
     SummaryType= SubTotal

    ■CountNullValuesプロパティの設定について

    6.0Jの初版(6.0.1851.1)以前のバージョン(1.0J~3.0Jを含む)では、上記の設定の内、CountNullValuesプロパティが"False(既定値)"が設定されていても、行番号が出力されていました。

    しかしながら、6.0JのSP1(6.1.2437.1)において、CountNullValuesプロパティで発生していた不具合を修正したため、現行のバージョンで上記の手法を用いて行番号を出力する場合には、CountNullValuesプロパティを"True"に設定する必要があります。

    6.0Jの初版以前のバージョンから移行される場合にはご注意ください。

    Summary***プロパティの詳細については、製品ヘルプの以下の項目をご覧ください。

    ActiveReportsユーザーガイド
     - 概念
      - セクションレポートの概念
       - セクションレポートのレポートコントロール
        - TextBox(セクションレポート)
     - 基本操作
      - セクションレポートの基本操作
       - 高度なレポートレイアウトの作成
        - 集計レポートの作成
    クラスライブラリリファレンス
     - GrapeCity.ActiveReports.v9 アセンブリ
      - 名前空間
       - GrapeCity.ActiveReports.SectionReportModel 名前空間
        - クラス
         - TextBox
          - プロパティ
           - CountNullValues プロパティ
           - SummaryFunc プロパティ
           - SummaryGroup プロパティ
           - SummaryRunning プロパティ
           - SummaryType プロパティ

  2. コードによる処理の場合
    コードによって実現する場合は以下のような処理になります。

    ◆サンプルコード(VB.NET)
    Dim detailCounter As Integer = 0 '行番号集計用の変数。

    Private Sub Detail_Format(...) Handles Detail.Format
      detailCounter += 1
      Me.TextBox1.Value = detailCounter
    End Sub

    ◆サンプルコード(C#)
    int detailCounter = 0; //行番号集計用の変数。

    private void detail_Format(object sender, EventArgs e)
    {
      detailCounter += 1;
      this.textBox1.Value = detailCounter;
    }



ページレポートの場合

TextBoxコントロールのValueプロパティに「式」としてRowNumber関数を設定することで行番号を出力できます。以下のような手順になります。
  1. TextBoxコントロールのプロパティ設定ダイアログを開き「全般」タブ、「値」から、「式」を選択して式エディタを開きます。(式エディタはプロパティウィンドウからも開くことができます。)
  2. フィールド「共通の関数→その他」から、RowNumberを選択し、「置換」ボタンを押してください。「式」に"=RowNumber()"が入りましたら、エディタを閉じます。

グループ毎に行番号をリセットしたい場合には、RowNumber関数の引数にそのグループを指定します。
たとえばBandedListコントロールで"BandedList1_Group1"というグループが設定されていると仮定し、このグループ毎に行番号をリセットしたい場合、"=RowNumber( BandedList1_Group1 )" のように設定します。

また、ページ毎に行番号をリセットするための直接的な機能は用意されておりませんが、Mod演算子を使用して算出することは可能です。たとえば、1ページ当たりの最大行数が10行の場合、"=(RowNumber()-1) Mod 10 + 1"のように設定します。

式の詳細や使用例については、製品ヘルプの以下のトピックをご覧ください。

ActiveReportsユーザーガイド
 - 概念
  - ページレポート/RDLレポートの概念
   - 式
    - 共通の関数
 - 基本操作
  - ページレポート/RDLレポートの基本操作
   - 高度なページ形式のレイアウトの作成
    - マイナス値の赤表示
    - 隔行で色の変更
 - サンプルとチュートリアル
  - チュートリアル
   - ページレポートのチュートリアル
    - データ
     - レポートで式の使用
関連情報
キーワード
HowTo セクションレポート デザイン・レイアウト ページレポート