由於DB為MYSQL資料庫是用ODBC來連接做水晶報表,預覽及Push模式下漢字都會是亂碼,所以偶採用Pull模式
偶在DB中有2張表,這兩張表之間都有一個欄位作共同的關聯,由於每張表筆數可能會有多筆,在用水晶報表處理時就要用到子報表
部分相關代碼如下:
1
private hierarchicalGroupingReport as reportdocument
2
dim dt1,dt2 as datatable
3![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
hierarchicalGroupingReport=new reportdocument
5
hierarchicalGroupingReport.Load(Server.MapPath("cr8202.rpt"))
hierarchicalGroupingReport.SetDataSource(dt)
6![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
Dim crsections As Sections = hierarchicalGroupingReport.ReportDefinition.Sections
8
Dim crsection As Section
9
Dim crreportobjects As ReportObjects
10
Dim crreportobject As ReportObject
11
Dim crsubreportobject As SubreportObject
12
Dim crsubreportdocument As ReportDocument = Nothing
13![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
For Each crsection In crsections
15
crreportobjects = crsection.ReportObjects
16
For Each crreportobject In crreportobjects
17
If crreportobject.Kind = ReportObjectKind.SubreportObject Then
18
crsubreportobject = CType(crreportobject, SubreportObject)
crsubreportdocument = crsubreportobject.OpenSubreport(crsubreportobject.SubreportName)
19
crsubreportdocument.SetDataSource(dt1)
20
End If
21
Next
22
Next
23![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
crsubreportdocument.Dispose()
26
dt1.dispose()
27
dt2.dispose()
page_unload事件中:
28
hierarchicalGroupingReport.dispose()'此句可以解除或者避免VS2005下水晶報表連續使用次數限制
還有一點要補充的,子報表中顯示的欄位如果秀不出來,請改用公式欄位![](https://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emidea.gif)
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](https://www.cnblogs.com/Images/dot.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
hierarchicalGroupingReport.SetDataSource(dt)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
crsubreportdocument = crsubreportobject.OpenSubreport(crsubreportobject.SubreportName)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
26
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
27
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
page_unload事件中:
28
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
還有一點要補充的,子報表中顯示的欄位如果秀不出來,請改用公式欄位
![](https://www.cnblogs.com/CuteSoft_Client/CuteEditor/images/emidea.gif)