动态传递参数到DevExpress.XtraReports的小结

简介: 原文:动态传递参数到DevExpress.XtraReports的小结 前两种方法和WinForm一样,可以传递参数、数组、实体对象、DataTable等1. 采用构造函数具体用法:在Report中public partial class XtraReport1 : DevExpress.
原文: 动态传递参数到DevExpress.XtraReports的小结

前两种方法和WinForm一样,可以传递参数、数组、实体对象、DataTable等
1. 采用构造函数
具体用法:
在Report中
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
 {
    private int test1;       

    public Form1(int test1)
    {
        this.test1 = test1;
        InitializeComponent();
    }
}
调用Report
int test1 = 1;
XtraReport1 report = new XtraReport1(test1);
report.Show();

2.采用属性
具体用法:
在Report中
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
 {      
    public Form1()
    {
        InitializeComponent();
    }
    private int test1;  
    public int Test1
    {
        set { test1 = value; }
        get { return test1; }
    }
}
调用Report
XtraReport1 report = new XtraReport1();
report .Test1 = 1;
report.Show();

3.采用DataSet传递参数
在报表设计界面中,从工具栏数据中拉入DataSet到界面中,选择非类型化数据集,然后给拉入的DataSet添加Table和Column。报表界面的Field List中会自动加入刚添加进去的表和栏目,然后在拉动Field List栏中的Column到报表中,设计好後。在报表的代码中:
private void Detail_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
 {
    this.DataSource = ds.Table[0];
}

我使用以上三种方法都没问题。

但我在允许用户修改报表设计
DevExpress.XtraReports.UI.XtraReport report = DevExpress.XtraReports.UI.XtraReport.FromFile(Application.StartupPath + "\\ReportTest.repx" );
report.ShowDesigner();
如果采用第1、2种方法,怎么也不行。后来只能变通,把要传递的数据保存在XML中,然后在Detail_BeforePrint事件中把XML文件中的数据读出来。

查看帮助说明如下:
in the assembly (represented by the .EXE or .DLL file) which produced the REPX file. Its path is also mentioned in the REPX file's header;

  1. in the current assembly where the FromFile method is called from;
  2. in the assemblies referenced by the current assembly.

If this class type is not found, then an instance of the XtraReport class is created.

Also, the saved state can be applied to the created report instance, if the loadState parameter is set to true.

等有空的时候使用反射试试,看能否让第1、2中传递参数的方法也可以实现用户自定义报表。

目录
相关文章
|
XML 前端开发 网络协议
WebService 教程(包含项目实践)
Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
WebService 教程(包含项目实践)
远程服务器返回错误(530)未登录 C# Ftp
    C#试图登录Ftp服务器时,报错“远程服务器返回错误(530)未登录”。     这是一个什么原因引起的呢? private void ConnectFTP() {         this.
7568 0
|
6月前
|
移动开发 安全 虚拟化
VMware ESXi 7.0 U3s 发布下载 - 领先的裸机 Hypervisor
VMware ESXi 7.0 U3s 发布下载 - 领先的裸机 Hypervisor
881 9
VMware ESXi 7.0 U3s 发布下载 - 领先的裸机 Hypervisor
|
6月前
|
人工智能 自然语言处理 PyTorch
Chat2SVG – 文本描述实现高质量矢量图形的生成框架
Chat2SVG 是一个创新的文本到矢量图形生成框架,结合大型语言模型和图像扩散模型,通过多阶段流程生成高质量的 SVG 图形,支持自然语言指令编辑,适用于设计、教育和艺术创作等领域。
206 8
Chat2SVG – 文本描述实现高质量矢量图形的生成框架
|
10月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
163 6
|
10月前
|
前端开发 JavaScript
React 表单处理技巧
【10月更文挑战第24天】本文从初学者角度出发,详细介绍了 React 中表单处理的基本概念、常见问题及解决方案。涵盖受控组件与非受控组件的区别、状态更新、表单验证、多字段管理及高级技巧,通过代码示例帮助读者更好地理解和应用。
256 7
|
SQL 安全 关系型数据库
SQLynx 发布 3.0.0 版本
SQLynx 发布 3.0.0 版本
376 1
|
安全 应用服务中间件 网络安全
宝塔面板网站页面出现403错误怎么办?
用宝塔面板安装搭建WordPress或者其它程序网站,经常会遇到建好了网站,然后网站页面出现403错误。本文详细说明如何解决这个问题。并帮你分析这个错误出现的原因。 你的服务器 403 Forbidden nginx这通常是由于文件或目录的权限设置不正确造成的。 解决办法是检查文件或目录的权限设置,确保Nginx服务器有访问权限。 站点访问权限通常为www用户组的。
1075 5
宝塔面板网站页面出现403错误怎么办?
|
机器学习/深度学习 JavaScript Linux
深度学习500问——Chapter07:生成对抗网络(GAN)(2)
深度学习500问——Chapter07:生成对抗网络(GAN)(2)
246 0
|
机器学习/深度学习 算法 人机交互