需求

润乾报表的标签需要在jsf页面中和其他填报控件一起使用,润乾报表负责展现录入部分数据,并且这部分数据和页面的其它控件的数据存在前台和后台的交互。

问题

润乾报表在前台会生成自己的form,嵌入到的jsf的form标签中后,出现两个form嵌套的情况,造成报表无法填报和提交。

Jsf1.1版本本身不支持两个form的提交,所以form并列的方式也不可取。

可行解决方案:

1:填报表解析后本身不作为一个form,当我们点击提交的时候动态生成一个iframe,这个iframe中生写一个form,再把报表数据写到这个form中去做提交保存操作。

2:可选择是否生成form。

1)当润乾填报表使用在jsf的form标签中时,选择不生成form,然后可以通过js方法遍历获取到填报的数据,将数据和其他填报套件的数据一同提交到后台处理。

2)当润乾填报表单独使用时,不嵌套在jsf的form标签中,选择生成form,润乾填报表可以填报保存数据。

实现的解决方案:

对于其它填报控件中数据需要和润乾填报的数据进行交互的情况,前台获取润乾填报表数据,跟用户自己开发的填报控件数据一同提交不失为一种很好的方法,因为这样数据可以直接进入客户的业务处理类进行交互处理。

目前润乾报表已经支持第二种处理方法,即选择不生成form标签。使用方法:

<f:view>

<h:form>

<f:subview
id=“a”>

<f:verbatim>

<report:html
name=“report1″
reportFileName=“mydataset.raq”

funcBarLocation=“top”

needPageMark=“yes”

needPrint=“yes”

needSaveAsWord=“yes”

submit=“保存“

generateParamForm=”no”

width=“-1″

reportEnterUrl=“add.jsf”

generateSubmitForm=“no”

exceptionPage=“/reportJsp/myError2.jsp”/>

</f:verbatim>

</f:subview>

<input
name=“get1″
value=“查看值1″
type=“button”
type=“form1″
onClick=“getInputData()”>

<input
name=“get2″
value=“查看值2″
type=“button”
type=“form1″
onClick=“getCycle()”>

</h:form>

</f:view>

遍历报表填报表中输入的数据,包括真实值,显示值,单元格与数据库字段的对应关系(单元格定义的html事件)的js:

<script type=”text/javascript”>

function getCycle(){  //cellName为扩展格的名称,n为扩展出几个,reportName为tag的name属性

_submitEditor(document.getElementById(‘report1′));

var rpt = document.getElementById(“report1″);

//获得报表的行数

var rowCount = rpt.rows.length;

//alert(rowCount);

//获得报表的列数

var colCount = rpt.rows[0].cells.length;

//alert(colCount);

for(var j=1;j<=colCount;j++){

var cname=”";

if(j==1) cname=”report1_A”;

if(j==2) cname=”report1_B”;

if(j==3) cname=”report1_C”;

if(j==4) cname=”report1_D”;

if(j==5) cname=”report1_E”;

if(j==6) cname=”report1_F”;

if(j==7) cname=”report1_G”;

for(var i=1;i<=rowCount;i++){

var cname1=cname+i.toString();

if(document.getElementById (cname1).modifiable){

var tempValue = document.getElementById (cname1).value; //获得单元格的真实值

      alert(“单元格”+i+”的真实值是”+tempValue);

var xsValue = document.getElementById (cname1).innerText; //获得单元格的显示值

      alert(“单元格”+i+”的显示值是”+xsValue);

var dbfiled = document.getElementById (cname1).dbfiled; //获得单元格的定义的html事件名称

      alert(“单元格”+i+”的数据字段是”+dbfiled);

}

}

}

}

//–>

</script>

总结:

数据交互即可后台处理,也可前台处理,以上方案适用于jsf使用自定义填报套件和润乾填报表一同进行数据保存处理或者jsp中form中使用润乾填报表的业务场景

润乾报表JSF FORM 标签中使用填报表解决方案的更多相关文章

  1. Dev中控件的js事件代码放在form标签中存在问题

    Dev中控件的js事件代码放在form标签中会获取不到(head标签中有其他js代码,未验证是否是这个问题)

  2. form标签中id和name属性的区别

    HTML元素的ID和Name属性的区别 一直认为ID和NAME是一样的,两个又可以一起出现,甚是疑惑. 今天BAIDU了一下,才发现里面大有文章.发出来研究研究: 最classical的答案:ID就像 ...

  3. Form标签+Css基础

      一.Form表单标签 <form action="" method=""></form>    表单就是用来将用户的信息提交到服务器 ...

  4. 浅谈table、form 标签

    1.<table> 标签 1.1包含的元素 <caption></caption>:表头信息. <tr></tr> :定义一个表格行: &l ...

  5. 推荐一款好用的国产web报表软件,轻松搞定复杂报表

    随着经济全球化程度的逐步加深以及全球市场的加速整合以便最大程度地对企业资源进行整合,从而达到降低成本和提高效率的目的.Web报表由于借助于web平台,即运用了B/S模式,即"浏览器/服务器& ...

  6. 润乾V4报表放入WEBINF保护目录下如何实现

     润乾报表放入WEBINF保护目录下如何实现 WEB-INF下面的文件都是受保护的,客户为了保护项目的文件不受到非法的访问,jsp页面都放在WEB-INF下,那润乾报表放入WEB-INF保护目录下 ...

  7. tomcat下部署润乾报表

    因为项目需要,需要在项目中配置润乾报表,之前一直是用的jboss服务器,此处调整为tomcat时出错,然后各种找错,找答案,最后终于好了,然后总结一下. 首先在apache-tomcat-6.0.43 ...

  8. 今天我碰到了由于web.xml文件表头信息导致润乾报表启动失败的问题,解决方案如下

    下面是从2.3,2.4.2.5 3.0集中版本的web.xml头信息的细节,当发现系统启动不报错但是该生成的功能没有正常生成,特别是在这次配置润乾报表的时候发现用2.4版本的时候,在web.xml中配 ...

  9. 润乾报表新功能–导出excel支持锁定表头

     在以往的报表设计中,锁定表头是会经常被用到的一个功能,这个功能不仅能使浏览的页面更加直观,信息对应的更加准确,而且也提高了报表的美观程度.但是,很多客户在将这样的报表导出excel时发现exce ...

随机推荐

  1. 在操作Centos系统时经常出现You have new mail in /var/spool/mail/root提示怎么回事?

    例如,在命令窗口中输入date查看时间,下面会出现一行提示 实际上,该功能为Linux操作系统核对系统资源状态并汇总,默认发送到root用户的/var/spool/mail/root目录,并在标准输出 ...

  2. Class与Style绑定

    本文主要介绍如何使用Vue来绑定操作元素的class列表和内联样式(style属性). 因为class和style都是属性,所以通过v-bind命令来处理它们:只需要通过表达式计算出结果即可,不过字符 ...

  3. Django中涉及金融的项目

    在Django中,如果一个项目涉及了金融,他的要求是十分严格的. 所以嘞,这里就有一些坑,很多坑,第一次开发的时候很容易出现一系列的错误 在涉及金融计算的地方,不能使用float类型 什么鬼,但事实就 ...

  4. Eclipse *的下载(图文详解)

    不多说,直接上干货! 简单了解,Eclipse是绿色软件,下载下来是个压缩包,只需要解压,加上jdk就可以运行了. 相比MyEclipse而言,它是免费的,后者是收费的.各有侧重吧 有很多人用Ecli ...

  5. gles2.0环境的在windows上的建立

    这里也有一个视频来讲解,大家可以看下,可以多提问题,意见,建议 http://edu.csdn.net/course/detail/606 #include <Windows.h> #in ...

  6. Docker挂载主机目录Docker访问出现Permission denied的解决办法

    Docker挂载主机目录,访问相应的文件出现Premission denied的权限访问问题,   [root@localhost soft]# docker images REPOSITORY    ...

  7. php的error_log()记录日志

    <?php date_default_timezone_set('PRC');//设置时区,否则会有警告 //把This s a error保存到/home/log-yyyy-MM-dd.txt ...

  8. java的if语句,少于一行可以省略大括号

    我们认识的 if 语句,大概是这样的: if(条件){ 语句1; }else{ 语句2; } 如果要执行的语句少于1行,大括号是可以省略的 可以让程序更简洁和美观 if(条件){ 语句1; 语句2; ...

  9. jenkins-node-pipeline

    Jenkins node创建 1.jenkins搭建参考我的另外一篇文章:    http://www.cnblogs.com/cuishuai/p/7544775.html 2.搭建完成后登录,选择 ...

  10. json 只能用 for-in 遍历

    [JS] var json1 = { 'name' : 'yy' , 'age' : 11 , 'fun' : '前端开发' }; for( var attr in json1 ) { alert( ...