我创建了一个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)到的架构,否则它将引发神秘的“登录失败”错误。

10-02 03:19