使用ZK和Jasper报表关闭Excel窗口

使用ZK和Jasper报表关闭Excel窗口,excel,window,zk,Excel,Window,Zk,从控制器,我打开一个新窗口调用Jasper报告。问题在于,当我选择Excel格式时,取决于浏览器的新窗口或选项卡为空。我想在jasper/Excel打开后关闭此窗口。我应该怎样才能使空白窗口关闭?或在此新窗口中显示Excel报表 请注意,对于任何其他文档类型PDF、HTML等,报告将显示在新窗口/选项卡中,这是正常的 以下是我的部分代码: reports.java控制器 displayReport.zul 目前,没有浏览器可以直接显示Excel文件,因为没有相应的插件。如果显示Excel不是您的

从控制器,我打开一个新窗口调用Jasper报告。问题在于,当我选择Excel格式时,取决于浏览器的新窗口或选项卡为空。我想在jasper/Excel打开后关闭此窗口。我应该怎样才能使空白窗口关闭?或在此新窗口中显示Excel报表

请注意,对于任何其他文档类型PDF、HTML等,报告将显示在新窗口/选项卡中,这是正常的

以下是我的部分代码:

reports.java控制器

displayReport.zul


目前,没有浏览器可以直接显示Excel文件,因为没有相应的插件。如果显示Excel不是您的优先事项。我有两个建议:

允许用户在不打开新窗口的情况下下载Excel 在控制器中,只需创建一个excel文件并让用户下载 指

用JS关闭新窗口 关闭displayReport.zul控制器中的窗口。 公共类ReportComposer扩展SelectorComposer{ .. @凌驾 public void最终抛出异常{ super.doFinally; Clients.evalJavaScriptwindow.close;; } }

Executions.getCurrent().sendRedirect("/app/rapport/displayReport.zul", "_blank");
<zk>
<jasperreport id="report" hflex="1" height="100%" width="100%"/>
<zscript><![CDATA[

        import org.cic.common.container.SessContext;
        import org.cic.fwd.ServiceLocator;
        import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;

        SessContext sessContext = ServiceLocator.getSessContext();   

        report.setSrc((String)sessContext.get("src"));
        report.setDatasource((JRBeanCollectionDataSource)sessContext.get("datasource"));
        report.setParameters((Map)sessContext.get("parameters"));
        report.setType((String)sessContext.get("type"));
]]></zscript>
</zk>