数据的分组与排序.docxVIP

  • 5
  • 0
  • 约6.64千字
  • 约 8页
  • 2018-01-07 发布于天津
  • 举报
数据的分组与排序.docx

数据的分组与排序本节中将为你展示如何使用数据分组与排序,动态求和以及创建表达式等方式对报表中的数据进行有效的管理和组织。数据分组完成基本布局的设计之后,你可以按照某些字段或者其他条件对报表内容进行分组,从而使报表阅读起来更加容易。通过分组,你可以将报表更加直观的分割成几部分从而对每个分组单独进行介绍和数据汇总。报表主要依靠分组表达式来进行分组。分组表达式主要基于一个或者多个字段集,当然你也可以根据需要设置更加复杂的分组条件。你可以使用C1ReportDesigner程序或者使用代码来实现报表的数据分组:使用C1ReportDesigner进行分组和排序即使不打算显示分组的页眉和页脚部分,你也可以使用分组来对数据进行排序。你可以使用C1ReportDesigner对你的报表进行分组,具体位置如下图所示。图 1要在报表中添加或编辑分组,你需要完成以下步骤:1. 打开C1ReportDesigner应用程序。更多细节,可以参阅葡萄城系列文档中的Accessing C1ReportDesigner from Visual Studio章节。(《Reports for .NET DesignerEdition》238页) 2. 在Data分组中的Design选项卡上单击Sorting and Grouping按钮。  单击之后,将会弹出Sorting and Grouping 对话框。你可以在此页面中创建、编辑、排序和删除分组。 3. 单击Add按钮,创建一个分组,并设置新分组的属性。  Group By字段定义数据将如何在报表中分组。对于简单的分组,你可以直接从下拉列表中选择字段。对于更复杂的分组,你可以输入分组表达式。例如,您可以使用国家字段来分组或者使用Left(Country, 1)表达式通过国家首字母来分组。 4. 本示例中,选择Country作为Group By的表达式。 5. 接下来,选择你想要的排序类型(本例中选择升序(Ascending))。你还可以指定新分组的页眉和页脚部分是否可见,以及分组是否在同一页面上进行呈现。注意: 你不能将备注型字段或者二进制(对象)字段用于分组和排序,这是OLEDB对此进行的限制。Sorting and Grouping对话框效果如下图所示:图 2如果你添加了很多字段,可以通过Group列表右侧的箭头按钮改变字段的顺序。该操作将自动调整报表分组中页眉和页脚的位置。如果想要删除某个字段,可以使用Delete按钮。完成字段设置之后,单击OK按钮关闭对话框,你可以在Designer中看到设置后的效果。报表中增加了页眉和页脚两个新的区域。新增区域(页眉和页脚)的高度均默认为0,你可以通过鼠标拖动边缘来扩展该区域。需要注意的是,页眉区域是可见的。而页脚区域是不可见的。因为在之前的对话框中,Group Header按钮已经被选中,而Group Footer按钮未被选中。不可见区域通过一个阴影图案表明该区域在报表中是不可见的。具体实现效果如下图所示:图 3在新区域顶部的标题栏上的标签中,包含了该区域的名称以及分组Group By属性的值为了了解分组是如何工作的,你可以单击Add Data Field按钮,从菜单中选择Country选项,在新创建的分组页眉区域增加一个位置。单击选中该字段,通过改变字体Font属性使字体更为醒目一些。使用代码添加分组和排序好的报表并不只是简单的展示数据,更重要的是将数据有效的组织起来。C1Report使用groups来实现数据的分组和排序。为了说明分组是如何工作的,我们将回到报表主题模板的代码创建过程中,通过国籍对员工进行分组。下面的代码将展示如何创建一个分组对象,并且根据国籍对报表内容进行分组:? Visual Basic If chkGroup.Checked Then group employees by country, in ascending order Dim grp As Group grp = c1r.Groups.Add(GrpCountry, Country, SortEnum.Ascending) format the Header section for the new group With grp.SectionHeader.Height = 500 .Visible = True f = .Fields.Add(CtlCountry, Country, 0, 0, c1r.Layout.Width, 500) f.Calculated = True f.Align = FieldAlignEnum.LeftMiddlef.Font.Bold = True f.Font.Size = 12 f.BorderStyle = BorderStyl

文档评论(0)

1亿VIP精品文档

相关文档