将java查询结果传递给字段/UCanAccess兼容性



我对JavaJasperReports的了解非常少,几乎没有用过,没有什么太严重的。我的一个朋友一直在试图让人为他开发一个应用程序,该应用程序将根据每个客户的访问数据库中的信息生成PDF,然而,在6个月和7名开发人员抛弃他之后,他没有找到任何信息,所以他问我是否可以帮助他,我说我会试一试。

到目前为止我能做的事情:

到目前为止,我已经成功地完成了(所有的事情都是单独完成的,到目前为止我总共有8个项目):

  • 使用Jaspersoft Studio/iReport在每张工作表上创建一个包含所需客户端信息的PDF
  • 创建一个单独的JasperReports项目,该项目带有一个输入字段,以获得带有单个客户端信息的pdf
  • 创建一个带有JFrame的Java应用程序来启动报告生成
  • 创建一个Java应用程序,通过ucanaccess连接到访问数据库,并验证搜索条件

问题:

现在,在谷歌上呆了几天之后,我还没有成功地实现我想要实现的一切,我很希望有人能给我提供好的防套索指南,或者(如果愿意的话)提供一个防套索的答案,这样我就可以继续前进了。

  • 创建一个Java应用程序,您可以选择为指定的客户端生成所有客户端的报告或单个报告(我认为这并不太复杂,因为将两个Jasper报告都嵌入到Java应用程序中只是一个问题),但是我需要将输入值传递到Jasper报告字段以生成单个报告(不确定这个报告是否足够清楚),并基于该字段的值运行对数据集的查询。

  • 理想情况下,尽管不是很需要,但可以将另一个变量作为字段来设置日期范围。

  • 由于这是在MS Access数据库*.accdb-上完成的(别怪我,我已经告诉他转移到MySQL/SQL很长一段时间了),我很想知道是否有可能让JasperReports基于UCanAccess JDBC连接进行查询(尝试了几个选项,都不起作用)。

  • 最后,我需要在报告中生成一个日期范围(类似于:"2014年1月1日至2014年2月1日")

到目前为止,我觉得我已经取得了相当大的进步,但由于我既不支持JasperReports,也不支持Java,我陷入了一个需要更多知识才能创建一个更体面、更实用的软件的困境,我很希望有人能给我指一个更好的方向(如果有些事情不可能,或者只有几个链接可以帮助我完成)

在创建数据适配器时,请记住在Driver Classpath中添加ucanaccess jar和所有依赖项jar

-您必须将Showschema设置为true:例如

jdbc:ucanaccess://c:/db/database.accdb;Showschema=true

通过这种方式,Jasper Studio将能够导航数据库的元数据,并且您将在PUBLIC模式下找到表。然后您就可以像往常一样创建报告了。