如何在Eclipse RCP中集成JRViewer

时间:2018-11-02 20:36:56

标签: java jasper-reports eclipse-rcp

我有一个RCP应用程序,并且运行良好...直到现在。

我必须升级一些读取和写入xlsm和xlsx文件的模块,所以我要升级poi。

但是它破坏了我的JasperReport报告,该版本非常旧,为2.0.3,所以我也尝试将其升级到6.1.0,其中包含我需要的poi版本。

但是我无法使其在viewpart中工作。

使用jasperreports2.0.3,现在的样子

how it looks now

“导出/另存为”按钮不起作用,出现以下错误:

net.sf.jasperreports.engine.JRPrintHyperlink.getHyperlinkType()

谷歌搜索,我得到了升级和使用JRViewer的提示。

我尝试遵循以下问题:how to print jasper report in Eclipse RCP using its print option?,但没有成功。

有人可以给我一些线索吗?

1 个答案:

答案 0 :(得分:0)

我明白了! ... 修改了CreatePartControl ...

@classmethod

}

我从其他View传递JasperPrint对象,所以我创建了一个void方法...

public void createPartControl(Composite parent) {
Composite container = new Composite(parent, SWT.NONE);
container.setLayout(new FillLayout(SWT.HORIZONTAL));
//viewerComposite = new ViewerComposite(container,SWT.BORDER);
//viewerComposite.setLayoutData(new GridData(GridData.FILL,GridData.FILL,true,true));

//desde aca
//add the SWT_AWT compposite for SWING contents of GUI              
final Composite swtAwtComposite = new Composite(container, SWT.EMBEDDED);
swtAwtComposite.setBounds(10, 0, 767, 600);

Frame frame = SWT_AWT.new_Frame(swtAwtComposite);

Panel panel = new Panel();
frame.add(panel);
panel.setLayout(new BorderLayout(0, 0));

JRootPane rootPane = new JRootPane();
rootPane.setSize(767, 600);
panel.add(rootPane);

//Define a container yourself
c = rootPane.getContentPane();


super.setPartName("Reportes");

}

像魅力一样工作!

new look ! but it works

新外观! 但这有效!

最好的问候