首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

老有关问题:PB报表控件,报表有关问题.

2012-02-22 
老问题:PB报表控件,报表问题...以前没有用过报表控件,原因是PB Datawindows自身的功能已经很强大了。可是,

老问题:PB报表控件,报表问题...
以前没有用过报表控件,原因是PB Datawindows自身的功能已经很强大了。

可是,最近遇到一些新问题,用户提出了比较麻烦的自定义报表的功能需求,如下:

一个设备有许多的测量点,也还有一些控制点;
有许多类似(同类)的设备;
 (例如,一个变电站有几条进线,有10多条出线,它们都需要对各项电流Ia,Ib,Ic,Io,电功率P,Q,电压Uab,Uac,Ubc等进行测量)
报表需要检出某天的整时(按小时抽样或统计的值),或某月(按天统计的值),或年(按月统计的值)。

制作,日/月/年报表

用户(工程部)需要自己设计报表,可以从这些测量量中,选择不同的组合成新的报表,而且组合包括设备/测量量

例如:
  | 西二旗支路 | 西三旗支路 |
  Ia Ib Ic P Q Uab F Ia Ib Ic P Q Uab F 
1  
2
3

21
22
23

类似这样的格式报表,需要由工程部自己能够制作报表。

请指导。。。 有例子或控件代码最好。

[解决办法]
一个最简单的办法就是你制作一个最大最全的报表(因为貌似报表很简单,grid的就可以)
用户决定哪些列显示,你把不显示的visible改一下就好了。
或者你教会工程部那些用户怎么用pb,你就可以换份工作了。
[解决办法]
哦,你做的时候,西一旗,西二旗,西三旗全坐上(应该是有限个吧),
然后隐藏西二旗不行吗?我觉得这种东西最好不要做到一个dw里,不是不可以,
而是没那个必要,或者你也可以用openuserobject,要哪个齐,显示对应的uo啥的。
[解决办法]
这个应该直接用SQL语句写好,然后放到定制的DW中.

例如:

SQL code
一个按小时统计的例比如有一个表timeTable,有字段id,score,inputDate.数据如下  id       score    inputDate  1        2         '2007-4-5 3:33:33'  2        1         '2007-4-5 4:33:33'  3        4         '2007-3-5 3:33:33'  4        2         '2007-4-2 2:33:33'我要按时间分组统计score,结果如下0:00-1:00   01:00-2:00   02:00-3:00   23:00-4:00   64:00-5:00   15:00-6:00   0....23:00-24:00 0declare @a table(id int, score int, inputDate smalldatetime)insert @a select 1, 2, '2007-4-5 3:33:33'union all select 2, 1, '2007-4-5 4:33:33'union all select 3, 4, '2007-3-5 3:33:33'union all select 4, 2, '2007-4-2 2:33:33'select right(100+a,2)+':00-'+right(100+b,2)+':00',sum(case when datepart(hour,inputdate) >=a and datepart(hour,inputdate)<b then score else 0 end) from @a a ,(select 0 a,1 b union all select  1,2union all select  2,3union all select  3,4union all select  4,5union all select  5,6union all select  6,7union all select  7,8union all select  8,9union all select  9,10union all select  10,11union all select  11,12union all select  12,13union all select  13,14union all select  14,15union all select  15,16union all select  16,17union all select  17,18union all select  18,19union all select  19,20union all select  20,21union all select  21,22union all select  22,23union all select  23,24)aagroup by right(100+a,2)+':00-'+right(100+b,2)+':00'--------------- ----------- 00:00-01:00     001:00-02:00     002:00-03:00     203:00-04:00     604:00-05:00     105:00-06:00     006:00-07:00     007:00-08:00     008:00-09:00     009:00-10:00     010:00-11:00     011:00-12:00     012:00-13:00     013:00-14:00     014:00-15:00     015:00-16:00     016:00-17:00     017:00-18:00     018:00-19:00     019:00-20:00     020:00-21:00     021:00-22:00     022:00-23:00     023:00-24:00     0(所影响的行数为 24 行) 

热点排行