FlexReport for WPF
データのグループ化

グループ化は、整理された方法でデータを表示するために最もよく使用される方法です。基本レイアウトの設計が完了したら、特定のフィールドなどの基準に基づいてレコードを区切ることで、読みやすいレポートを作成できます。データをグループ化することで、レコードをグループに分け、グループごとに概要やサマリーデータを表示することができます。グループの区切りは、グループ化式に基づいて行われます。この式は、1 つ以上のレコードセットフィールドに基づいて作成されることが普通ですが、必要に応じてさらに複雑な式にすることもできます。

FlexReport でグループ化を実行するには、C1FlexReport.Groups を使用します。

たとえば、特定の肩書きや役職に該当する従業員の名前をリストすることにします。この場合は、Title(肩書き)でリストをグループ化します。以下の手順は、従業員リストを Title でグループ化する方法を示します。この例では、「クイックスタート」で作成したサンプルを使用します。

  1. クイックスタートプロジェクトの XAMLデサイン に、C1CheckBox を追加します。
  2. C1CheckBoxName を「groupC1CheckBox」に、またContent を「タイトルでレポートをグループ化する」に設定します。
  3. Checked イベントを c1CheckBox1_Checked という名前で作成します。
  4. 次のコードを追加します。
    Dim grp As Group
    
    Private Sub c1CheckBox1_Checked(sender As Object, e As RoutedEventArgs)
        ' 従業員を役職でグループ化し、役職を昇順で並べ替えます     
        grp = rep.Groups.Add("GrpTitle", "Title", SortEnum.Ascending)
        ' 新しいグループのヘッダーセクションを書式設定します          
        s = grp.SectionHeader
        s.Height = 1000
        s.Visible = True
    
        Dim f As New TextField()
        f.Name = "Title"
        f.Text.Expression = "Title"
        f.Left = 0
        f.Top = 0
        f.Width = rep.Layout.Width
        f.Height = 500
        f.Align = FieldAlignEnum.LeftMiddle
        f.Font.Bold = True
        f.Font.Size = 12
        f.Border = New C1.WPF.Document.Border _
        (2, Color.FromRgb(0, 0, 0), C1.WPF.Document.DashStyle.Solid)
        f.BackColor = Color.FromRgb(150, 150, 220)
        f.MarginLeft = 100
        s.Fields.Add(f)
        rep.Render()
    End Sub
    
    Group grp;
    private void c1CheckBox1_Checked(object sender, RoutedEventArgs e)
    {
           // 従業員を役職でグループ化し、役職を昇順で並べ替えます        
            grp = rep.Groups.Add("GrpTitle", "Title", SortEnum.Ascending);
            // 新しいグループのヘッダーセクションを書式設定します           
            s = grp.SectionHeader;
            s.Height = 1000;
            s.Visible = true;
    
            TextField f = new TextField();
            f.Name = "Title";
            f.Text.Expression = "Title";
            f.Left = 0;
            f.Top = 0;
            f.Width = rep.Layout.Width;
            f.Height = 500;
            f.Align = FieldAlignEnum.LeftMiddle;
            f.Font.Bold = true;
            f.Font.Size = 12;
            f.Border = new C1.WPF.Document.Border
            (2, Color.FromRgb(0, 0, 0), C1.WPF.Document.DashStyle.Solid);
            f.BackColor = Color.FromRgb(150, 150, 220);
            f.MarginLeft = 100;
            s.Fields.Add(f);
            rep.Render();
    }
    
  5. プロジェクトを実行します。[Employees]ボタンをクリックして、レポートをレンダリングします。
  6. [タイトルでレポートをグループ化する]チェックボックスをクリックして、レポートにグループを表示します。役職のリストがタイトルでグループ化され、タイトルが昇順にソートされていることを確認します。