如何在devexpress winform应用程序中在运行时在报表查看器中设置数据源?

时间:2017-05-23 05:41:22

标签: c# winforms devexpress xtrareport

我正试图在Devexpress winform中显示报告。以下是我到目前为止所尝试的内容。

string test = @"C:\Users\bajay\Desktop\First.repx";

if (File.Exists(test))
     MessageBox.Show("Test");
     
XtraReport report = new XtraReport();
report.LoadLayout(test);
var tool = new ReportPrintTool(report);
    tool.ShowPreview();

3 个答案:

答案 0 :(得分:1)

不,您做错了,因为您只是加载了实际上没有数据库的.REPX文件。它只有布局,您必须连接数据库,例如SQL,JSONDataSource,WCF等。通过 SQLDataSource组件,您必须在设计时连接一次,然后执行您想做的代码,在运行时之后,只需更改连接字符串,但请确保并记住在连接字符串之前添加XPO。

以更好的方式理解。 1.在设计时将其连接到数据库 2.对你的项目进行惩罚 3.只需在客户端计算机上更改连接字符串 4.然后您会完成!

答案 1 :(得分:0)

您必须使用报告的DataSource属性提供数据。 这可以是从您的数据库填充的DataTable,也可以是IEnumrable<> /对象列表。

report.DataSource = YourItemFactory.GetYourItems();

您可以参考有关此主题的DX-support pages

答案 2 :(得分:0)

我建议您浏览XtraReport文档的Provide Data to a Report

在那里,您将找到文档列表,设计时教程和运行时示例说明如何将报表及其元素(如计算字段和参数)连接到various kinds of data sources

示例:

using System;
using System.Windows.Forms;
using System.Collections.Generic;
using DevExpress.XtraReports.UI;
// ... 

private void Form1_Load(object sender, EventArgs e) {
    XtraReport1 report = new XtraReport1();
    report.DataSource = CreateData();

    ReportPrintTool tool = new ReportPrintTool(report);
    tool.ShowPreview();
}

private  List<Data> CreateData() {
    List<Data> data = new List<Data>();

    Data item1 = new Data();
    item1.Date = DateTime.Now;
    item1.Id = 0;
    item1.Name = "First";
    data.Add(item1);

    Data item2 = new Data();
    item2.Date = DateTime.Now;
    item2.Id = 1;
    item2.Name = "Second";
    data.Add(item2);

    Data item3 = new Data();
    item3.Date = DateTime.Now;
    item3.Id = 2;
    item3.Name = "Third";
    data.Add(item3);

    return data;
}

<强>参考文献:
How to: Bind a Report to a Data Source Schema
How to: Bind a Report to a List Object at Design Time and Provide Data at Runtime

How to: Bind a Report to an Array List
How to: Bind a Report to a Collection that Implements the ITypedList Interface
How to: Bind a Report to an XML File (Runtime Sample)

希望这有帮助..