在grails中使用jasper插件在新选项卡中打开报告 [英] Open report in new tab using jasper plugin in grails

查看:99
本文介绍了在grails中使用jasper插件在新选项卡中打开报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用jasper插件来生成我的报告。一切都很好,但除了我的pdf在当前选项卡上打开时,我想在新选项卡中打开它。



我不知道该怎么做。有谁可以请帮助我吗?

我使用i-report来设计我的pdf。以下是我的代码:

  def index = {
println(params)
def testModel = this .getProperties()。containsKey('chainModel')?
chainModel:null

JasperReportDef report = null
if(params.containsKey('auto_print_dialog')){

report = docuJasperService.buildReportDefinition(params ,
request.getLocale(),testModel)
}
else {
report = jasperService.buildReportDefinition(params,
request.getLocale(),testModel)
}
generateResponse(报告)
}

def generateResponse = {reportDef - >
if(!reportDef.fileFormat.inline&&!reportDef.parameters._inline){
//response.characterEncoding =UTF-8
//response.setHeader( Content-disposition,
//inline; filename = $ {params._name});
$ b $ response.setHeader(Content-disposition,inline;
filename =+(reportDef.parameters._name?:reportDef.name)+
。+ reportDef.fileFormat.extension);
response.contentType =application / pdf
response.outputStream<< reportDef.contentStream.toByteArray()
} else {

render(text:reportDef.contentStream,contentType:
reportDef.fileFormat.mimeTyp,
encoding:reportDef。 parameters.encoding?
reportDef.parameters.encoding:'UTF-8');


$ b


解决方案

这将由您用来生成报告的链接处理。通常添加一个_blank的目标将做到这一点。例如:

 < g:link controller =myReportsaction =whateverReporttarget =_ blank>点击为您的报告< / g:link> 

这会打开新标签中的链接。



如果您使用表单添加目标到表单将提交表单到一个新的选项卡。例如:

 < form name =myFormaction =whateverReportmethod =POSTtarget =_ blank > 

 < g:form name =myFormcontroller =myReportsaction =whateverReporttarget =_ blank> 

您甚至可以使用javascript window.open

I am using jasper plugin to generate my report. All is fine but except my pdf is opening on the current tab, when I want to open it in a new tab.

I have no idea how to do it. Can anybody please help me on this please?

I am using "i-report" to design my pdf. Here is my code below :

 def index = {
        println(params)
        def testModel = this.getProperties().containsKey('chainModel') ? 
                       chainModel : null

        JasperReportDef report = null
        if (params.containsKey('auto_print_dialog')){

            report = docuJasperService.buildReportDefinition(params,
            request.getLocale(), testModel)
        }
        else{
            report = jasperService.buildReportDefinition(params, 
                     request.getLocale(), testModel)
        }
        generateResponse(report)
    }

    def generateResponse = {reportDef ->
        if (!reportDef.fileFormat.inline && !reportDef.parameters._inline) {
     //response.characterEncoding = "UTF-8"
      //response.setHeader("Content-disposition", 
      //"inline; filename=${params._name}");

          response.setHeader("Content-disposition", "inline; 
          filename="+(reportDef.parameters._name ?: reportDef.name) + 
                   "."+reportDef.fileFormat.extension);
            response.contentType = "application/pdf"
            response.outputStream << reportDef.contentStream.toByteArray()
        } else {

        render(text: reportDef.contentStream, contentType:
               reportDef.fileFormat.mimeTyp,
               encoding: reportDef.parameters.encoding ? 
               reportDef.parameters.encoding : 'UTF-8');

        }
    }

解决方案

This is going to be handled by the link you use to generate the report. Typically adding a target of _blank will do the trick. For example:

<g:link controller="myReports" action="whateverReport" target="_blank">Click for your report</g:link>

This will open the link in a new tab.

If you are using a form adding target to the form will submit the form to a new tab. For example:

<form name="myForm" action="whateverReport" method="POST" target="_blank">

or

<g:form name="myForm" controller="myReports" action="whateverReport" target="_blank">

You could even do so with javascript window.open if you needed, but I will leave that example out of this answer as it's well documented elsewhere.

这篇关于在grails中使用jasper插件在新选项卡中打开报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆