C#&;DevExpress报告:动态参数
我为这个难以理解的标题感到抱歉 通常,要使用Devexpress报告参数,我们必须:C#&;DevExpress报告:动态参数,c#,parameters,devexpress,report,C#,Parameters,Devexpress,Report,我为这个难以理解的标题感到抱歉 通常,要使用Devexpress报告参数,我们必须: 在“参数”面板(字段列表)中创建参数 调用报表时指定参数,或在预览/打印前直接填写参数值 但是现在,我们想让它变得简单和动态,我们的想法是传递一个包含所有可能的报表参数的对象,如下所示: public class ReportParameters { public string Title{get;set;} public DateTime ReportDate{get;set;}
- 在“参数”面板(字段列表)中创建参数
- 调用报表时指定参数,或在预览/打印前直接填写参数值
public class ReportParameters
{
public string Title{get;set;}
public DateTime ReportDate{get;set;}
// ..... much more
}
在报告中,我们需要做的就是分配ReportParameters的相应属性,然后类似这样:
XtraReport1 report1 = new XtraReport1();
ReportParameters rpara = new ReportParameters();
rpara.Title = "SomeTitle";
rpara.ReportDate = DateTime.Today.Date();
report1.ParaObjectSource = rpara ; // parameters source
report1.DataSource = reportDataSource; // data (detail) source
report1.ShowPreview();
请注意,ParaObjectSource是我为了说明我的想法而编造的
我的问题是,如何将数据源对象之外的其他对象传递到报表中?您只需在
XtraReport
子类中添加所需内容即可。下面是一个例子:
public class XtraReport1 : XtraReport
{
public XtraReport1()
{
InitializeComponent();
}
public ReportParameters ParaObjectSource {get; set;}
protected override void OnBeforePrint(PrintEventArgs e)
{
base.OnBeforePrint(e);
//Create parameters for report from your ParaObjectSource
}
}