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