参数

阅读(603) 标签: 自定义, 参数模板, 回调js函数,

缺省参数输入页面—1.1.2.a.jsp

为了方便用户快速体验报表的功能,当用户的关注点不在于参数录入页面而在于报表时,润乾报表的tag标签提供了generateParamForm属性,只要置为yes就可以自动生成参数录入表单,方便用户快速体验报表。

<report:html name="report1"

  ......

  generateParamForm="yes"

  ......

/>

 

参数模板—1.1.2.b.jsp

用润乾报表设计的参数模板,需要利用参数模板的tag进行发布,其自动与结果页面的报表关联。因此,比较简单的做法是把参数模板tag和结果报表tag写到一个页面里。如下所示:

 

<report:param name="form1" paramFileName="api/wangge_arg.rpx" />  //参数模板tag

<report:html name="report1"  //结果报表tag

      srcType="file"

      reportFileName="api/wangge.rpx"

      generateParamForm="no"

needImportEasyui="no"

    />

注意

缺省情况下每个tag标签都会引入一次Easyui样式。如上述jsp 所示,包含两个tag标签,因此默认就会引入两次Easyui样式,引入多次Easyui样式则会出现编辑控件显示不正常的现象。具体关于needImportEasyui属性的使用可参考《润乾报表V2018应用开发手册》文档所示。

 

自定义参数输入—1.1.2.c.jsp

如果用户自己定义参数输入页面,那么集成流程包括:设计参数页面——〉在接收页面中写代码接收参数——〉在接收页面里把参数拼成串传给tag

//用户自定义的参数输入页面

<FORM name="form1" action="#">   

    尊称:<INPUT type="text" name="appellation">

<input type="submit" value="查询">

</FORM>

//接收页面代码

<%  //获取由参数表单传递的值

    request.setCharacterEncoding("UTF-8");

    String param = "appellation="+request.getParameter("appellation");

%>

//:参数串param的格式是:paramName=paramValue;paramName2=paramValue2……

<report:html name="report1"

      srcType="file"

      reportFileName="api/wangge.rpx"

      generateParamForm="no"

      params="<%=param%>"    //将拼好的参数串传给tag

      exceptionPage="myError.jsp"

  />

 

Jsp中引用参数模板提交的参数1.1.2.d.jsp

 

参数模板提交的参数,保存在报表系统的参数池中,并没有存在request里,因此如果使用参数模板,要在结果页面里引用参数值,必须在报表的参数池中读取,而不应该从request里获得。

报表提供了两种从参数池中读取参数模板提交的参数值的方法,具体如下所示:

方法一:

<% 

  String reportParamsId=request.getParameter("reportParamsId");  //取得参数缓存的标识号

  //从参数缓存池中取得的参数保存于一个Hashtable

  Hashtable params = null;

  if(!"".equals(reportParamsId) && reportParamsId != null){

    params = com.raqsoft.report.view.ParamsPool.get( reportParamsId );

  }

  //接下来我们以参数名为key,直接从Hashtable中取参数模板中的传递的参数值

  String paramValue = (String) params.get("appellation");

  out.println("取得的参数值是:"+paramValue);

%>

方法二:

通过调用ReportUtils工具类中的getReportParamValue方法获取参数值

<% 

  //通过传递参数名和request请求获取参数值

  String paramValue=(String)com.raqsoft.report.util.ReportUtils.getReportParamValue(request, "appellation");

  out.println("appellation参数取得的参数值是:"+paramValue);

%>

◆参数表单提交回调js函数1.1.2.g.jsp

 

参数表单提交后通过callback回调js函数,当用户提供此函数后,表单采用ajax的方式提交,不刷新页面,系统将resultPage的内容作为参数去调用callback函数。如下所示:

1.1.2.g.jsp

<script language=javascript>

  function showReports(html){

  $("#reportDiv").html(html);

  } 

</script>

…..

<report:param name="form1" paramFileName=" api/call_arg.rpx "

needSubmit="no"

  callback="showReports"

  resultPage="/jsp/1.1.2.h.jsp?rpx= api/call.rpx"

  params="<%=param.toString()%>"

  />

<div id="reportDiv">

<report:html name="report1" reportFileName="api/call.rpx "

  funcBarLocation="top"

  needPageMark="yes"

  generateParamForm="no"

  params="<%=param.toString()%>"

  exceptionPage=" myError.jsp"

  appletJarName="raqsoftReportApplet.jar"

needImportEasyui="no"

  />

</div>

1.1.2.h.jsp

<report:html name="report1" reportFileName="api/call.rpx"

    funcBarLocation="top"

    needPageMark="no"

    generateParamForm="no"

    params="<%=param.toString()%>"

    exceptionPage=" myError.jsp"

    appletJarName="raqsoftReportApplet.jar"

needImportEasyui="no"

    />