现在的位置: 首页 > 综合 > 正文

工作中使用的sql以及finereport报表工具

2013年01月08日 ⁄ 综合 ⁄ 共 2557字 ⁄ 字号 评论关闭

最近公司让开发统计报表,之前的报表是使用jxl工具开发的,这个工具是免费开源的,不易使用,不易维护。

最近公司买了帆软的finereport报表工具软件,开发非常高效,几个小时报表开发出来了,可以单独使用,也可以嵌入到我们自己的系统中。

 

功能非常强大,我在工作终于到的问题主要有:

1. 一个报表来自多个数据源,不能一个sql搞定。 多个数据源,嵌套绑定。

2.页面有空分页:删除没有填充数据的空白多余行列,以及多余的sheet页。

3.列数过多自动分页,请求连接加上:&__bypagesize__=false

4.其中一个功能是把数据查出来,导入到临时表中,再进行一次查询,这个功能请教finereport技术支持他们也没有办法,后来明白过来直接一个sql搞定,在下面有sql。

5.查询出来的是一些id号,通过他们的形态设置,关联到有意义的字典表中,查出具体值来。

6.数字连接,查出的结果需要连接到具体有意义的列表中。

7.显示行序号,可以在单元格中添加公式::输入公式=seq()

分页预览改变鼠标所在行的颜色  

二次开发 >> JavaScript >> FR的JS实例 >> 分页预览JS实例 >> 分页预览改变鼠标所在行的颜色禁用右键   

二次开发 >> JavaScript >> FR的JS实例 >> 分页预览JS实例 >> 禁用右键

获得分页预览单元格   次开发 >> JavaScript >> FR的JS实例 >> 分页预览JS实例 >> 获得分页预览单元格

自定义函数中获取公式所在单元格    二次开发 >> 引擎API >> 自定义函数 >> 自定义函数中获取公式所在单元格

Excel导出的多种方式      二次开发 >> 引擎API >> 导出API >> Excel导出的多种方式

后台批量导出Excel            二次开发 >> 引擎API >> 导出API >> 后台批量导出Excel

  页面设置  用户手册 >> 设计器操作指南 >> 模板 >> 页面设置

报表页眉与页脚 用户手册 >> 设计器操作指南 >> 模板 >> 报表页眉与页脚

 不分页显示        数据用户手册 >> 预览模式 >> 不分页显示数据

隐藏行             列用户手册 >> 单元格模型 >> 单元格样式 >> 隐藏行列

 单元格web显示                      用户手册 >> 单元格模型 >> 单元格Web属性 >> 单元格web显示

 数据显示格式-样式                 初级报表 >> 网格式报表-数据的扩展 >> 数据显示格式-样式

  添加预警,间隔背景色-条件          初级报表 >> 网格式报表-数据的扩展 >> 添加预警,间隔背景色-条件

 层次坐标         总结高级报表 >> 动态格间运算 >> 层次坐标总结

 数据钻取        高级报表 >> 数据钻取

  标题          高级报表 >> 高级图表 >> 图表样式 >> 标题

 巧用参数注入            高级报表 >> 报表性能优化 >> 巧用参数注入

除数被除数为零的处理            高级报表 >> 高级报表FAQ >> 除数被除数为零的处理

 

&A4%2 == 0 隔行换色

&A4%20 == 0 行后分页

len($$$) = 0 条件属性-如值长度为0,显示新值为0或者其他值。可以截取字符串。

比较好的例子:reportlets\doc\Advanced\PrintReport\SelectPrint.cpt

                            reportlets\demo\parameter\multivalue.cpt               隔行换色,页面顶端显示统计开始结束时间,页面末尾描述信息

multipage.cpt

--按操作用户,时间统计的客户重复投诉次数
select main.operateuserid,main.complainttype5  ,count(distinct main.mainid) as f1 from v_complaint main where  main.sendtime>'2013-02-01 00:00:00' and main.sendtime<'2013-02-28 23:59:59'
and main.operateuserid = 'zhijianjqr'
group by  main.operateuserid,main.complainttype5
having count(main.mainid)>=2

 

---按操作用户,时间,客户重复号 分别统计

select main.operateuserid,main.complainttype5, sum(case when main.num=2 then 1 else 0 end) as f2,sum(case when main.num=3 then 1 else 0 end) as f3,
 sum(case when main.num=4 then 1 else 0 end) as f4,sum(case when main.num=5 then 1 else 0 end) as f5,sum(case when main.num=6 then 1 else 0 end) as f6,
 sum(main.num) as f7 from
(
select main.operateuserid,main.complainttype5  ,main.customphone,count(main.mainid) as num  from v_complaint main where  main.sendtime>'2013-02-21 00:00:00' and main.sendtime<'2013-02-28 23:59:59'
and main.operateuserid = 'zhijianjqr'
group by  main.operateuserid,main.complainttype5,main.customphone
having count(main.mainid)>=2
) as main
  group by  main.operateuserid,main.complainttype5

抱歉!评论已关闭.