我创建了一个Crystal Report并将其连接到C:\SomeDir\Data.xml
的XML文件。
在运行时,我可能需要将数据放入C:\SomeOtherDir\Data.xml
中。
到目前为止,我的代码如下所示:
ReportDocument report = new ReportDocument();
report.Load("Report.rpt");
PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = printerSettings.DefaultPageSettings;
report.PrintToPrinter(printerSettings, pageSettings, false);
这将在
C:\SomeDir\Data.xml
上打印带有数据的报告。我希望它在C:\SomeOtherDir\Data.xml
上打印数据。我怎样才能做到这一点?
最佳答案
ReportDocument report = new ReportDocument();
report.Load("Report.rpt");
DataSet reportData = new DataSet();
reportData.ReadXml(@"C:\SomeOtherDir\Data.xml");
report.SetDataSource(reportData);
PrinterSettings printerSettings = new PrinterSettings();
PageSettings pageSettings = printerSettings.DefaultPageSettings;
report.PrintToPrinter(printerSettings, pageSettings, false);
如果XML的架构发生更改,则需要在CR编辑器中打开报表并“验证数据库”以更新其绑定(bind)到的架构,否则它将引发神秘的“登录失败”错误。