报表学习笔记
一:关于网页框路劲不存在处理
此处是使用网页框展示pdf文件,取不到就会提示404。由于需求不想出现404页面,所以我就只能用js判断路径了。下面是我自己的代码示例(${pdfname}我的文件名是根据参数来判断选择的):
var Widget = this.options.form.getWidgetByName('rHIframe0');
var urlPath = "${serverURL}/WebReport/Pdf/${pdfname}/报告.pdf"
var xmlhttp=new XMLHttpRequest();
xmlhttp.open("GET", urlPath, false);
xmlhttp.send();
if(xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
//文件存在就加载文件
Widget.loadUrl(urlPath);
}
else if(xmlhttp.status == 404) {
//如果文件不存在就空白 ,或者加载自定义error页面
Widget.loadUrl("");
}
else {
//例如加载自定义页面
Widget.loadUrl("${serverURL}/WebReport/error.html");
}
}
另外提一点,就是在frm决策表单里自定义出错模板是否不生效。我个人测试没有生效,如果生效是可以自定义出错页面来取代这个做法的。
二:使用仪表盘,显示百分比,鼠标悬浮显示数值(自定义提示)
在使用仪表盘的时候,遇到这样一个需求。就是仪表盘展示一个实时进度,鼠标悬浮提示的是实际收入数值。因为我没有找到别的办法,就使用了js执行sql完成自定义提示。
下面是自定义提示里的js代码:
1.执行sql案例
//JS执行sql脚本案例
function(){
//取到分类截取到需要的信息,作为查询的条件
var lettername=this.category.substring(0,this.category.length-4);
//定义数据库连接
var sql ="SQL(\"ORCLDB\",\"select ***** from *** where lettername='"+lettername+"')\",1,1)";
//利用FR.remoteEvaluate(sql)函数执行sql返回结果
return FR.remoteEvaluate(sql);
}
2.执行存储过程案例
function(){
//参数根据存储过程的实际需求而定
var sql=" {call PROC_SSSR ('"+lettername+"',?)}";
//执行返回结果
var result = FR.remoteEvaluate('sql("ORCLDB","' + sql + '",1,1)');
return result;
}
三:加载闪过白屏(8.0下)在加载的时候8.0版本下的模板,会出现一个加载之后白屏一闪的现象。加载的数据越大越慢,白屏的时间就会越久。
这样一来体验不是很好,所以就加了这样一个需求。
我的做法就是报表初始化的时候给图表控件加一个隐藏,在加载数据完成的时候再显示图表控件。但是我不知道决策
表单怎么添加加载完成的事件。就利用加载的顺序在form的初始化事件里给控件加一个样式:
//不显示
setTimeout(function(){
$("body > div.content-container.fr-quick-border-layout.ui-state-enabled > div.fr-quick-adaptive-layout.ui-state-enabled > div:nth-child(5)").css("visibility","hidden");
},100)
然后再到body的加载事件里加一个样式:
//显示
setTimeout(function(){
$("body > div.content-container.fr-quick-border-layout.ui-state-enabled > div.fr-quick-adaptive-layout.ui-state-enabled > div:nth-child(5)").css("visibility","visible");
},1500)
不知我的做法是否可取,因为从数据加载的体验上 。这个延迟越大体验也会对应的较差,我也只是做了个投机取巧的事。
四:报表块跑马灯(如果做联动刷新,会出现报表块鼠标悬浮不停止)
在添加联动得地方,再加一个javascript事件 ,把滚动得js在复制一遍,这样可以解决这个问题
编辑于 2018-10-31 15:21
编辑于 2018-11-1 14:20
编辑于 2019-5-6 10:48