2012-10-02 36 views
6

我正在使用Crystal Reports 9 - 我已經構建了一個基本上使用存儲過程的報表,並具有3個參數:A,B,C,它們也是報表中的提示。我也有提示D和E,其中不是傳遞給存儲過程。當我正常運行此報告時(通過CR9),提示以正確的和預期的順序顯示:A,B,C,D,E。但是,當使用Crystal Reports查看器時,我的客戶遇到奇怪的行爲:提示順序顯示是:D,E,A,B,C。我不確定這是否是一個錯誤:我嘗試重新添加提示,方法是先刪除所有提示,然後按照我希望的順序重新添加提示出現,但他們仍然看到不正確的順序。我也試圖讓他們更新他們的查看器版本,他們也看到了同樣的問題。使用存儲過程時的參數順序問題

另請注意,它沒有按照字母順序排列promts(在查看器中)。我的例子僅僅是爲了爭論。

爲什麼觀衆會以不同的順序顯示提示?當我鏈接到存儲過程時,這個問題似乎只存在。

謝謝。

回答

0

我不知道這是否在您的報告是可能的,但嘗試這裏的一對夫婦的建議:

  1. 使用組
  2. 使用一系列的子報告(每個提示「A」之後)
+1

但這會如何影響提示順序? – Mani5556

+0

使用子報告將允許您按照您希望的順序提取每個提示所需的信息。因此,提示「A」會給你組內主要報告的信息,「B」將是它自己在組頁腳「A」內的子報告1,「C」將是它自己的子報告組頁腳「A」2 ... –

+0

我正在討論在運行報表之前實際呈現給用戶的提示順序(而不是報表本身的外觀順序) – Mani5556

0

我想你只是從Database Expert中選擇Stored Procedure並點擊它,設置報告源。

,你可以,而不是:

  • 打開Database Expert
  • 點擊Add Command
  • 添加不需要的由存儲你以正確的順序(A,B,C,但也d,E所需要的參數從右側面板
  • 類型與此類似Exec MyStoredProcedure ('{?ParamA}','{?ParamB}', {?ParamC});
    [如果參數是字符串(至尊,ParamB)你定義一個查詢過程) ED與'封裝,如果是數字(ParamC)你不必封裝]

參數爲:

  • 提示用戶正確的順序
  • 如果需要傳遞到存儲過程
  • 可用內部報告邏輯,如果需要
+0

這是一個非常好的建議:不幸的是,有一些限制,例如我無法自己對參數進行重新排序(它們似乎是強制按字母順序排列),這有點讓人失望。正如我所說的A,B,C,D,E是一個例子,它們不會按字母順序顯示。 – Mani5556

+0

如果不使用它,Param D和Param E也會被刪除。 – Mani5556

+0

這只是一個解決方法,但你可以爲我們一個PARAMS前綴,直到你找到一個解決方案:1- ParamB,2- ParamE,3-ParamA等 –