zoukankan      html  css  js  c++  java
  • 使用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),或许是我没有发现。

  • 相关阅读:
    vscode前端必备插件-提高开发效率-起飞-图文-简介
    Python使用yagmail超简单发送邮件、keyring读取密钥、schedule定时任务、imbox操作
    Django中自定义管理类
    Diango中的模型成员
    Django中的Q查询
    【Windows】垃圾清理
    【RabbitMQ】三、交换器和队列
    对酒店房间自助售货机的支付漏洞挖掘
    记录第二次“梅花三弄”的渗透之旅
    Web渗透测试:信息收集篇
  • 原文地址:https://www.cnblogs.com/kexxxfeng/p/4722477.html
Copyright © 2011-2022 走看看