2016-08-18 23 views
1

我有一個水晶報告,當我過濾它在我的一個表中的字符串它將放棄集合中的項目之一。主表格是V_PDAYPROD_CRW1,我過濾的列名爲MFGNO。如果我運行數據集不包括具體項目由於 - 而不是/在名稱

select mfgno 
from v_pdayprod_crw1 
where mfgno like 'SCA59-W%' 
group by mfgno 
order by mfgno 

我得到

SCA59-W 
SCA59-W-SUB 
SCA59-W/EU-SUB 
SCA59-W/UF 
SCA59-W/UF-SUB 

所以記錄選擇公式中,我添加

{V_PDAYPROD_CRW1.MFGNO} in "SCA59-W" to "SCA59-W/UF-SUB" 

期望得到上述所有記錄。但是,當我這樣做SCA59-W-SUB從報告中丟失。我得到的結果是

SCA59-W 
SCA59-W/EU-SUB 
SCA59-W/UF 
SCA59-W/UF-SUB 

我不得不選擇公式更改爲

{V_PDAYPROD_CRW1.MFGNO} like "SCA59-W*" 

爲了獲得SCA59-W-SUB展現出來,但是當我這樣做,我得到

SCA59-W 
SCA59-W-SUB 
SCA59-W/EU-SUB 
SCA59-W/UF 
SCA59-W/UF-SUB 

不幸的是我不能使用{V_PDAYPROD_CRW1.MFGNO} like "SCA59-W*",因爲報告需要有一個範圍,並且該範圍由我的用戶輸入。是否有一個有效範圍可以輸入,以便從我的手動查詢中獲得整個集合?

+0

是否可以使用'替換({} V_PDAYPROD_CRW1.MFGNO, 「/」, 「 - 」)'在選擇公式? – 4444

+1

@ 4444與「SCA59-W」中的「將({V_PDAYPROD_CRW1.MFGNO},」/「,」 - 「)替換爲」SCA59-W/UF-SUB「 – NathanOliver

+0

準確地說 - 如果仍然給你帶來麻煩,你可以嘗試'替換({V_PDAYPROD_CRW1.MFGNO},「W - 」,「W /」)'如果它總是在W後面, ) – 4444

回答

1

我看到你正在複雜的報告和公式。

儘管用戶給出範圍作爲輸入,但您不需要在報告中精確使用它,操作掌握在您的手中,您可以按照其工作方式進行操作。

我有一個小建議,希望它有幫助。

取兩個參數的輸入,並假定參數1始終有範圍的起點,參數2有範圍的終點。

所以,你的公式是:

{V_PDAYPROD_CRW1.MFGNO} like {Parameter1}&"*" 

上述選擇將給予的開始和結束範圍內的所有記錄,它包括參數2藏漢

編輯--------- -------------------------------------------------

好吧,我試了一下解決,你可以實現這個使用數組和子報告。

  1. 在主報告記錄選擇公式{V_PDAYPROD_CRW1.MFGNO} like {Parameter1}&"*"中使用它,它將檢索所有不需要的值。

現在將字段{V_PDAYPROD_CRW1.MFGNO}放在詳細信息部分,對它進行排序,以便我們可以一個接一個地存儲數據並丟棄休息和停留的詳細信息。

創建一個公式Required data並寫下面的代碼,並將其作爲最後一個細節。寫下面的代碼:

Shared Stringvar array storerequiredvalues; 
    storerequiredvalues:=storerequiredvalues+{V_PDAYPROD_CRW1.MFGNO}; 

1 

現在再創建一個公式Extract Data來提取所需的數據。放置公式公式後Required data

Shared Stringvar array storerequiredvalues; 
Local Numbervar i; 
Shared StringVar display; 

For i:=1 to UBound(storerequiredvalues) Do 
(
display:=display+storerequiredvalues[i]+chrw(13); 
if storerequiredvalues[i]={Parameter2}//Last value in range provided by user 
then 
exit for; 
); 

display 

現在創建一個子報告,並將其放置在細節部分並連結使用子報表創建公式鏈接

在子報表中創建一個公式Display data,寫下面的代碼:

Shared Stringvar display; 

display 

將公式顯示在屏幕上並預覽報告。

只有使用這種方法的約束是在主報告中檢索不需要的數據。

讓我知道櫃面任何問題

+1

問題在於它會超出範圍的結尾。如果用戶輸入'SCA59-W'和'SCA59-W-SUB',那麼他們將得到完整的數據集,這是不可預料的。 – NathanOliver

+0

確定'SCA59-W-SUB'後可能的組合是什麼? – Siva

+0

糟糕。我沒有把它設置正確。如果按照您的建議進行操作,並且我在「SCA59-W」到「SCA59-W/UF-SUB」和{V_PDAYPROD_CRW1.MFGNO}中有'不會返回'SCA59-W-SUB' – NathanOliver

相關問題