2014-02-05 29 views
0

在visual studio 2010中,使用水晶報告。我想爲每個新值生成一份新報告。這樣所有的報告都可以一起打印。例如,如果我以PDF格式打印,它將成爲X個報告的一個pdf文件。但是,每份報告都應該看起來像是一份完全獨立的報告。所以它有自己獨特的頁面標題值,頁碼等。生成多個水晶報告作爲一個打印輸出或文件

我已經讓我們說一個訂單列表。該列表是所有訂單的子集。我想用代碼設置那個列表是什麼。然後,我希望Crystal Reports爲每個訂單生成一個報告,並讓它們一個接一個。

實施例:
-Order1頁1到3(共Order1唯一的數據,與自己的單獨的報告報頭&頁頭)
-Order2頁1到2(共Order1唯一的數據,與自己的單獨的報告報頭&頁頭)
-Order3 1至4頁(共Order1獨特的數據,有自己獨立的報表頁眉&頁頭)
-Etc ..

我想通了如何倍數值發送到報告中的一個參數,如果該字段是pu,這些將全部顯示t放入細節部分(Order1,Order2等)。如果該字段放入標題部分,則只顯示第一個值。但是,這並沒有爲我提供每個新價值的新報告。

我不知道如果參數是正確的選項或如何這樣做。分組看起來並不完全正確,因爲它只是在同一個報表中分組值。我不知道子報表是否是正確的,但我不需要總計打印出主報表。

編輯 更改標題,添加了一些信息。

+0

你想破解一個報告嗎? – craig

回答

0

我花了一段時間,但我想通弄明白了,這是我第一次嘗試使用水晶報表。 Crystal報告可能是相當具有挑戰性的項目實施!簡而言之,我試圖重新創建一個非常古老的水晶報告,它具有很多功能。

首先我試圖讓用戶決定是否打印一個訂單或幾個訂單,所有用戶在水晶報告生成之前定義。然後使用代碼將該數據發送到報告。這將允許用戶通過點擊一次按鈕來基本打印幾個不同的報告。

在開始和現在之間,你必須確保你連接到你的數據源。在我的情況是一個SQL數據庫。這給了我很多問題!也許是由於我們以前的ERP軟件不得不使用非常舊的sqlserv32.dll。我使用了OLE DB連接,選定的SQL Server Native Client 10.0(用於SQL Server 2008)。然後,我必須在每個客戶端上同時安裝Crystal Runtime 32bit和Crystal Runtime 64bit和sqlncli.msi,這樣Crystal Reports才能在客戶端工作站上運行。

我的代碼發送參數到水晶報告。

string OrderList = ""; 

OrderList += "18528-7" + ","; 
OrderList += "18527-2" + ","; 
OrderList += "18532-2" + ","; 

等等。用循環可以更好地完成,只是這樣做了測試目的。

//Set Crystal Report Parameter. This parameter must be created in crystal reports designer with the same name. The parameter type must match your code type, ie a string. 
CrystalReport11.SetParameterValue("@MyCrystalReportParameter", OrderList); 

在Crystal Reports(CR)中接受使用Select Expert的多值參數。我用我的訂單SQL領域和所使用的公式:

{MySQLTable.MySQLField} in split({[email protected]}, ",") 

在CR,你必須爲你創建發送的參數組,要創建多個報告。這些小組將允許在上次報告結束時爲您傳遞的每個價值都附上一份新報告,在我的案例中就是Orders。這爲每個新值(我的訂單號)提供了不同數據的頁眉和報告主體。

在CR中,我使用Group Expert並創建了一個Group。該組被設置爲我的SQL Order字段。

要爲每個不同的訂單報告重置頁碼我抑制了以下部分:報表標題,組頁眉,詳細信息部分,報表頁腳,頁腳。我使用頁眉作爲我的報告標題。我爲我的各個部分使用組頁腳,根據需要插入其他組頁腳。這些載我這顯示,如發貨單,零件清單等

在組專家對我的集團通過訂單數據庫字段我籤新頁面後1個可見集團和重複組附加數據的表格各個部分和子報表每頁上的標題。

章節專家在頁面選項卡上的最後組頁腳我選擇了重置頁碼後。在公共選項卡上檢查保持在一起也很重要。

對於每個包含我的動態數據表的子報表,這些數據表的增長量取決於數據庫中的數據行數。我右鍵點擊SubReport並選擇SubReport Links,選中該字段並將其添加到字段以鏈接至。在下面的兩個下拉列表中選擇它並確保在SubReprot中選擇基於字段的數據已被選中。在我的SubReport中,我不得不創建一個組以一定的方式來訂購我的數據,但是抑制了組部分,並且只使用了ReportHeader和Detail Sections。

0

您可以使用子報表執行此操作。但是,在子報表頁面頁眉/頁腳不可用。它們將在主報告中設置。如果子報表不適合您,您可以創建一個小應用程序,它將逐個運行報表並打印或將其導出爲PDF,並將結果合併爲一個大的PDF。市場上有第三方工具,可以在這種情況下使用。讓我知道如果這是一個選項,我會張貼鏈接。

主報告與子報表將是最簡單的解決方案,不會需要額外的軟件。