在给公司制作大屏,使用了fineReport 的决策报表 FRM。 大屏包含一个表单,需要滚屏,并且滚完以后通过换sql参数换成一个新的内容。
比如 先显示A部门的内容, 滚屏20秒后,更换sql忠的 部门参数, 页面显示 B部门的内容, 只是更换值,表头都是固定的。
所以大屏包含两个JS 内容: 表单滚屏, 和 自动换参。
滚屏借鉴官方文档已经写好了,并写了个clearinterval ,让页面滚到底部后停止滚动。
现在卡在参数这一块两天了。
尝试过的办法 1. 由于滚屏要和换参数写在一起,保证滚完才能换参,而滚屏是写在body处的,所以就都得写在body这个地方, 但是body处又无法操作参数界面,因为 FRM 没有contentpane这个接口,(只有CPT有)
2. 将参数拖到画布,形成一个控件,然后用this 来调用, 但是它直接跳到2了,并没有经过0,滚屏,换参为1,滚屏这样的操作。 这里也是写在body处的 代码如下:
pid = this.options.form.getWidgetByName("pid");
//隐藏报表块report0的滚动条
setTimeout(function() {
$("div[widgetname=REPORT0]").find("#frozen-north")[0].style.overflow = "hidden";
$("div[widgetname=REPORT0]").find("#frozen-center")[0].style.overflow = "hidden";
}, 100);
window.flag = true;
var arr = ['0', '1', '2'];
for (let i = 0; i < arr.length; i++) {
alert(arr[i]);
pid.setValue(arr[i]);
var old = -1;
function move_screen() {
if (window.flag) {
currentpos = $("#frozen-center")[0].scrollTop;
if (currentpos == old) {
// $("#frozen-center")[0].scrollTop=0;
clearInterval(interval);
} else {
old = currentpos;
$("#frozen-center")[0].scrollTop = currentpos + 1.5;
}
}
};
var interval=setInterval(move_screen,40);
i = i+1
};
3. 使用tab,切换tab,但是同时又没法滚屏了。
问下大家有没有什么办法呢? |