XtraReport交叉表隐藏列标题及自定义排序
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交叉表隐藏列标题及自定义排序的更多相关文章
- RS交叉表按照预定的节点成员排序
需求:RS一个交叉表,显示所有(科室-职称-医生)的就诊量,但是针对同一个科室来说,该科室的主任执行报表首先需要第一个看到的是主任医师级别的工作量 效果如图: 得到这个需求后感觉很简单,就是根据职称排 ...
- FastReport.Net使用:[8]交叉表一
1.绘制报表标题,交叉表可以直接放在标题栏内. 2.拖动一交叉表控件到标题栏内. 3.设置交叉表的行列信息. 将Tabel中的[科室名称]列拖到交叉表的列上以创建列,将Tabel中的[姓名]列拖到交叉 ...
- 单击dbgrid列标题排序 升降序
delphi中如何通过单击列标题进行升降排序, 在dbgrid的ontitleclick事件里添加这样的事件处理 procedure TForm3.DBGrid1TitleClick(Column: ...
- datatables对于某一特定的列进行自定义排序
首先说下里边的api,其中第一个是order,这个里边是设置哪些排序哪些不排序的,比如:$('#example').dataTable( { "order": (funct ...
- DataGridView右键菜单自定义显示及隐藏列
WinForm程序中表单的列可自定义显示及隐藏,是一种常见的功能,对于用户体验来说是非常好的.笔者经过一段时间的摸索,终于实现了自己想要的功能及效果,现记录一下过程: 1.新建一个自定义控件,命名为: ...
- treeview自动从表中添加标题和列值做目录的方法2
treeview自动从表中添加标题和列值做目录的方法2,该方法是借鉴万一老师的 http://www.cnblogs.com/del/archive/2008/05/15/1114450.html 首 ...
- RS导出Excel交叉表角对应的列占用多列问题
在Cognos报表展示的时候,很多用户为了计算会把数据报表导出成excel然后再做统计,于是乎我做的一张报表导出成Excel的时候就出现了这样的问题 从上图可以看出交叉表角对应的列 ‘一级手术’和‘二 ...
- element-ui自定义table表头,修改列标题样式
elementUI table表格一般的样式是这样的: 但是要改变表头是比较麻烦的一个事情,但是往往有些项目是需要的比如改成如下样式: 一般直接改起来挺麻烦,好在官网提供了一个方法:render-he ...
- mysql 交叉表
交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义.http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4c ...
随机推荐
- javascript 不间断向左滚动图片
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Linux下glui 的安装,以及错误解决
下载源文件: http://sourceforge.net/projects/glui/ 2. 解压源文件 3. 用terminal进入glui-2.36/src文件 4. make 5. make之 ...
- uboot的mtd功能支持
一.概述 1.MTD MTD是Flash的一种管理方法,将Flash划分成几个分区,便于管理. u-boot的MTD功能是在文件cmd_jffs2.c中实现的,由此我们可以知道怎样打开u-boot的M ...
- Entity Framework 实践系列 —— 搞好关系 - 单相思(单向一对一,one-to-one)【转】
原以为躲入代码世界,就可以不用搞关系,哪知“关系无处不在”.写代码多年之后,终于明白“面向对象的关键是搞好对象之间的关系”.而Entity Framework作为ORM中的明日之星,首当其冲的使命就是 ...
- poj 2778 DNA Sequence AC自动机
DNA Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 11860 Accepted: 4527 Des ...
- unity Character Controller 点滴
unity Character Controller 点滴 1.今天在做角色的时候,发现人物跳不起来,原来设置这个属性即可,Step Offset, 这个是台阶的高度,这个值设置的越大,人物爬的越高 ...
- 自定义JSON配置器
比如要写个专门处理float类型的方法,然后注册到JSON配置器中,具体如下: 配置器代码如下: import java.math.RoundingMode; import java.text.Num ...
- RemixOS Player 让用户在 Windows 上运行 Android App
http://www.oschina.net/news/77154/remixos-player-windows-andriod-app
- WIN10 + VS2015 + WDK10 + SDK10 + VM虚拟机驱动开发调试环境搭建
http://blog.csdn.net/qing666888/article/details/50858272#comments
- QT5.1.1中MinGW4.8的环境变量配置
1.右击“我的电脑”图标,在弹出的菜单上选择“属性(R)”菜单项. 2.选择“高级”选项卡.点击“环境变量”按钮. 3.点击“新建(W)”按钮,新建环境变量:MINGW_HOME,变量值为MinGW的 ...