最近忙于用水晶报表来设计各种报表,都是采用push模式
设计一个报表的基本情况是这样的:
1 创建一个Dataset
2 在该DataSet中手工创建一个或多个表结构,纯手工创建;
3 创建一个rtp文件;
4 通过DataBaseExpert导入刚才创建的DataSet;
5 在报表设计的过程中使用这个数据集;
现在我有一个报表的格式是这样的,所以我打算在DataSet中为A,B,C三相各创建一个表。
参数 |
A相 |
B相 |
C相 |
|||||||||||||
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
||
总有功(kW) |
RowName;
MaxValue float;
MaxValueTime DateTime;
MinValue float;
AvgValue float;
ProValue float;
在将这个数据集导入到rtp文件的过程中,expert会要求关联,第一次我把所有的这些link都删除了。虽然删除了关联,可是这些数据集还是可以添加到rpt文件中。但是在报表设计好并运行的过程中问题就出现了。
假如现在A表的值为以下两列:
总有功(kW), 100, 2006-11-11 22:22:22, 10, 50, 75
总有功(kW), 100, 2006-11-11 22:22:22, 10, 50, 75
B表和C表的值也相同,按照正常来说,应该显示为
参数 |
A相 |
B相 |
C相 |
|||||||||||||
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
||
总有功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
|
总无功(kVar) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
可是实际上却显示为,共为8行:
参数 |
A相 |
B相 |
C相 |
|||||||||||||
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
||
总有功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
|
总无功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
总有功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
|
总无功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
总有功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
|
总无功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
总有功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
|
总无功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
于是我怀疑是因为在database expert导入Dataset的过程中我删除了link的缘故,所以我决定重新导入Dataset;
首先通过database expert删除原来导入的dataset,然后在DataSet中将Row设置为主键,然后用Database expert重新导入这个DataSet,在设置关联的时候,把其他所有的关联都删除,只剩下主键之间的关联。
然后再运行原来的程序,就出现了预期中的结果:
参数 |
A相 |
B相 |
C相 |
|||||||||||||
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
最大值 |
最大值时刻 |
最小值 |
平均值 |
95%概 率值 |
||
总有功(kW) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
|
总无功(kVar) |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |
100 |
2006-11-11 22:22:22 |
10 |
50 |
100 |