我正在寻找打印发票和声明的最佳解决方案,当用户可以在打印表单上书写和制作时(如日期)。我已经测试了Delphi的所有打印组件,但是没有一个允许最终用户(例如)检查打印时的复选框,而不需要编辑任何东西 - 只需单击即可。也许我错过了什么,你有什么建议?
答案 0 :(得分:8)
使用快速报告,您有多种选择...
首先,快速报告允许您使用表单设计器在报表中包含交互式表单,并使用其脚本引擎对其进行编码。
它还允许您为每个控件定义的某些事件分配事件处理程序;例如,它有frxCheckBox控件的OnPreviewClick事件,只要最终用户点击预览窗格中的复选框,就会触发该事件。
另一个选择是允许最终用户自己修改报告;快速报告为最终用户提供两种类型的报告编辑,一种方法是让最终用户修改生成的报告。使用此功能,最终用户将在快速报告编辑器中看到生成的报告和所有页面,并可以更改某些值或重新排列控件。 另一种方法是让最终用户从头开始设计报表,为此你必须在快速报表中使用设计器组件;这将提供用于在IDE中为最终用户设计报表的标准编辑器,最终用户可以设计报表。
答案 1 :(得分:3)
对于Delphi解决方案,我使用Fast Report的脚本支持在报告中做一些奇特的事情(当用户点击报告预览中的某些内容时弹出窗口)。我还使用它来创建向下钻取报告,以便在将报告呈现到预览后更改报告。但我很确定它不支持真正的Windows控件,因为它毕竟是一个REPORT生成解决方案。我没有真正研究过这个,所以我可能错了。
对于非Delphi解决方案,您可能需要查看一些Adobe Acrobat(PDF)解决方案,它们可以让您做出惊人的事情。
我的观点:除非交互非常简单(一个复选框和一些输入字段),否则我不会在报表生成器中执行此操作。虽然这样做可能看起来更直观,但它有太多限制。没有什么能比真正的文本编辑器更适合编辑文本,但真正的文本编辑器在报告上看起来不合适。