posts - 432,  comments - 40,  views - 54万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

如果数据源字段不符合您的要求并且您必须在交叉表控件显示数据之前对数据进行预处理,您可以使用计算字段。

https://docs.devexpress.com/XtraReports/7052/detailed-guide-to-devexpress-reporting/shape-report-data/use-calculated-fields/create-a-calculated-field-runtime-sample

此示例演示如何在运行时创建计算字段并将其绑定到控件的XRControl.Text属性。

复制代码
using System;
using System.Windows.Forms;
using DevExpress.XtraReports.UI;
using DevExpress.XtraReports.Configuration;
// ...

private void button1_Click(object sender, EventArgs e) {

    // Create a report.
    XtraReport1 report = new XtraReport1();

    // Create a calculated field 
    // and add it to the report's collection.
    CalculatedField calcField = new CalculatedField();
    report.CalculatedFields.Add(calcField);

    // Define the calculated field's properties.
    calcField.DataSource = report.DataSource;
    calcField.DataMember = report.DataMember;
    calcField.FieldType = FieldType.Double;
    calcField.DisplayName = "Calculated Field";
    calcField.Name = "myField";
    calcField.Expression = "[UnitPrice] * [UnitsInStock]";

    // Bind a label's Text property to the calculated field.
    report.FindControl("xrlabel1", true).ExpressionBindings.Add(new ExpressionBinding("BeforePrint", "Text", "FormatString('{0:c2}', [myField])"));

    // Display the report.
    ReportPrintTool printTool = new ReportPrintTool(report);
    printTool.ShowPreviewDialog();
}
复制代码

结果如下图所示。

2:报表的BeforePrint事件。
复制代码
要为每个子报表选择员工,请按以下方式处理子报表的BeforePrint事件。

C#VB.NET
using System.Drawing.Printing;
using DevExpress.XtraReports.UI;
// ...

private void xrSubreport1_BeforePrint(object sender, PrintEventArgs e) {
    ((XRSubreport)sender).ReportSource.FilterString = "[EmployeeID] = 1";
}

private void xrSubreport2_BeforePrint(object sender, PrintEventArgs e) {
    ((XRSubreport)sender).ReportSource.FilterString = "[EmployeeID] = 2";
}
复制代码

https://docs.devexpress.com/XtraReports/4787/create-reports/create-a-side-by-side-report

 

posted on   小石头的一天  阅读(276)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
历史上的今天:
2017-08-15 c# Parallel.For 并行编程 执行顺序测试
点击右上角即可分享
微信分享提示