上周在这里获得了一些关于使用 office.interop dll 打印的帮助。我的应用程序需要以报告样式格式打印来自新数据库条目的数据,我使用 office.interop 功能成功地做到了这一点,但是,我从未意识到您需要在计算机上安装 office 才能工作,所以经过一番研究,我意识到唯一现实的方法是使用水晶报表,除非有人有其他建议?
所以,问题是:我已经成功地设置了水晶报表来读取 XML 文件来生成,而且效果很好,我可以打印出来没问题。我通过在我的程序的主代码中使用从 mySql 数据库中提取的数据填充数据集来生成 XML 文件,但是,即使我添加了新信息,这会再次生成 XML 文件并覆盖前一个文件,报告仍然会打印我用来生成报告的原始 XML 文件。所以我想知道是否有办法让报告在打印之前刷新其数据并再次从 XML 文件中提取详细信息。
我在打印功能之前尝试了报告上的 .Refresh(),但是我得到一个数据库错误并且没有打印任何内容。
这是我用来打印报告的代码:
checkInReceipt cir = new checkInReceipt();
cir.Refresh(); // if i leave this in, it generates a db error, take it out and it prints data from an old XML file.
cir.PrintToPrinter(1, true, 1, 1);