环思产品论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2801|回复: 0
打印 上一主题 下一主题

XtraReport交叉表隐藏列标题及自定义排序

[复制链接]

3

主题

3

帖子

51

积分

注册会员

王利建

Rank: 2

积分
51
QQ
跳转到指定楼层
楼主
发表于 2016-5-13 11:28:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wutingting 于 2017-3-9 18:39 编辑

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 事件。
     private voidpivotGrid1_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交叉表隐藏列标题及自定义排序.pdf

737.88 KB, 下载次数: 211

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|上海环思 ( 沪ICP备11022428号 )

GMT+8, 2024-11-9 04:05 , Processed in 0.079500 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表