【问题标题】:JAVA Reporting Tool iReportJAVA 报告工具 iReport
【发布时间】:2010-03-16 05:24:09
【问题描述】:

我们是否可以使用 iReport 获得类似 .Net 的 Crystal 报表的报表页面?那就是我需要在框架内获取报告。

【问题讨论】:

  • 明确你想要达到的目标。让没用过水晶报表的人都能解答。
  • 没有在新窗口中打开报告,我想像面板一样分配它。
  • 我用的是水晶报表,还是不知道你想要什么!
  • 下面的代码会打开一个新的报告窗口,JasperDesign jd = JRXMLoader.load(“FilePath”); JasperReport jr = JasperCompileManager.compileReport(jd); JasperPrint jp = JasperFillManager.fillReport(jr),null,con); JasperViewer.viewReport(jp);如何在 Frame 中获取该报告页面。
  • 您尝试使用 JasperViewer 加载报告但打开一个新窗口却想在已经打开的面板中加载它?

标签: java swing jasper-reports ireport


【解决方案1】:

假设您使用的是 Swing,这里有一个示例。

编辑:

尝试获取 JasperViewer 容器并将其添加到主 JFrame 或 JPanel。

有点骇人听闻的工作,但它应该可以解决问题。

JasperDesign jd = JRXMLoader.load("FilePath"); 
JasperReport jr = JasperCompileManager.compileReport(jd);
JasperPrint jp = JasperFillManager.fillReport((jr),null,con);
// Create an instance of the JasperViewer instead of using the static call
JasperViewer viewer=new JasperViewer(jp,false);
// Get the viewers container and add that to the main frame or panel
Container container = viewer.getContentPane();
myMainJFrame.add(container);

【讨论】:

  • 感谢您的回复,您的代码是正确的。但是在添加此代码时,我收到错误“java.lang.IllegalArgumentException:将窗口添加到容器”此代码正常工作 JFrame j = viewer;但它会打开一个新的 JFrame 窗口。是否有任何可能的选项可以在面板中添加它。提前致谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-04
  • 1970-01-01
  • 2016-11-26
  • 2011-12-30
  • 1970-01-01
相关资源
最近更新 更多