2011-12-04 53 views
2

我有一個滯後項目(vb6),它在項目執行文件(.exe)旁邊有幾個報告(.rpx)。當用戶執行.exe文件時,它將.rpx文件下載到用戶機器的指定本地文件夾並使用'LoadLayout'語句,它將所有.rpx報告文件格式轉換爲類型爲DDActiveReports2.ActiveReport的變量,並最終顯示它。使用ActiveReports pro 2:如何使用Subreport?

現在,我的問題是:我需要在主報告中嵌入一個子報告,上面說過。 子報表文件在vb項目不是旁邊exe文件。我如何在主報告和子報告之間建立關係,並根據主報告使用它們的一些數據爲子報告提供記錄集?

謝謝

回答

2

您加載父報表後,您需要將報表加載到一個變量,並運行父報表之前,報表控件的對象屬性設置爲該變量。例如:

' Load parent report: 
Dim rptParent As New ActiveReport 
rptParent.LoadLayout App.Path & "\myParentReport.rpx" 

' Load the subreport: 
Dim rptSubreport As New ActiveReport 
rptSubreport.LoadLayout App.Path & "\mySubReport.rpx" 

' * Initialize the subreport control by passing the actual report to run as a subreport: 
Set rptParentReport.Sections("Detail").Controls("MySubreportControl").Object = rptSubreport 

' Preview the parent report in the viewer: 
ARViewer21.ReportSource = rptParent 

現在,如果你不能硬編碼(在我上面的例子MySubreportControl)的報表文件名(mySubReport.rpx在我上面的例子)或報表控件的名字,那麼你可以通過所有控件編寫一個程序來循環父報告並查找每個子報告控件。然後,確保將子報表文件的名稱存儲在子報表控件的ReportName或Tag屬性中。然後,您可以在代碼中使用子報表控件動態加載/鏈接子報表文件。如果您需要某些特定的幫助,請回復您的問題作爲評論。

此外,ActiveReports文檔的COM版本可在線獲取herearchive),以防萬一可能有用。

Scott Willeke 
GrapeCity 
+0

謝謝你的鏈接:) – odiseh

+0

不幸的是,目前的鏈接返回「414請求URI太大」 –

+0

@JamesJensen的音符謝謝!請參閱以下鏈接(也添加到我上面的答案中):https://web.archive.org/web/20131223173955if_/http://www.datadynamics.com:80/Help/AR2Std/AR2Std_start.htm –