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