• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Kevin Cheng's Yard
电脑是我的老婆,编程是我的灵魂,代码是我的语言,按键是我在歌唱。
https://github.com/surfsky/
博客园    首页    新随笔    联系   管理    订阅  订阅

报表设计技巧-交叉报表模板

传统的报表开发文章核心都是在介绍如何设置报表格式,标题、字段、如何获取数据什么的。这只是报表设计的入门而已,此文不在此论述。此文只论述批量设计报表的技巧 - 交叉报表模板。
传统思想看来,开发每张报表时都需要设计一张报表文件,这似乎是合情合理的。但在实际开发中,这种做法是极端耗费精力的(此后省略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打交道,可大大提高了报表设计的工作效率,这在实际工作中是相当便利的。

 

转载请注明出处:http://surfsky.cnblogs.com 

posted @ 2009-05-18 10:00  surfsky  阅读(3812)  评论(11)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3