报表排版与布局:数据分组和统计(区域报表)

发布时间:2014/06/18 00:06 发布者:roger.wang

返回博客中心

在报表中,用分组进行数据统计的非常重要,本文就编程能力强大的区域报表用到的分组概念详细步骤说明。

当添加了一组分组页头和分组页脚区域到报表,这些新的区域会立刻出现在明细区域的上方和下方。

分组头(尾)对话框

以下是您能在对话框中设置的选项,分组头对话框中的选项与其相应的属性窗口中的属性时对应的。如果希望直接访问这些属性,您可以选中相应区域之后,切换到属性窗口即可。

image

还可以通过点击属性右下角的超链接【属性对话框】打开分组的设置窗体进行设置:

image

设置属性使用说明:

常规选项

  • Name:  分组头名称。
  • Tag: 用户自定义数据。
  • Visible: 指定分组头是否显示。
  • DataField:设置分组的字段。

外观选项

BackColor: 分组头的背景颜色。

布局选项

NewPage: 在显示分组头时否新起一页。

NewColumn: 在显示分组头是是否新起一列 (在分栏报表中有效)。

RepeatStyle: 分组头是在每个分栏,每页还是在有分组尾的页中显示。

GroupKeepTogether:如果可能的话,尽量将分组项保持在同一页上。

KeepTogether:如果可能的话,尽量将区域保持在同一页上。

ColumnGroupKeepTogether:如果可能的话,尽可能的将分组项保持在同一列上。

UnderlayNext:如果为True,将分组头作为接下来区域的底层呈现。

这在您希望在嵌套分组头或者明细区域中在同一行呈现分组头控件时很有用。请务必将接下来区域的BackColor属性设置为Transparent,否则分组头将不可见。一般用于多个分组并行呈现数据。

ColumnLayout:用于指定分组头是否使用明细区域相同的布局。

CanGrow:是否根据分组头区域内控件的大小自动增加分组头区域的大小。

CanShrink: 是否根据分组头区域内控件的大小自动缩小分组头区域的大小。

 

注意:

  • 为了报表稳定运行,请不要仅仅添加一个分组头区域而不添加对应的分组页脚区域。
  • 您可以在分组头和分组尾相应的属性对话框进行单独设置。

多重分组

 

同上面的插入分组,选择GroupHead,右键【插入】—【组头/组脚】,则插入了新的分组:GroupHeader2、GroupFooter2

image

 

下面我们就以一个多重分组的区域报表为例,一步一步详解一下区域报表的分组:

image

以及右下角当前页面的单价平均。

image

首先分析一下,为了要实现这个区域报表,第一列【供应商ID】和第二列【类别ID】做了了分组,并输出了供应商ID下的平均单价。

给报表插入2个分组,分别绑定分组字段:供应商ID、类别ID,并设置UnderlayNext=True,调整布局为这2个分组可以叠在一起:

image

 

image

 

在分组统计中,选择GroupFooter1,拖入TextBox控件,设置分组字段:

image

DataField = 单价

SummaryFunc=Avg

SummaryGroup=GroupHeader1 【和上面的GroupHeader用供应商ID进行分组呼应】

SummaryType=SubTotal

最后,在PageFooter区域,拖入Textbox,用类似分组统计的设置进行如下设置即可:

image

 

另外,对美化报表有需求的,可采用下面2个办法进行:

  • 设置TextBox的边框

选中单元格(TextBox),右键【设置】,按照下图所示进行边框设置。

image

  • 使用Line控件

在区域报表下,我推荐使用Line控件进行微调边框,这样效果会更好一些。

 

 

关于区域报表分组的,请参考

 

源码下载:


关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网