【问题标题】:Report viewer in XtraReports C#.Net using Winforms Devexpress?使用 Winforms Devexpress 在 XtraReports C#.Net 中报告查看器?
【发布时间】:2014-11-02 13:02:24
【问题描述】:

您好,我使用 XtraReports 创建了三个报告。我可以使用此代码在按钮单击中查看它

 xtrareport1 report = new xtrareport1 (Convert.ToInt32(TXE_CompanyId.Text));
 ReportPrintTool tool = new ReportPrintTool(report);
 tool.ShowPreview();

我需要在 LookupEdit 中显示这三个报告名称,并且用户选择一个报告意味着需要在 PrintControl1 中显示该预览?如何做到这一点?

【问题讨论】:

    标签: c# winforms devexpress xtrareport


    【解决方案1】:

    如果您想获取项目中的所有报告,则可以使用 DevExpress 提供的solution

    您可以使用 Assembly.GetExecutingAssembly().GetTypes() 方法来 获取程序集中定义的所有类。然后你可以循环通过 查找从 XtraReport 类派生的类的列表。创造 一个新实例,使用 Activator.CreateInstance() 方法。

    以下是实现示例:

    public Form1()
    {
        InitializeComponent();
    
        var reports = new List<Tuple<string, Type>>();
    
        foreach (var type in Assembly.GetExecutingAssembly().GetTypes())
            if (type.IsSubclassOf(typeof(XtraReport)))
                reports.Add(new Tuple<string, Type>(type.Name, type));
    
        lookUpEdit1.Properties.DataSource = reports;
        lookUpEdit1.Properties.DisplayMember = "Item1";
        lookUpEdit1.Properties.ValueMember = "Item2";
        lookUpEdit1.Properties.Columns.Add(new LookUpColumnInfo("Item1","Report"));
    }
    
    private void simpleButton1_Click(object sender, EventArgs e)
    {
        var value = lookUpEdit1.EditValue;
    
        if (value == null)
            return;
    
        var report = (XtraReport)Activator.CreateInstance((Type)value);
    
        var tool = new ReportPrintTool(report);
        tool.ShowPreview();
    }
    

    【讨论】:

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