如何在Xtrareports中的字段设置数据源,而无需在设计时具有数据集?

StackOverflow https://stackoverflow.com/questions/1242825

  •  12-09-2019
  •  | 
  •  

我现在要看一下Xtrareports报告工具,还有一些我还没有得到的。

我如何设置某个字段的数据源(我猜在报告中显示为标签),而不必在设计时间构建连接,适配器和数据集,而是按程序进行编程。

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

这可能吗?让我知道它是否还不够清晰。

谢谢!

有帮助吗?

解决方案

您可以将报告的DataSourceschema属性设置为代表您数据源的XML模式。这将使您使用报告设计人员在设计时间设置数据绑定,而无需每次与数据库建立连接。

这是我的操作方式:一旦我的报告查询大部分最终确定,我就会通过调用一次代码

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

然后,在报告设计师中,我将报告的DataSourceschema属性设置为新创建的文件。这将填充报告设计师的字段列表选项卡,因此您可以在设计时绑定。这样一来,您只需要一次有一个有效的数据源(或任何更改列的时间)。您绝对可以采用Przemaas的方法,并在代码中进行所有数据绑定,但我更喜欢让设计师处理大部分工作。

其他提示

构建没有数据集的报告,您将使用iList对象...因此,请按照此不错的教程进行操作

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

对的,这是可能的。您可以在代码中定义必要的数据指示:

this.xrLabel1.DataBindings.Add(new DevExpress.XtraReports.UI.XRBinding("Text", data, "Name", "aaa"));
  • 文字这是Xrlabel类上的属性。我假设您想在标签中显示绑定字段作为文本。
  • 数据是您的对象带有数据
  • “名称”是您要显示的字段名称
  • “ AAA”是显示格式,适用于您要使用自定义格式显示值

基本上,Xtrareport ACT中的数据符号与标准Windows表单数据指标几乎相同。

让我知道您需要更多指导原则

这是一个替代。

rtpObject.DataSourceSchema = dataSet.GetXmlSchema();

在执行此设置修改器属性之前

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
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);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top