原創(chuàng)|其它|編輯:郝浩|2012-09-13 17:43:54.000|閱讀 899 次
概述:用XtraReport做報(bào)表是一件非常方便的事情。但是有時(shí)候因?yàn)椴皇煜ひ矔?huì)遇到一些不知道怎么處理的事情。比如報(bào)表要求同一個(gè)部門,只需要顯示一次,但是如果這個(gè)部門跨頁(yè)了,要在下一頁(yè)第一行再顯示一次。下面就是這類問(wèn)題的解決辦法。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
用DevExpress XtraReports做報(bào)表是一件非常方便的事情。但是有時(shí)候因?yàn)椴皇煜ひ矔?huì)遇到一些不知道怎么處理的事情。比如我這次遇到的關(guān)于部門組合的問(wèn)題。
要做一個(gè)員工基本薪資名冊(cè)的報(bào)表,根據(jù)部門來(lái)排序。
具體圖片如下:
其實(shí)數(shù)據(jù)很好摟到。主要是格式。報(bào)表要求同一個(gè)部門,只需要顯示一次,但是如果這個(gè)部門跨頁(yè)了,要在下一頁(yè)第一行再顯示一次。
由于我是剛接觸XtraReport這個(gè)第三方控件,所以不是很熟悉,后來(lái)想了好久,用了BeforePrint這個(gè)事件來(lái)處理。
代碼如下:
private void xrTableCell17_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
xrTableCell17.Visible = flag;
if ((a + b + c) % 53 == 0)
xrTableCell17.Visible = true;
flag = false;
}
flag是自定義的一個(gè)全局bool型變量,xrTableCell17就是要顯示的部門名稱的控件。a,b,c的作用是控制下一頁(yè)的第一行要出現(xiàn)部門名稱。flag默認(rèn)值是true。
整體思路就是,在 xrTableCell17打印之前,把它的Visible值設(shè)成true,然后之后就立即把flag改為false,這樣可以保證在下一次打印它之前,就不顯示。對(duì)了,53是整頁(yè)的行數(shù)。
其實(shí)整體過(guò)程并不難,思路也很清晰。只是如果不曾想到,就會(huì)很費(fèi)一番周折。 等整個(gè)報(bào)表結(jié)束,會(huì)發(fā)現(xiàn),其實(shí)一切都很簡(jiǎn)單。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:轉(zhuǎn)自博客園 作者ccano.chen