2012-05-10 140 views
-1

我想有條件地顯示水晶報表。這意味着如果數據庫表的字段值=「真」,而不是僅顯示報表,否則不顯示報表。我想保護未經許可的用戶的水晶報告文件。如果我無法訪問源代碼,我該如何實現這一目標?顯示水晶報表有條件

+0

您是否將Crystal Reports與自定義應用程序(即擁有源代碼的應用程序)集成或者是否已通過BusinessObjects Enterprise發佈報告?還是另一種機制? – craig

+0

是的,我已經集成了Crystal Reports和VB6。 – hims056

回答

1

除非託管它的應用程序支持此功能,否則您將無法限制對Crystal Report的訪問。如果您有權訪問其源代碼,那麼您可以編碼所需的安全性。

否則,您將能夠做的最好的事情是限制數據。但是,這可能會使用許可證。

我會建議您閱讀應用程序文檔上的細小打印以查看查看報告是否確實使用了CR許可證。

**編輯**

既然你有訪問源代碼,只需隱藏/顯示生成的報告的基礎上,數據庫字段的值的UI元素。

1

這可能不是一個答案,但我們做類似的財產以後。我們有各種客戶使用我們的報告應用程序(在C#中完成並使用CR)。我們的大部分報告都適用於所有客戶,但也有一些客戶擁有自己的報告,這些報告僅針對他們的要求,對其他任何客戶都沒有意義。

我們通過對RPT設置幾個屬性來控制這一點。這就是我們所做的。 2)將Keyword屬性設置爲Customer = 123(這是我們數據庫中客戶的唯一編號)。 3)對於報告是通用,此屬性未設置並保留爲空。 4)我們的數據庫中有一個Reports表,名爲Customer。這用於檢查報告是通用還是特定的。

我認爲這不會有任何幫助,但我只是想分享。因爲這是我們使用數據庫值隱藏和顯示報表的原因。

+0

此外,這個問題是爲克雷格,隊友如何評論像你們這樣的問題,而不需要輸入你的答案空間。就像你在你的第一個評論有「你有沒有集成了一個自定義應用程序的Crystal Reports(即.......」 ..我要瘋了並且不可能找到它。所以必須使用你的答案空間。 – aMazing

+0

你需要獲得聲譽才能添加評論。請參閱http://stackoverflow.com/faq#reputation – hims056

2

如果應用程序級解決方案不可用,那麼嘗試創建一個SQL表達式字段以從數據庫表中獲取布爾值。不要在每個部分放置抑制公式,抑制數據庫值爲false時的部分。作爲禮節,您可能希望添加一個包含文本元素「此報告未獲得許可」的部分或類似的內容,僅當數據庫值爲true時纔會被抑制。這樣用戶就不會認爲空白頁出錯了。