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报表中表达式的更多相关文章

  1. [转]rdlc报表中表达式的使用--switch和IIF范例

    本文转自:http://hi.baidu.com/oypx1234/item/5b35dec4e03a3ad697445266 =Switch( Fields!MLWHLO.Value = " ...

  2. 在RDLC报表中对纸张的设置

    RDLC报表是存放成XML文件格式的,这一点你可以直接打开RDLC报表文件看一下,而且在使用时,通过ReportViewer来读取报表并与数据源进行合成,也就是说RDLC是定义了一个格式,那就不能通过 ...

  3. C#中RDLC报表常用表达式(字符串和转换)

    字符串函数 (1)使用串联运算符和 Visual Basic 常量可将多个字段组合在一起.以下表达式返回两个字段,它们分别位于同一文本框的不同行中:=Fields!FirstName.Value &a ...

  4. C#中RDLC报表中日期显示格式

    转换为日期类型再格式化 =CDate(Fields!UseDate.Value).ToString("yyyy-MM-dd") 使用Format ==Format(Fields!C ...

  5. QuickBI助你成为分析师——计算字段功能

    摘要: 在用户创建报表时,通过现有字段数据不能直接满足展示需求,需要进行一定建模操作.目前产品支持在数据集编辑界面进行初步建模,下面主要介绍新建字段功能,以达到展示需求. 在用户创建报表时,有时通过现 ...

  6. django 模型中的计算字段

    models.py class Person(models.Model): family_name= models.CharField(max_length=20, verbose_name='姓') ...

  7. mysql必知必会--创建计算字段

    计算字段 存储在数据库表中的数据一般不是应用程序所需要的格式.下面举 几个例子. * 如果想在一个字段中既显示公司名,又显示公司的地址,但这两 个信息一般包含在不同的表列中. * 城市.州和邮政编码存 ...

  8. MySQL--创建计算字段

    存储在数据库表中的数据一般不是应用程序所需要的格式.下面举几个例子.  如果想在一个字段中既显示公司名,又显示公司的地址,但这两个信息一般包含在不同的表列中.  城市.州和邮政编码存储在不同的列中 ...

  9. rdlc报表随笔心得 ,基本结构和一些表达式。

    Dataset Form RDLC 主要放数据集的文件夹 存放窗体的文件夹 存放各种报表的文件夹 第一部,创建报表结构 首先添加数据集项 添加完成之后我们会看到这个页面 之后我们在上面添加一些数据集 ...

随机推荐

  1. MySQL中优化常用的查询sql语

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索 ...

  2. 设计模式:Context模式

    作者:吴香伟 发表于 2014/09/12 版权声明:可以任意转载,转载时务必以超链接形式标明文章原始出处和作者信息以及版权声明 Ceph实现中使用了大量派生于Context抽象类的子类,用法简单却很 ...

  3. Python html.parser库学习小结

    分类路径:/Datazen/DataMining/Crawler/   前段时间,一朋友让我做个小脚本,抓一下某C2C商城上竞争对手的销售/价格数据,好让他可以实时调整自己的营销策略.自己之前也有过写 ...

  4. 通过反射及注解的运用获取SQL语句

    import java.lang.reflect.*; public class BeanUtil { //这是拼接查询SQL语句的方法(getDelectSQL) public static Str ...

  5. python脚本执行Scapy出现IPv6警告WARNING解决办法

    安装完scapy,写了脚本执行后执行: WARNING: No route found for IPv6 destination :: (no default route?) 原因是用 from sc ...

  6. 安安视频网anan.video为您提供免费高清视频

    安安视频网anan.video为您提供免费高清视频,最新电影,电视剧,动漫,微电影,纪录片,音乐MV在线观看(高清):安安视频网,一个干净的视频在线播放网站,百万高清影视,视频在线观看. 安安视频网整 ...

  7. Openlayers+Geoserver(一):项目介绍以及地图加载

           项目验收完,趁着事情不是很多,对这个项目进行梳理.我主要负责地图模块,网站其他模块主要有两个,一个是报表,主要是100多张报表,技术没有难度,主要是工作量的问题.另一个是数据的校验,就是 ...

  8. First Missing Positive && missing number

    https://leetcode.com/problems/first-missing-positive/ 我原以为数组中不会有重复的数字,所以利用min.max分别记录给定数组中出现的最小正整数和最 ...

  9. 写在学AngularJS之前

    近来从不同途径听说AngularJS和MEAN stack,感觉很有趣的样子,于是准备抽时间来学习一下.在这里记录学习过程中的笔记. 简单整理一下先: 1. 我的学习资料: a) 官网 b) wiki ...

  10. poj 2482 Stars in Your Window (线段树:区间更新)

    题目链接:http://poj.org/problem?id=2482 读完题干不免有些心酸(