使用Winforms Devexpress的XtraReports C#.Net中的报表查看器
本文关键字:报表 Winforms Devexpress XtraReports 使用 Net | 更新日期: 2023-09-27 18:21:13
嗨,我使用XtraReports创建了三个报告。我可以使用这个代码在按钮点击中查看
xtrareport1 report = new xtrareport1 (Convert.ToInt32(TXE_CompanyId.Text));
ReportPrintTool tool = new ReportPrintTool(report);
tool.ShowPreview();
我需要在LookupEdit中显示这三个报告的名称,用户选择一个报告意味着需要在PrintControl1中显示预览?如何做到这一点?
如果你想获得项目中的所有报告,那么你可以使用DevExpress:提供的解决方案
可以使用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();
}