2010-07-31 57 views
0

我們創建了一個Crystal Report查看器應用程序來容納我們所有的公司報告。它的構建方式使得我們無論何時添加,修改或刪除報告,查看器應用程序本身都不需要更改。查看器應用程序完全由XML配置文件驅動,該文件告訴它哪些報告可用,它們在哪裏,連接信息等。我們也希望保持這種方式。當我們添加新報告時,我們不希望更新每個人的查看器應用程序。Crystal 2008 - 我可以在運行時以編程方式訪問SQL語句嗎?

問題是Crystal直接與我們的數據庫對話,我們寧願它沒有。因此,對於每個報告,查看者需要查詢數據庫以檢索每個報告所需的數據。問題是我們的許多報告都允許用戶輸入大量的過濾標準。理想情況下,我們希望能夠做的事情是讓Crystal提示用戶輸入他們的過濾條件,就像它當前所做的那樣,然後能夠以某種方式獲取它將發送到數據庫的SQL語句,並將其傳遞給自己給DB,並告訴Crystal不要。觀衆將隨後向該報告提供數據。

有誰知道這是否可以做到?我們考慮的另一種方法是讓查看器提示用戶輸入過濾條件,然後構建SQL語句。但是,每個報告都會成爲一個C#編碼項目,並向觀衆提供更新。我們正試圖避免這種情況。

謝謝。

+0

所以一方面你想獲得它將發送到數據庫的SQL語句並將它傳遞給數據庫,但另一方面你不想編寫任何代碼來處理它?如果您不打算編寫任何代碼來處理它,那麼獲取SQL語句有什麼意義? – 2010-08-02 10:53:59

回答

0

有趣的方法。我只做過相反的事情。

通常人們喜歡使用Crystal客戶端構建自己的報表。報告連接到報告中指定的數據源。

使用.NET來查詢報表需求,設置參數和公式,然後查看報表是小菜一碟。

無論如何,只有兩種方法,我知道所謂的「拉」和「推」。拉是我剛纔所描述的。 Push是您所描述的您考慮的解​​決方案,但它會涉及每個報告的編碼。

恐怕你想做的事從未做過。不過,我會推薦「拉」的方法。它對於我來說非常合適,擁有數十個用戶和數百個報告。

相關問題