我有一個由兩個代碼組成的報告,我們將其稱爲Parent
和Child
。Crystal Reports組標題抑制公式不起作用
在頁面的頂部,在頁眉中,我想打印父母名稱。
報表中有許多列,當組中斷時,我想再次顯示新的子名稱以及列標題。報告應該是這個樣子:
Parent Name
Child Name
Col1 Col2 Col3 Col4 Col5 Col6
XXXX XXXX XXXX XXXX XXXX XXXX
XXXX XXXX XXXX XXXX XXXX XXXX
Child Total: XXXX
Child Name
Col1 Col2 Col3 Col4 Col5 Col6
XXXX XXXX XXXX XXXX XXXX XXXX
如果兒童組繞到了新的一頁,不過,我想再次顯示數據之前,重新顯示兒童名和列標題。
爲了實現這一點,我已經創建了包含以下對象一個頁標題:
Parent Name
Child Name
Col1 Col2 Col3 Col4 Col5 Col6
在頁頭標是可變RowReset
包含下面的公式:
WhilePrintingRecords;
Shared numberVar nRowCount := 0
然後,在每個細節行以及組頁腳1和組頁腳2部分,我有以下公式RowIncrement
公式:
WhilePrintingRecords;
Shared numberVar nRowCount := nRowCount + 1;
最後,在各組頭2節,我有以下條件抑制公式:
WhilePrintingRecords;
Shared numberVar nRowCount;
IF (PageNumber <> 1) AND (nRowCount = 0 OR nRowCount = 0.00) THEN
True
ELSE
False
什麼這個試圖做的是抑制兒童組頭,如果我們是一個全新的頁面上,並沒有詳細記錄已打印的是,以防止發生下列:
Parent Name ---+
Child Name +-- Page header
Col1 Col2 Col3 Col4 Col5 Col6 ---+
Child Name ---+-- Group header 2
Col1 Col2 Col3 Col4 Col5 Col6 ---+
出於某種原因,我無法弄清楚,約40頁到報告中,我得到完全,雖然;一個Page Header記錄,後跟一個Group header 2記錄。如果我創建一個包含條件禁止公式的公式,它將顯示TRUE
,但組標題仍然不會抑制。
如果我分解代碼,以便它只檢查其中一個條件(PageNumber <> 1
或),則組標題2將正確抑制。
我甚至試過這種打破東西:
WhilePrintingRecords;
Shared numberVar nRowCount;
booleanVar bSuppress:= False;
IF PageNumber <> 1 THEN bSuppress:= True;
IF (bSuppress) THEN (IF nRowCount = 0 THEN True ELSE False);
它也顯示在屏幕上時顯示True
,但未能抑制組頭。
我在這裏做錯了什麼?我可以採取更好的方法嗎?
你知道嗎,這真的很尷尬 - 不知何故,我從未注意到複選框在Group Options對話框,我正在尋找類似於Format Group選項的東西,它仍然不能解釋代碼爲什麼不起作用,但我很樂意繼續前進。 – LittleBobbyTables 2010-10-29 14:50:53
我很高興它爲你工作。在某些情況下,我曾經使用過像在內置屬性並未完全切斷它的情況下使用的變量,並且使它正常工作始終是一場噩夢。 – Ray 2010-10-29 15:36:20