找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,极速登录

请上传宽度大于 1200px,高度大于 164px 的封面图片
    调整图片尺寸与位置
    滚轮可以放大缩小图片尺寸,按住图片拖动可调整位置,多余的会自动被裁剪掉
取消
qinzhen(uid:174564)
职业资格认证:FCRA
报表学习笔记
一:关于网页框路劲不存在处理 此处是使用网页框展示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
个人成就
内容被浏览5,662
加入社区3年28天
贡献:0

联系社区管理员|联系帆软|《帆软社区协议》|手机版|帆软社区|Copyright © 帆软软件有限公司 ( 苏ICP备18065767号-7 )

GMT+8, 2021-9-17 08:10 , Processed in 0.417259 second(s), 46 queries , Gzip On.

返回顶部