.net 的水晶报表在push模式下的多表关联问题

最近忙于用水晶报表来设计各种报表,都是采用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

你可能感兴趣的:(.net)