XtraReport交叉表隱藏列標題及自定義排序

2022-07-16 00:54:11 字數 1909 閱讀 5503

1.隱藏列標題

用devexpress pivotgrid report 做報表的時候,將字段拖放到報表中後,columnarea和dataarea會顯示兩個標題字段,如下圖:

選中交叉表,設定以下屬性可以隱藏:

效果如下:

2.自定義排序

做報表的時候,設定columnarea的filedname為ssize,最終呈現的報表是依據ssize排序。而期望的是按照isizegroupid,isizeorder排序,但isizegroupid,isizeorder由於不用在報表中呈現,故未將其拖放在報表中.

如何使columnarea依據isizegroupid,isizeorder來排序呢? 使用xrpivotgrid1_customfieldsort 事件可以解決這個問題。

具體處理如下:

1.設定ssize的sortmode為custom。否則xrpivotgrid1_customfieldsort 事件不會觸發。

2.處理xrpivotgrid1_customfieldsort 事件。

注:此處的排序欄位也可以在sql中提前處理好,在sql中將兩個字段合併乙個排序字段。

private void pivotgrid1_customfieldsort(object sender, huansi.xtrareports.ui.pivotgrid.pivotgridcustomfieldsorteventargs e)

//當列為ssize時,才處理自定義排序

if (e.field.fieldname == "ssize")

if (e.value1 == null || e.value2 == null) return;

e.handled = true;

//取isizegroupid

string sg1 = e.getlistsourcecolumnvalue(e.listsourcerowindex1, "isizegroupid").tostring();

string sg2 = e.getlistsourcecolumnvalue(e.listsourcerowindex2, "isizegroupid").tostring();

//取isizeorder

string s1 = e.getlistsourcecolumnvalue(e.listsourcerowindex1, "isizeorder").tostring();

string s2 = e.getlistsourcecolumnvalue(e.listsourcerowindex2, "isizeorder").tostring();

//比較isizegroupid

if (string.compare(sg1, sg2) > 0)

e.result = 1;

else if (string.compare(sg1, sg2) == 0) //isizegroupid相等時,再比較isizeorder

e.result = string.compare(s1, s2);

else

e.result = -1;

3.儲存預覽即可達到預期目標

Xtrareport 交叉報表

什麼是交叉報表呢?官方回答 交叉表報表是以交叉表形式呈現資訊的報表。交叉表 或透視表 類似於簡單的普通資料繫結 但是改為在單個 中呈現多維的分層級的資訊,並含有每行和每列的自動排序 計數 合計和累計。依照慣例,我們先來看看我們最後實現的效果,如圖 案例場景 某公司可能有產品1 12,分別屬於產品類別...

交叉表例項

建表 在查詢分析器裡執行 create table test id int identity 1,1 not null name nvarchar 50 collate chinese prc ci as null subject nvarchar 50 collate chinese prc ci...

交叉表例項

create table test id int identity 1,1 names nvarchar 50 subject nvarchar 50 source decimal 18,0 insert into test names subject source values n 張三 n 語文...