2011-09-08 52 views
0

我的問題是:如何在水晶報表中製作動態頁眉

該報告迫使我有一個包含4個字段的頁眉部分。但問題是這些字段中的一個(例如f1)應隱藏在第一個詳細信息部分的頁面中,並顯示在其他一些詳細信息部分中。

例如假設第一個細節部分(或我在項目中使用的子報告)需要d1頁和第二個細節部分(或我在項目中使用的子報告)需要d2個頁面,現在爲: p1字段應該是隱藏在第一D1頁眉和明年D2頁眉顯示

的關鍵點是決定基於像名稱或部分性能......但有沒有這樣的晶體參數報告公式車間

我應該如何解決這個問題 我正在使用水晶報表13.

+0

你能澄清你想完成什麼嗎?您是否希望頁面標題的第一個版本顯示每個組的第一個記錄,以及隨後頁面的不同版本?然後在一個新組中,再次打印第一個版本,然後剩下的?如果是這樣,你是否在每個組的最後開始一個新頁面? – paulmelnikow

回答

0

可能您可以使用公式的組合,所有公式應在打印時進行評估(WhilePrintingReocrds();函數作爲公式的第一行)。

在D1段,並在D2部分的底部,你將看不見的公式,設置了一些公共變量,就像上面:

WhilePrintingReocrds(); 
BooleanVar show_header_f1 := true; 
'' 

(也許你需要使用報告標題相同的公式了。) 在D2部分的頂部和D1部分的底部放置另一個看不見的公式,這將清除相同變量:

WhilePrintingReocrds(); 
BooleanVar show_header_f1 := false; 
'' 

在用於報頭字段F1抑制式編寫下一個函數:

WhilePrintingReocrds(); 
Not BooleanVar show_header_f1 

可能存在語法錯誤,但我希望你明白。可能你需要玩這些公式的位置來創建請求的行爲。

+0

非常感謝您的回覆,我嘗試了您的想法:通過報告標題中的第一個公式字段,我定義了一個boolean標誌,等於false。在第一個細節部分的開始,我把我的第二個公式字段打開標誌,並通過使用第三個公式字段在該部分結束時,我將標誌關閉。我用WhilePrintingReocrds();在我所有的公式領域的開始。我根據定義的布爾標誌決定我的主要領域。但它只是爲第一次或第二次運行而工作,我無法理解現在不起作用的問題是什麼,我的解決方案有什麼問題? – hamed

+0

可能有些部分溢出到下一頁或類似部分。在正確的時刻進行公式評估往往是相當棘手的;你可以使用EvaluateAfter()函數來改變計算順序。另一種方法是使用PageNumber函數(如果您事先知道,您的詳細信息部分佔用了多少頁面),那麼您可能需要在每組開始時重置頁面編號。不幸的是,我不能給出更詳細的提示 - 這需要試驗你的數據報告。 – Arvo