首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用ZK和Jasper报告关闭Excel窗口

用ZK和Jasper报告关闭Excel窗口
EN

Stack Overflow用户
提问于 2014-11-24 15:04:45
回答 1查看 240关注 0票数 0

从控制器上,我打开了一个新窗口来调用Jasper报告。问题是,当我选择Excel格式时,新窗口(或选项卡取决于浏览器)是空的。一旦jasper/Excel打开,我想关闭这个窗口。我该如何关闭空白窗口?还是在这个新窗口中显示Excel报表?

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

下面是我代码的一部分:

reports.java (控制器)

代码语言:javascript
复制
Executions.getCurrent().sendRedirect("/app/rapport/displayReport.zul", "_blank");

displayReport.zul

代码语言:javascript
复制
<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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-24 02:09:45

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

  1. 让用户下载Excel而不打开新窗口

在您的控制器中,只需创建一个excel文件,让用户下载参考download

  1. 用JS关闭新窗口

关闭displayReport.zul控制器中的窗口。public class ReportComposer extends SelectorComposer<Component> { .. @Override public void doFinally() throws Exception { super.doFinally(); Clients.evalJavaScript("window.close();"); } }

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27107859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档