数据管理软件FineReport中如何设置编码转换

 时间:2024-10-13 12:31:09

1、javascript中FineReport字符转换原理在给报表服务器发送请求之前,对URL或者只对URL里面的参数名字和参数值,进行cjkEncode的编码。源码如下:function cjkEncode(text) { if (text == null) { return ""; } var newText = ""; for (var i = 0; i < text.length; i++) { var code = text.charCodeAt (i); if (code >= 128 || code == 91 || code == 93) {//91 is "[", 93 is "]". newText += "[" + code.toString(16) + "]"; } else { newText += text.charAt(i); } } return newText; }经过编码的URL或者Form表单,报表服务器智能的将这些字符正确的转换过来。cjkEncode方法在FineReport的JS库中已经预先提供了,用户只要加载了FR的JS库,就可以使用FR.cjkEncode对中日韩文字符进行encode,如下示例:

2、对URL进行cjkEncode<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script><Script Language="JavaScript"> function frOpen() { window.location=FR.cjkEncode("http://localhost:8075/WebReport/ReportServer?reportlet=doc/Primary/Parameter/Parameter.cpt&地区=华东"); } </Script></head><body><input type="button" value="字符转换1" onclick="frOpen()"></body></html>

3、如果只对参数值进行编辑转换,在参数后面调用FR.cjkEncode()方法,如:window.location="http://localhost:8075/WebReport/ReportServer?reportlet=reportname.cpt¶name="+FR.cjkEncode("华东");

4、对Form表单进行cjkEncode如果是以Form表单把参数提交到报表里面,也同样需要在提交前调用cjkEncode进行编码转换,如下例子<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"/><script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script><script>function autoSubmit() {var Region1 = document.getElementById('Region'); //获取到参数Region所在文本框Region1.value = FR.cjkEncode(Region.value); //对值参数值进行编码转化Region1.name = FR.cjkEncode("地区"); //对参数控件名编码转换,如果参数名字为英文,则不需要此操作document.FRform.submit();}</script><body><form name=FRform method=post action="/WebReport/ReportServer?reportlet=doc/Primary/Parameter/Parameter.cpt"><input type="text" id="Region" name="地区" value="华东"><input type="button" name="show" value= "查看" onclick="autoSubmit()"/></body></html>

5、特殊符号处理如果在需要进行cjkEncode的URI的参数中包含特殊字符,比如%,#,$,=,&,/,?,+,@等字符时,需要在cjkEncode之后,再次调用javascript的encodeURIComponent对这些特殊字符进行编码。如参数值是”%华%“这样的字符,就需要写成encodeURIComponent(FR.cjkEncode("%华%")),一定要先进行cjkEncode,然后再进行encodeURIComponent,完整代码如下:<html><head><meta http-equiv="Content-Type" content="text/html; charset=GBK"><script type="text/javascript" src="ReportServer?op=emb&resource=finereport.js"></script><Script Language="JavaScript"> function frOpen() { window.location=FR.cjkEncode("http://localhost:8075/WebReport/ReportServer?reportlet=doc/Primary/Parameter/Parameter.cpt&地区=") +encodeURIComponent(FR.cjkEncode("%华%")); } </Script></head><body><input type="button" value="字符转换1" onclick="frOpen()"></body></html>

  • 腊肠肉烙火烧
  • 天下手游如何拜师?
  • oracle游标错误
  • JS,jQuery怎样禁止form表单提交数据
  • 数据分析软件FineReport教程:[29]多值查询
  • 热门搜索
    过年手抄报简单又漂亮 勿忘国耻振兴中华手抄报 国庆节手抄报图片大全简单又漂亮 关于童话的手抄报 关于新型冠状病毒的手抄报 友善手抄报 抗击冠状病毒手抄报 世界遗产手抄报 小学生文明手抄报 重阳节手抄报简单好看