使用XtraReport的CalculatedFiled(计算字段)实现RDLC报表中表达式
DevExpress报表确实强大,花样繁多,眼花缭乱。
这次使用XtraReport开发报表,很多问题在官方的文档中并没有详细的说明,特此记录。
1、XtraReport中FormattingRules属性是只能返回bool值的条件(Condition)判断,而不是我想要的表达式。
2、根据XtraReport官方文档中拖控件的方式创建的CalculatedFiled才是我想要的表达式。
1》拖控件的方式不灵活,而且XtraReport对象的DataSource(数据源)使用的DataSet类型,在构造XtraReport时必须指定DataMember属性。
this.calculatedField1 = new CalculatedField
{
DataMember = "Product",
Expression = "Iif([Id]==1,-2,2 )",
Name = "calculatedField1"
};
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.calculatedField1});//把计算字段放到报表的计算字段集合中,否则无法表现此字段。
this.DataMember = "Product";
this.DataSource = ds;
this.xrTableCell1.DataBindings.Add("Text", null, "Product.calculatedField1");不过,这些都是拖拖控件就会自动生成的,不需要手动去写。
2》用纯代码的方式来实现,我的数据源是List<>类型,这时候需要注意在构造时,一定不能指定DataMember属性。
this.calculatedField1 = new CalculatedField
{
//DataMember = "Product",//使用List作为数据源,一定不能设置DataMember属性
Expression = "Iif([Id]==1,-2,2 )",
Name = "calculatedField1"
};
this.CalculatedFields.AddRange(new DevExpress.XtraReports.UI.CalculatedField[] {
this.calculatedField1});
//this.DataMember = "Product";//使用List作为数据源,一定不能设置DataMember属性
this.DataSource = list;
this.xrTableCell1.DataBindings.Add("Text", null, "calculatedField1");
3、XtraReport报表似乎不支持RDLC中行组(RowGroup)和列组(ColumnGroup),或许是我没有发现。
使用XtraReport的CalculatedFiled(计算字段)实现RDLC报表中表达式的更多相关文章
- [转]rdlc报表中表达式的使用--switch和IIF范例
本文转自:http://hi.baidu.com/oypx1234/item/5b35dec4e03a3ad697445266 =Switch( Fields!MLWHLO.Value = " ...
- 在RDLC报表中对纸张的设置
RDLC报表是存放成XML文件格式的,这一点你可以直接打开RDLC报表文件看一下,而且在使用时,通过ReportViewer来读取报表并与数据源进行合成,也就是说RDLC是定义了一个格式,那就不能通过 ...
- C#中RDLC报表常用表达式(字符串和转换)
字符串函数 (1)使用串联运算符和 Visual Basic 常量可将多个字段组合在一起.以下表达式返回两个字段,它们分别位于同一文本框的不同行中:=Fields!FirstName.Value &a ...
- C#中RDLC报表中日期显示格式
转换为日期类型再格式化 =CDate(Fields!UseDate.Value).ToString("yyyy-MM-dd") 使用Format ==Format(Fields!C ...
- QuickBI助你成为分析师——计算字段功能
摘要: 在用户创建报表时,通过现有字段数据不能直接满足展示需求,需要进行一定建模操作.目前产品支持在数据集编辑界面进行初步建模,下面主要介绍新建字段功能,以达到展示需求. 在用户创建报表时,有时通过现 ...
- django 模型中的计算字段
models.py class Person(models.Model): family_name= models.CharField(max_length=20, verbose_name='姓') ...
- mysql必知必会--创建计算字段
计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式.下面举 几个例子. * 如果想在一个字段中既显示公司名,又显示公司的地址,但这两 个信息一般包含在不同的表列中. * 城市.州和邮政编码存 ...
- MySQL--创建计算字段
存储在数据库表中的数据一般不是应用程序所需要的格式.下面举几个例子. 如果想在一个字段中既显示公司名,又显示公司的地址,但这两个信息一般包含在不同的表列中. 城市.州和邮政编码存储在不同的列中 ...
- rdlc报表随笔心得 ,基本结构和一些表达式。
Dataset Form RDLC 主要放数据集的文件夹 存放窗体的文件夹 存放各种报表的文件夹 第一部,创建报表结构 首先添加数据集项 添加完成之后我们会看到这个页面 之后我们在上面添加一些数据集 ...
随机推荐
- 关于KB905474正版验证补丁破解办法 KB905474是个微软操作系统正版/盗版监测间谍软件。更新安装后,右下角有个提示说“系统监测到你的操作系统是盗版”。 如果没有安装的: 在系统提示更新的时候注意看一下,如果包含有“更新KB905474”就去掉“更新KB905474”方框前的勾,点击关闭(注意如果没有去掉那个勾得话,会找不到“关闭”,而是“确定”),在不在提示我该消息前打勾。 如果已经安装
关于KB905474正版验证补丁破解办法 KB905474是个微软操作系统正版/盗版监测间谍软件.更新安装后,右下角有个提示说“系统监测到你的操作系统是盗版”. 如果没有安装的: 在系统提示更新的时候 ...
- python课程第三周重点记录
1.关于set,set是一个无序且不重复的元素集合 s = set(["ss","dd","pp"]) #创建set s1 = set([& ...
- 数学对象-Math
Math 属性: PI 圆周率 例子:var x=Math.xxxx(); sqrt() 一个非负数的平方根 nan pow() x的y次幂的值 Math.pow( ...
- 强大的Spring缓存技术(下)
基本原理 一句话介绍就是Spring AOP的动态代理技术. 如果读者对Spring AOP不熟悉的话,可以去看看官方文档 扩展性 直到现在,我们已经学会了如何使用开箱即用的 spring cache ...
- Docker-3:Data Volume
Sometimes, applications need to share access to data or persist data after a container is deleted. ...
- Session失效之 IE iframe cookie问题(p3p)
项目中,在做门户系统时,使用了iframe嵌套展示各个子系统的页面,其中有个页面在ie8下,始终无法正常登陆. 后来项目经理分析,应该是iframe跨域导致,赶忙查看了连接地址,还真是一个跨域的页面. ...
- CSS布局技巧 -- sticky属性
在一些很长的表格中,往往需要使用表头悬浮的设计以方便用户使用,例如H5电商页面通过下滑展示大量商品列表时,顶部的导航栏需要在离开屏幕时,需要固定在屏幕顶部以方便用户筛选类别.这种效果一直以来需要通过J ...
- Bomb
Description The counter-terrorists found a time bomb in the dust. But this time the terrorists impro ...
- css3中的颜色
1颜色.color:rgba(R,G,B,A) R,G,B是分别代笔红,绿,蓝值是在0到255之间的数也可以是0.0% - 100.0%,A代表的是透明度0到1之间. 2.渐变.background- ...
- 【Java源码分析】LinkedList类
LinkedList<E> 源码解读 继承AbstractSequentialList<E> 实现List<E>, Deque<E>, Cloneabl ...