2009-11-02 40 views
5

使用Crystal Reports我試圖在所有標籤所在的標題中顯示數據庫字段的運行總計。Crystal Reports:全局變量運行總計不顯示在標題中

我已經試圖通過運行總(RTversion)放置成式場與要做到這一點以下:

Shared stringvar CurrentVers; 
CurrentVers := {#CurrentVers}; 

,然後在頁標題部分我有以下:

Shared stringvar CurrentVers; 
EvaluateAFter({#currentVers}); 
CurrentVers; 

與{#CurrentVers}運行第一大的數字。

這不正確嗎?

更新:目標是在標籤附近的標題中顯示最新版本,以顯示當前版本用於比較的內容。

+2

我的猜測是你正試圖在設置之前顯示一個值。 – 2009-11-02 16:48:24

+0

是不是EvaluateAfter()函數告訴它等待,直到運行總數#CurrentVers完成? – phill 2009-11-02 17:16:40

+0

+1好問題。雖然我知道這是一個常見問題,但我無法在此找到它,因此這將成爲人們的一個很好的參考。 – Dusty 2009-11-04 01:52:01

回答

4

根據我的經驗,Running-Total Fields只能在頁腳部分工作。

您將需要創建一個手動運行總計。

將公式字段添加到詳細信息部分,該部分用任何想要捕獲的內容填充全局變量。例如:

//use WhileReadingRecords if the values can be gathered as the report pulls in values from the database. Otherwise, use WhilePrintingRecords. 
WhileReadingRecords; 
Global Stringvar CurrentVers; 
//logic here to capture what you want 
CurrentVers:=... 

將另一個公式字段添加到標題部分。這兩行添加到它:

WhilePrintingRecords; 
Global Stringvar CurrentVers; 
+0

+1我相信這應該工作。 – Dusty 2009-11-04 01:48:12

+0

你如何做一個手動運行總數來篩選currentversion的最大值?您是否在細節部分使用了Maximum()函數?我試了很多,它給了我一個錯誤,說它不能用WhileReadingRecords()來評估。 – phill 2009-11-11 18:47:35

+0

我拿出WhileReadingRecords,設置currentvers:= ...並在標題中使用了EvaluateAfter()函數,它工作。 – phill 2009-11-11 21:15:08

0

如果{#CurrentVers}是一個正常運行的總字段,您應該可以直接將其放在頁眉中,而不是訴諸於其他公式。除非在{#CurrentVers}的組成中有一些不尋常的事情,而且「最大數量」運行總數不應該需要任何不尋常的東西,否則我不會在這裏看到任何公式字段的需要。

+0

也許我在這方面是錯誤的,但我不認爲只是將標題中的運行總數放在標題中會起作用,因爲報告是如何從上到下讀取的。這是我的頭頂,所以我可能是錯的。 – Dusty 2009-11-04 01:37:59

+0

他們顯示,但顯然他們只反映到那一點處理的記錄。但最初的問題還不清楚他們想要完成什麼。 – MartW 2009-11-04 07:56:35

1

我想通了..

我不得不子報表添加到主報表。我複製了主報告並將其重命名爲子報告。在子報表中,我添加了一個共享變量,然後將其傳遞給主報表。訣竅是將子報表放置在相同的組標題中,但在需要取消壓縮的部分上方放置一個單獨的部分。其實,我增加了以下內容:

新段(同組,我放在這裏報表;不抑制) 新科(同組 - 我放在這裏共享變量的值;不抑制) 原始斷面(同組具有報頭我需要基於運行總計抑制)

4

創建公式這樣

formula = Count ({Field to count},{GroupFieldName}) 

,並將其放置在組標頭部分。

0

你可以只用一個公式域解決這個問題:

WhilePrintingRecords; 
// Enter logic here e.g. 
// maximum({mytable.myfield}); 

WhilePrintingRecords;強制公式無法進行評估,直到所有的記錄都已經被從數據庫中讀取,因此,公式字段將顯示正確結果即使放在標題中也是如此。

0

我發現的關鍵是要傳遞的公式字段需要放在子報表上。我把它放在頁腳中,然後壓制它。

相關問題