原創|其它|編輯:郝浩|2012-09-11 14:43:10.000|閱讀 3082 次
概述:在使用XtraReport時會遇到要求自定義分組和行號的顯示問題,本文詳細分類介紹了所遇到的問題以及解決方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
最近在開發一個報表時(使用的是DevExpress報表控件XtraReports),遇到了 客戶要求自定義分組和行號的顯示問題,現在把我的解決方案和大家共享一下
1、當行號要求從1開始,在分組變化后不從新計算,這中情況比較好解決
直接在需要顯示行號的控件的OnBeforePrint事件中做處理就行了,在事件中添加如下代碼
((XRTableCell)sender).Text = string.Format("{0}",this.CurrentRowIndex+1);//CurrentRowIndex為報表的當前行號
這行代碼也可以在客戶自定義時,在設計器中放在需要顯示行號的控件的Scripts屬性下OnBeforePrint中。
顯示的報表類似如下
group1
1
2
3
group2
4
5
group3
6
7
...
2、如果要是需要每個分組中得行號從1重新開始,需要使用如下方法(在設計期實現,如果要是在開發時實現可以定義一個兩個全局變量來保存rowIndex和preGroupName)
添加Name為rowIndex、preGroupName的XRLabel控件,在需要顯示序號得控件中,對OnBeforePrint添加如下代碼
private void OnBeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e) {
string groupName = Convert.ToString(GetCurrentColumnValue("Category"));
if (groupName != ((XRLabel)preGroupName).Text)
{
((XRLabel)rowIndex).Text = "1";
((XRLabel)preGroupName).Text = groupName;
}
else
{
((XRLabel)rowIndex).Text=string.Format("{0}",Convert.ToInt32(((XRLabel)rowIndex).Text)+1);
}
((XRTableCell)sender).Text =((XRLabel)rowIndex).Text;
}
如果需要其他的分組的話,把 string groupName = Convert.ToString(GetCurrentColumnValue("Category"));中的Category改為需要分組的顯示的字段名稱。
顯示的報表格式類似如下
group1
1
2
3
...
group2
1
2
...
group3
1
2
3
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:轉自博客園 作者 笑緣