2011-11-28 70 views
0

我正在構建一個Web前端,用於使用Business Objects SDK for .NET訪問Business Objects報表。我可以通過網上提供的稀疏文檔和論壇帖子來討論該主題的95%的業務需求。我最後的障礙在於使用參數化報告。我們的業務在報告中有兩個參數,最終用戶只需填寫其中一個參數。收集和清理這些數據非常簡單,但無論如何將空值參數傳遞給報告,我都不會收到任何數據。如果兩個參數都填充了,我會得到預期的數據。在單步執行Visual Studio中的代碼時,我會看到每當BusinessObjects返回一個空值參數時,它將顯示爲空字符串(「」)。我曾嘗試將此作爲參數值傳遞,並嘗試將參數賦值爲null。報告安排並運行後,這些選項都不會返回結果。我在下面使用我已經採用的每種方法都有一個我的參數賦值代碼示例(我們需要檢查字符串值爲「null」,因爲用戶請求輸入「null」並將其傳遞給報告)。這些都不會產生包含數據的報告。如何使用Business Objects SDK將空值傳遞給Business Objects報表中的可選參數?

sVal.Value = param.ParameterValue != "null" ? param.ParameterValue : String.Empty; 
sVal.Value = param.ParameterValue != "null" ? param.ParameterValue : ""; 
sVal.Value = param.ParameterValue != "null" ? param.ParameterValue : null; 

是否有企業服務器使用,表示空一個特定的值,如需要日期被包裹在日期()?

編輯:我需要複製在InfoView中看到的功能: Image of null parameter option in InfoView

+0

您是否正在使用Oracle存儲過程? – craig

回答

1

在Web Intelligence中,默認情況下,所有的提示是必需的,你必須通過SDK提供了它的價值。從BusinessObjects XI R3開始,可以將報告中的提示實際配置爲可選。該配置由報告編寫者完成。如果提示是可選的,那麼您可以選擇在使用SDK時不設置提示值。

到具有可選的提示的另一種方法是使提示「匹配模式」,或者如果它是一個日期,計算出的默認值。當提示符是可選的並且「在列表中」時,則可以將該值設置爲「%」,而對於某個日期,該值設置爲默認值。

+0

謝謝shrub34 - 也許我應該澄清 - 在我的特殊用例中,參數是否爲可選參數並不重要。我的具體問題是,當傳遞一個參數時,我無法給它一個null值並讓報告返回結果。即如果報告有兩個參數「foo」和「bar」,我需要能夠通過foo =「value」和bar =「null」。在InfoView中,用戶可以選擇將任何一個值設置爲null,並返回所有非空值結果。如果我通過sdk將param設置爲null,那麼報告將返回空值,而不管我上面的各種「空」風格。 – Tuck

+0

我已經添加了InfoView的屏幕截圖,以展示我需要複製的功能。 – Tuck

+0

好吧,我同意我的回答沒有提供幫助。我從未見過「設置爲空」選項。我對你想要實現的東西做了一個錯誤的假設。該報告是Web Intelligence還是Crystal報告?如果是Crystal添加標籤可能有助於找到答案。 – shrub34

相關問題