zoukankan      html  css  js  c++  java
  • 报表设计技巧交叉报表模板

    传统的报表开发文章核心都是在介绍如何设置报表格式,标题、字段、如何获取数据什么的。这只是报表设计的入门而已,此文不在此论述。此文只论述批量设计报表的技巧 - 交叉报表模板。
    传统思想看来,开发每张报表时都需要设计一张报表文件,这似乎是合情合理的。但在实际开发中,这种做法是极端耗费精力的(此后省略500字),反正我是不愿意这么做。
    这个方法也是同事教我的,可采用交叉报表来简化报表设计步骤,在此借花献佛吧:

    以crystal report为例(java的可试试jasper)
    (1)预先定义水晶报表交叉报表模板。如:
        cross_1x1.rpt
        cross_2x1.rpt
        cross_3x1.rpt
        cross_2x2.rpt
        ....
    (2)这些报表模板的字段名写死,如:
        column1
        column2
        column3
        column4
        column5
        ...
        value
    (3)采用推模式为报表提供数据
        用代码获取数据(注意字段和报表模板的字段一致),再将数据推给水晶报表展示
        (个人认为拉模式是相当鸡肋的,这种方法将数据获取的步骤写死在报表文件里面,在实际应用中相当的不灵活)

    效果:
    (1)如以下数据:
        column1      column2     value
        瑞安         电话        1000
        瑞安         宽带        2000
        温州         电话        3000
        温州         宽带        4000
        ...
    (2)使用交叉报表模板 cross_1x1.rpt 展示效果为:
                  电话       宽带     合计
        瑞安      1000       2000     3000
        温州      3000       4000     7000
        合计      4000       6000     10000


    故,报表开发人员的工作可简化为:
    (1)设置报表条件:这个步骤也可以用配置文件自动生成
    (2)获取报表数据:根据传递用户设置的条件获取数据
    (3)指定报表模板
    这样,开发人员工作重心就可以移到获取数据上面,无需和UI打交道,可大大提高了报表设计的工作效率,这在实际工作中是相当便利的。

  • 相关阅读:
    Web开发学习之路--Eclipse+Tomcat+mysql之初体验
    Android必知必会-Stetho调试工具
    Android开发学习之路--NDK、JNI之初体验
    OpenMP基础----以图像处理中的问题为例
    leetcode 2 Add Two Numbers
    Java在linux下调用C/C++生成的so文件
    OpenCV特征点检测匹配图像-----添加包围盒
    [POJ 1442] Black Box
    [POJ 2019] Cornfields
    [HDU 1806] Frequent values
  • 原文地址:https://www.cnblogs.com/surfsky/p/1459154.html
Copyright © 2011-2022 走看看