2009-08-07 64 views
10

我现在来看一下XtraReports报告工具,还有一些我还没有得到它。如何在设计时在没有数据集的情况下为XtraReports中的字段设置数据源?

如何设置特定字段的数据源(在报表中显示为标签,我猜),而无需在设计时建立连接,适配器和数据集,但可以通过编程方式进行。

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

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

谢谢!

回答

12

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

这里是我如何做到这一点: 一旦我有我的报表查询大多敲定,我与呼叫一次运行代码以

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

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

+0

这样的事情就是我一直在寻找的,谢谢凯尔!我想我可以构建一个非常小的应用程序,它可以获取一个sql并写入一个xml以便更快地完成此操作。 – Sebastian 2009-08-07 19:08:51

5

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

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

基本上,XtraReport中的数据绑定与标准Windows窗体数据绑定的行为几乎相同。

让我知道你需要更多的指导方针

+0

+1 Przemaas用于显示我这样做的编程方式,但我有这种感觉,这有点儿变了,你不觉得吗?您应该能够直接编辑标签控件的数据源。谢谢! – Sebastian 2009-08-07 19:10:28

2

这里备用..

rtpObject.DataSourceSchema = dataSet.GetXmlSchema(); 
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 
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); 
相关问题