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