• 在线报表设计实战系列 – ④制作复杂表头报表


    葡萄城报表是一套强大的报表开发和系统搭建工具,既能与您开发的报表软件项目紧密集成,也可独立部署运行,支持多数据源,具有无编码、灵活、稳定等特性,可以帮您快速搭建专业的报表软件系统,实现各类报表的设计、管理、权限控制、数据填报、负载均衡及跨平台发布。

    中国式复杂报表的一大特征是多层表头,分级汇总、分层合并,本节介绍一个典型的复杂表头报表的实现方法。

    (1)创建数据集

    从报表管理门户(http://localhost:8080 )点击【创建报表】,进入新报表的设计页面。点击右边栏的【数据】选项卡,再点击【数据集】右侧的【添加】如下图:

    在【新建数据集】下方,选中之前创建好的示例数据源,再点击【添加】按钮,如下图:

    image2017-11-2_16-2-57.png

    在数据集编辑对话框中,输入SQL语句:

    select * from 电力设备生产数据 order by 生产方式, 产品性质, 所属事业部, 月, 周

    验证查询语句后点击【确定】,保存数据集的定义。

    数据集的字段列表如下图:

    (2)实现思路

    数据集的原始数据如下图所示:

    期望的报表展示方式如下图:

    可以看到这种报表的主要特征:多层行头、多层列头、分类合计。

    实现思路可以概括为:

    (a)行分组:按照生产方式、产品性质、所属事业部、类别进行四级分组;

    (b)列分组:按照月份和周次进行二级分组;

    (c)行、列分组添加汇总。

    (3)添加矩表

    从左侧工具箱中拖放一个【矩表】,右键单击第二行的第一个单元格,此列代表数据行的行头,点击【行分组】-【子级分组】,如下图:

    添加一个子分组之后,矩表将增加一个新列。右键点击该新列的单元格,继续点击【行分组】-【子级分组】,直至矩表变为5列。

    右键点击矩表末列的首行单元格,该单元格代表动态表头,即根据数据动态生成的多个表格列的列头。选择【列分组】-【子级分组】,如下图:

    此时,矩表将变成一个3行5列的结构,如下图:

    针对前4列,合并第1、2行单元格。输入固定列头文字:生产方式、产品性质、所属事业部、类别。

    第5列的首行将显示月份,可将数据字段的日期内容,用下面的表达式转为yyyymm的年月形式:

      =Year(Fields!月.Value) * 100 + Month(Fields!月.Value)

    第5列的次行将显示周数,绑定数据库字段【周】即可。

    第3行的前4个单元格,分别绑定数据库字段:生成方式、产品性质、所属事业部、TYPE。

    第3行的最后一个单元格,将用于显示数值,设置为汇总数量的如下表达式:

      =Sum([QTY])

    设置完毕的效果如下图:

    (4)设置分组

    点击工具箱中的【分组管理】,展开分组树形目录,选中一个分组,在右侧设置选项中设置【分组条件】为某个字段,如下图:

    将4个行分组的分组条件分别设置为【生成方式】、【产品性质】、【所属事业部】、【TYPE】这四个字段的值,例如:=Fields!生产方式.Value

    将两个列分组的分组条件分别设置为【月】、【周】这两个字段的值。

    (5)添加分组合计

    右键单击分组单元格,选择【汇总操作】-【在分组后显示汇总】,如下图:

    对4级分组做同样的操作,矩表将为每个级别的汇总新添一个数据行。

    同样,对【月】和【周】两级列分组,也添加相应的汇总列。

    将【汇总】字样修改为合计,并合并单元格。

    添加汇总和和汇总列之后,会多出来一些数值单元,将这些数值单元格全部复制为 =Sum([QTY]) 表达式。

    设置完毕的矩表如下图:

    列头中,月份下面、周数旁边的【合计】为单月小计,可将“合计”字样改为表达式:=Year(Fields!月.Value) * 100 + Month(Fields!月.Value) & "小计" ,这个表达式的显示形式将是“月份小计”,例如 201509小计。

    行头中,各级合计都可以设置为【分类名+小计】的形式。如下图:

    (6)外观设置

    对标题行、行头、合计行设置不同的背景色,如下图:

    预览报表,效果如下图:

    至此,一个多层表头、多层列头、分级汇总的报表就设计完成了。

    定制培训加量全心送!凡在2017年12月31日之前,购买葡萄城控件团队授权企业授权的用户,不仅可以享受到优惠的价格,还可获赠葡萄城技术专家根据客户项目需求提供的定制培训服务。老客户推荐新客户成单,也将获得“客户推荐双重感恩礼”。

    点击此处,了解更多。

    转载请注明出自:葡萄城报表

  • 相关阅读:
    97. Interleaving String
    96. Unique Binary Search Trees
    95. Unique Binary Search Trees II
    94. Binary Tree Inorder Traversal
    odoo many2many字段 指定打开的form视图
    docker sentry 配置文件位置
    postgres 计算时差
    postgres 字符操作补位,字符切割
    postgres判断字符串是否为时间,数字
    odoo fields_view_get
  • 原文地址:https://www.cnblogs.com/zenmshuo/p/complex_header_report.html
Copyright © 2020-2023  润新知