10

我现在正在查看 XtraReports 报告工具,但有些东西我还没有得到它。

如何为某个字段设置数据源(我猜在报告中显示为标签),而无需在设计时构建连接、适配器和数据集,而是以编程方式进行。

例如,我可以有一个名为“用户”的表,其中包含 3 个字段:用户 ID、用户名和密码。在报表设计器中,我放置了 3 个标签(这是我的问题)设置数据源以显示 3 个数据库字段。然后,在后面的代码中,我创建一个连接,执行一个命令,填充一个数据集,创建一个报表实例,将数据表传递给它并显示报表预览。

这可能吗?如果还不够清楚,请告诉我。

谢谢!

4

6 回答 6

12

您可以将报表的 DataSourceSchema 属性设置为代表您的数据源的 XML 架构。这将允许您使用报表设计器在设计时设置数据绑定,而无需每次都建立与数据库的连接。

我是这样做的:一旦我的报告查询大部分完成后,我运行一次代码并调用

myDataSet.WriteXml("C:\myDataSourceSchema.xml", System.Data.XmlWriteMode.WriteSchema)

然后在报表设计器中,我将报表的 DataSourceSchema 属性设置为新创建的文件。这将填充报表设计器的字段列表选项卡,以便您可以在设计时进行绑定。这样,您只需拥有一次有效的数据源(或任何时候更改列)。您绝对仍然可以使用 Przemaas 的方法并在代码中完成所有数据绑定,但我更喜欢让设计人员处理大部分工作。

于 2009-08-07T13:57:09.850 回答
5

在没有数据集的情况下构建报告,您将使用 IList 对象......所以请遵循这个不错的教程

如何:将 Web 报表绑定到数组列表 https://documentation.devexpress.com/#XtraReports/CustomDocument3851

于 2010-03-31T21:42:52.313 回答
4

是的,有可能。您可以在代码中定义必要的数据绑定:

this.xrLabel1.DataBindings.Add(new DevExpress.XtraReports.UI.XRBinding("Text", data, "Name", "aaa"));
  • 此处的文本是 XrLabel 类的属性。我假设您希望将绑定字段显示为标签中的文本。
  • 数据是你的数据对象
  • “名称”是您要显示的字段的名称
  • “aaa” 是显示格式,适用于您想使用自定义格式显示值的情况

基本上,XtraReport 中的数据绑定与标准窗口表单数据绑定的行为方式几乎相同。

让我知道您是否需要更多指导

于 2009-08-07T10:35:50.660 回答
2

这是一个替代品..

rtpObject.DataSourceSchema = dataSet.GetXmlSchema();
于 2013-07-06T10:39:16.173 回答
1

在将此设置修饰符属性设置为公共之前

InvoicePrinting_Rpt InvoicePrintingRpt = new InvoicePrinting_Rpt();//report object 

InvoicePrintingRpt.BillDetails.Report.DataSource = ds_Invoice;
InvoicePrintingRpt.Report.DataMember = ds_Invoice.Tables[0].TableName;
 //bellow third parameter as your column name.
InvoicePrintingRpt.lbl_BillHead.DataBindings.Add("Text", null, "BILL_DESCRIPTION");
InvoicePrintingRpt.lbl_Det_Date.DataBindings.Add("Text", null, "TRANSACTION_DATE");
InvoicePrintingRpt.lbl_ISINCode.DataBindings.Add("Text", null, "ISIN_CODE");

ReportViewer1.Report = InvoicePrintingRpt;//assign report obj   
ReportViewer1.Report.Name = "DevExpress_Reports.InvoicePrinting_Rpt";
ReportViewer1.DataBind(); //binding
于 2013-11-20T12:42:42.893 回答
1
XRBinding binding = new XRBinding("Text", ageingBindingSource, "ageing_contactsLookup.name");
this.xrLabel19.DataBindings.Add(binding);

// 或者 //

XRBinding binding = new XRBinding("Text", dbaDataSet, "transactions.fk_transitems_transactionid.name2");
this.xrTableCell1.DataBindings.Add(binding);
于 2013-11-23T13:14:14.333 回答