2010-08-17 126 views
0

所以我的問題是我創建了一個按經銷商編號分組的報表。在這個小組中,我創建了總計來總結每個經銷商的數量,然後只顯示其總量。我將我的所有變量重置爲組頭中的0。當我在CR中查看報告時,它看起來很好。但通過查看器或導出爲Excel數據只能顯示持續運行總數。看起來好像它不在組頭中重置爲0。任何想法將不勝感激。如果查看器正確顯示在CR中,可能會出現問題嗎?水晶報表和查看器

報告部首:

whileprintingrecords; 
global numbervar volume := 0; 

在組的節: 公式字段

if Month({appl_trans.trans-dt}) = 1 
and Year({appl_trans.trans-dt}) = Year(CurrentDate) then (
if previousisnull({contract1.contract-no}) then 
    global numbervar volume := {contract1.cost-base}; 
if {contract1.contract-no} <> previous({contract1.contract-no}) then 
    global numbervar volume := volume + {contract1.cost-base} 
else 
    global numbervar volume := volume 
); 

在組頭:

whileprintingrecords; 
global numbervar volume := 0; 

在組尾:公式字段

whileprintingrecords; 
global numbervar volume := volume; 

回答

0

你的變量用法過於複雜,而CR可能會因爲它而做一些奇怪的事情。徹底擺脫報告標題中的公式 - 您已經在組標題中重新初始化變量。接着,在細節部分式改變到這樣的事情:

whileprintingrecords; 
global numbervar volume; 
if (Month({appl_trans.trans-dt}) = 1 
and Year({appl_trans.trans-dt}) = Year(CurrentDate) 
    and {contract1.contract-no} <> previous({contract1.contract-no}) then 
     volume := volume + {contract1.cost-base};

保持式中的組頭,因爲它是。然後用這個公式在頁腳中顯示音量:

whileprintingrecords; 
global numbervar volume; 
volume

你通常只希望每個公式一次聲明一個變量,這意味着只有一個「全球numbervar x」和做它爲每一個公式在使用這個變量。你也永遠不需要爲自己設置一個變量,因爲它實際上不會做任何事情。

完成此操作的另一種方法可能比使用公式更簡單,因爲您可以只添加運行總計字段以總計{contract1.cost-base},評估{contract1.contract-no}的更改並在執行後重置每組。或者,另一種方法是在{contract1.contract-no}中添加另一個內部分組,並在組頁腳中插入摘要字段。無論哪種方式將完成工作。

+0

我認爲這與公式聲明有關。感謝您的建議。但是這並沒有解決問題。至於你的兩個建議:#1先嚐試了這種方式,但我必須爲每個月的音量創建一個字段,我只是簡單地解釋了這個問題。我可以在正在運行的總字段中指定,對變化進行評估並在更改公式時重置以僅檢索月份= x和年份=年份(當前日期)? #2可能工作,我仍然需要指定月份= x和年=年(當前日期)......任何想法如何實現?我難倒了 – 2010-08-18 14:38:01

+0

如果你想要每個經銷商的每月交易量,你可以創建一個公式,如果年份是當前的話,可以從trans-dt返回該月份。然後,爲每個月創建一個包含條目的數組數組,並在您的詳細信息部分中有選擇地更新它們(使用基於剛創建的月份公式的選擇語句)。現在,在每個組頁腳中,每個數組條目中的當前經銷商都會有一個月的數量(我正在對您的數據模型進行一些假設)。 在這種情況下使用跑步總數的問題是,你每個月都需要一個,這很糟糕,但你可以做到。 – Ryan 2010-08-18 17:08:52

+0

是的,那可以解決。我會試試看。同樣的呼吸,將以這種方式改變我的報告,與我現在所擁有的不同。我創建的是顯示適當的值。看起來,當我在Cr Viewer中查看它或導出到Excel數據時,它顯示不同的值,然後它在CR中。 – 2010-08-18 17:40:41