2008-08-21 80 views
12

如果您有相同報告(.rpt)的兩個版本,並且您想確定確切的區別是什麼,那麼最好的方法是什麼?我已經看到了一些商業工具可以做到這一點,但我並不太感興趣爲現金應付相對簡單的事情。我可以綁定到Crystal API並簡單列出每個字段的所有屬性或其他內容嗎?請有人告訴我,有一個開放源代碼項目是這樣做的... @ :-)區分Crystal Reports的最佳方式是什麼?

@Kogus,不會區分輸出作爲文本隱藏任何格式差異?

@ladoucep,我似乎沒有能夠導出報告沒有數據。

+1

剛剛通過另一種方式進行比較,特別是查找隱藏在各種報表對象的所有屬性中的代碼更改 - 以「報表定義(TXT)」格式導出報表 – SQLFox 2014-05-16 15:43:18

回答

8

我可以掛接到水晶API和 簡單地列出所有的 每一個領域或某事的性質?請 有人告訴我,有一個開放 代碼項目的地方,確實 這個... @ :-)

其實也有,這樣的API。我寫了一個VB6應用程序來完成你所要求的和更多的事情。我想我甚至將它遷移到VB.Net。由於這是爲了我自己的用途,我沒有花太多時間去做「打磨」。我一直打算髮布它,但我沒有時間......

過去我使用的另一種方法是創建一個Access應用程序來幫助管理大型的報表開發項目。它的許多功能之一包括提取報表使用的表的功能,以及其命令和SQL表達式使用的SQL語句。它的目的是從全球角度給出哪些報告使用哪些表格。我可能還是有它的地方......

**編輯** 1

的BusinessObjects Enterprise XI(R?)有一個名爲 '元管理器' 功能。它將定期檢查存儲庫的內容並將結果保存到數據庫。它使用報告 - 應用程序服務(RAS)來生成元數據。當然,這是一個額外的5位數字許可證。

**編輯2 **

考慮使用PowerShell中做的工作:PsCrystal

+1

如果您認爲您的代碼支持Crystal Reports 11,那麼我會有興趣獲得對您描述的兩個程序的訪問權限。 – LeBleu 2009-11-13 15:46:51

1

一種有用的技術是將兩種版本的報告輸出爲純文本,然後比較這些輸出。

您可以使用水晶報表組件來編寫某些內容來描述報表的每個屬性,就像您所描述的那樣。那麼你可以輸出爲文字,而diff 那些。我不知道有任何開源工具可以爲你做,但編寫它並不難。

@question在後: 版本比較的輸出,如果相對位置發生了變化只會顯示格式更改。舉例來說,如果我有這樣的:

前: 名字,姓氏,編輯部地址

後: 姓氏,姓名,地址

那麼這將顯示爲差異。

但是,如果我剛剛將地址列碰到幾個像素,或者將其從純文本更改爲粗體,那麼您是對的,那不會顯示出來。

+0

將每個報表導出爲報表定義格式基於文本的文件)和使用任何文本比較工具比較比較或比較比較報告 – marak 2015-08-31 23:18:27

1

過去曾經效果很好的一種技術是根據相同的數據打印出兩個版本的報告。然後,我會從每個版本中拿出第一頁,將其中一個放在另一個的上面(重要的是不要將它們混合在一起)並將它們保持在一個窗口中。通常很容易發現任何差異,這些差異可以用適當的書寫工具(例如鉛筆)手動註釋。重複報告中的每個頁面。

不可否認,對於大型報告而言,這可能相當耗時且容易出錯,但這些限制可以通過耐心和細心來克服。

+2

哈,很好 - 低技術(或沒有技術)的方式往往是最好的! – ninesided 2008-10-29 22:40:36

相關問題