FastReport教程之交叉报表

2025-05-08 10:52:11

1、这种报表类型是表格结构,意思是它包含着一系列的行和列。同时它不可预知,表格有多少个行和列。这就是为什么报表不但纵向增加,而且横向增加。以下显示这种类型的报表的例子:表格的数据如下:

FastReport教程之交叉报表

3、报表需要如下数据:a 10 1 a10.1a 10 2 a10.2a 20 1 a20.1a 20 2 a20.2b 10 1 b10.1b 10 2 b10.2b 20 1 b20.1b 20 2 b20.2

4、内存中创建的表格数据如下:

FastReport教程之交叉报表

6、在delphi中创建一个新的工程,添加“TTable”,“TfrxDBData”和“TfrxReport”组件。并设值其属佣甲昭宠性:Table1:DatabaseName = 'c:\Program Files\FastReport 4\Demos\Main'TableName = 'crosstest.db'frxDBDataSet1:DataSet = Table1UserName = 'SimpleCross'

7、为了完成交叉报表,我们酋篚靶高需要使用组件“TfrxCrossObject” ,此组件在FastReport组件面板上。将他添加到delp茑霁酌绡hi的表单中,不需要设置任何属性;同时,包含全部可用函数的“frxCross”单元被添加到uses列表中。进入报表设计器界面,首先连接数据源,再在报表中添加“Db Cross tab”组件。

FastReport教程之交叉报表

9、图形中数字区说明1:可用的数据源下拉列表2:选择数据源的字段列表。字段可以被拖拽到3、4、5区域中。3:生成行标题的字段列表。4:生成列标题的字段列表。5:显示表格数据的字段列表。6:表格结构预览7:可选项。

10、在这个界面中,只能通过鼠标进行操作修改。在这个示例中,可以托动鼠标将2区域的字段列表托拽到3、4、5区域。然后点击确定,显示结构如下:

FastReport教程之交叉报表

12、改变显示 让我们改变组件的显示模式。首先我们要做的就是改变标题的颜色,并改变Grand Total 改变为“汇总”。给边非常简单,一次选中“year”,“Name”,“Grand Total”组件,点击按钮设置颜色,

FastReport教程之交叉报表

14、改变“Grand Total” 标题,上击要修改的组件,从弹出的编辑窗口中修改文字即可。格式化显示结果,可选选中第一个单元格(year和name的交叉位置)。点击右键从菜单中选择“display format”。

FastReport教程之交叉报表

16、使用脑栲葱蛸函数在上面的示例中,我们可以看到员工四年的工资以及工资汇总情况,我们还可以使用一下函数:sum:汇总值和Max:求最大值Min:求最小值Avg:求平均值。Count:计数我们示例MIN函数,打开交叉组件编辑器,在6区选择salary,

FastReport教程之交叉报表

18、对结果进行排序 对行和列进行升序排序,如果结果是数字型,则按数据进行排序,如果是字符型,则按字母顺序排序。我们可以对行和列分别进行设置排序模式。我们做个示范,让year进行降序排列,设置界面如图(组件设计器):

FastReport教程之交叉报表

20、组合标题的表格 我们的示例只有一个行头和一个列首。现在我们设计一个复杂标题的报表,它可能包含两个行或列数据。表格包含如下数据内容:

FastReport教程之交叉报表

22、结果显示界面如下:

FastReport教程之交叉报表

24、另外注意,在最后一列我们没有做中间的汇总统计,实际上,在我们的示例中也没有这个必要。

25、调整单元格的宽度 察看前面的示例,可以很清晰的发现,单元格可以自动调整其宽度,以适应最大字符宽度。然而有时却不尽人意,如果字符特别的长,这时报表的样式就变得非常难看。如何解决这种情况呢?让我们采用3种方法进行处理。最简单的方法就是字组件中,将字符设成多行。Totalfor[Value]可以看到结果如下:

FastReport教程之交叉报表

27、第三种就是手动调整单元格宽度。这时,需要设置AutoSize属性值为false。现在可以通过鼠标改变组件的大小。显示界面如下:

FastReport教程之交叉报表

29、字体颜色和突出显示有时我们需要突出显示某些结果值,或通过字体颜色进行区分。我们在组报表中测试过突出显示方法。我们使吹涡皋陕用条件进行设置突出显示,这在报表中是非常有用的。添加突出显示:在我们的示例中,我们将结果值大于3000的字体颜色改为红色,选中单元格,在工具览中点击按钮,弹处条件设置对话框。设置参数value>3000,并改变字体颜色为红色。

FastReport教程之交叉报表

30、点击确定关闭窗口,进行预览:同样,用户可以设置全部的单元格,行和列的值。

FastReport教程之交叉报表

33、2.制作步骤2.1新建工作簿,添加数据集新建工作薄,添加数据集ds1,SQL语句为SELECT * FROM [销量]。

34、2.2制作交叉表设计好表样后,将数据列拖入对应单元格:

FastReport教程之交叉报表

35、纵表头:地区与销售员默认纵向扩展实现从上到下分组;横表头:将产品类型与产品设醅呓择锗置为从左到右扩展,让产品横向分组,实现横表头;数据:根据父子格的概念,销量会以销售乜蓑笤漶员为左父格,产品为上父格,自动匹配出销售员与产品对应的销量。预览即可看到上图交叉表。注:此处销售员与产品对应的销量是唯一的,因此,直接将销量拖入单元格即可。另:若销售员与产品对应的销量不唯一,则将销量数据列的显示方式设为汇总-求和,详细请查看数据显示方式。

36、2.3其他设置排序、突出显示以及字体颜色调整参考具体章节

37、2.4保存发布

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢