2017-07-06 102 views
0

我的報告有2個必需的參數(Source; Location和2個可選的參數Access Type; Access Complication)我測試了這個查詢並證明它可以正常工作。如果我填充每個參數,報告也可以工作。報告的多個可選參數

沒有併發症param,所有併發症應該返回,但沒有病人。如果只選擇訪問類型,則應該獲得分配給所選訪問類型的所有併發症的患者列表。但是如果其中任何一個參數被省略,我會得到沒有記錄。

我試圖在選擇專家hasvalue配方,無果

(not hasValue({?AccessType}) OR {Command.AccessType} = {?AccessType}) 
and 
(not hasValue({?AccessComplication) OR {Command.AccessComplication} <= {?AccessComplication}) 

如果我在選擇專家設置一個新的公式訪問類型,然後訪問併發症上述hasvalue公式,然後取其我第二次覆蓋第一個。它們似乎不能彼此並排存在

回答

2

在公式中使用時,可選參數成爲強制參數。故事結局。

要實現類似的目標,請將您的參數作爲all*(表示SQL中的所有記錄)發送。在選擇所有數據之前,請檢查您的「可選」參數值,如果它們有all*,請在不包含這些參數的情況下編寫選擇公式。

僞代碼看起來應該像這樣2個強制性和2可選PARAMS:

if param3 = "all" or param4 = "all" 
    if param3 = "all" and param4 = "all" select data only with param1 and param 2 
    else 
     if param3 = "all" select data without param3 
     if param4 = "all" select data without param4 
else select data with all params 
+0

感謝KuKeC - 但鑑於報告我認爲這是比較容易讓所有PARAMS強制性的複雜性和用戶只需選擇所有的價值,如果那是什麼是理想的。 –

+0

這將是最好的結果,所以你不必查找所有參數值,只需全部選擇它們。4.希望它對你有所幫助 – KuKeC

+0

它的確如此 - 再次感謝。 –