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 ...
随机推荐
- 关于Zen Coding:css,html缩写
zen coding 是一个俄罗斯人写的编辑器(支持大部分现下流行的编辑器)插件,其安装也是非常简单,只要安装插件,然后在项目中拷贝js文件就可以.像Webstorm6.0.2中已经包含这样的插件.什 ...
- http与https差异
HTTPS和HTTP的区别: https协议需要到ca申请证书,一般免费证书很少,需要交费. http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议 http的连接很 ...
- Android内的生命周期整理
1. Android App的生命周期: 2. Application的生命周期: 3. Activity的生命周期: 3.1 Fragment的生命周期: 4. Service的生命周期:5. Br ...
- Android ART简介
一. Android ART简介 Android DEX/ODEX/OAT文件
- dotnet core多平台开发体验
前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...
- Android 开发遇到的问题及解决办法
Failed to resolve: com.android.support:appcompat-v7:23.4.0 问题解决办法: 1.在Android SDK Manager中找到对应的SDK版本 ...
- patchca整合Spring MVC生成超炫的验证码
转载:http://lavasoft.blog.51cto.com/62575/1406947 @Controller public class Login2Controller { priv ...
- 自定义Web控件写事件
--------------------myRegister1.ascx前台代码----------------------- <script src="js/Jquery1.7.js ...
- java程序编译
Empoyee.java package Company; public class Empoyee { String name = ""; public Empoyee(Stri ...
- Dataguard配置前提条件
Data Guard配置前提条件 配置Data Guard必须保证以下前提条件: 1.Data Guard是Oracle企业版的组件.Oracle标准版里没有这个控件.所以Data Guard配置所使 ...