【问题标题】:C# & DevExpress Reporting : Dynamic parametersC# & DevExpress 报告:动态参数
【发布时间】:2014-07-29 12:48:20
【问题描述】:

对不起这个难以理解的标题

通常,要使用 Devexpress 报告参数,我们必须:

  • 在参数面板(字段列表)中创建参数
  • 调用报表时赋值,或者在预览/打印前直接填入参数值

但是现在,我们想让它变得简单和动态,想法是传递一个包含所有可能的报告参数的对象,如下所示:

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 是我为了说明我的想法而编造的

我的问题是,除了数据源对象之外,我如何将其他对象传递到报告中?

【问题讨论】:

    标签: c# parameters devexpress report


    【解决方案1】:

    您可以在 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 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多