-
-
lin786682931 初学数据Lv2
发表于2020-9-8 17:27
悬赏1
已解决
sql直接设置成不缓存,然后在报表中加自动刷新脚本。
在这位置添加客户端脚本

这里提供两个脚本一个是刷新一整个页面一个是刷新容器
- 刷新整个页面
- setTimeout(function(){
- _z('<#=srcrpt.id#>','drillpath=;hiddencalcparams=false');
- },500)//500为刷新时间间隔单位毫秒
- 刷新容器
- setInterval(function() {
- _zcalcn([['Widget1','HHH8','']]);
- }, 2000);//2000为刷新时间间隔单位毫秒
代码如下
- /***
- **表格内容自动轮播脚本
- **@param tableDom内容滚动的表格,最好是表格的父DIV
- **@param visibleHeight 可视区的高度
- ***/
- function autoScrollTable(tableDom, visibleHeight) {
- var marqueesHeight = visibleHeight;
- var stopscroll = false;
- var scrollElem = tableDom;
- var freshScrollHeight = tableDom.firstElementChild.offsetHeight/4;
- var preTop = 0;
- var currentTop = 0;
- var stoptime = 0;
- with (scrollElem) {
- style.height = parseFloat(marqueesHeight) + "px";
- style.overflow = 'hidden';
- noWrap = true;
- }
- var scrollUp = function () {
- if (stopscroll) {
- setTimeout(scrollUp, 50);
- return;
- }
- currentTop += 1;
- if (currentTop == (marqueesHeight + 1)) {
- stoptime += 1;
- currentTop -= 1;
- if (stoptime == 1) {
- currentTop = 0;
- stoptime = 0;
- }
- } else {
- preTop = scrollElem.scrollTop;
- scrollElem.scrollTop += 1;
- if (preTop == scrollElem.scrollTop) {
- //console.log("preTop =" + preTop);
- scrollElem.scrollTop = freshScrollHeight + 2;
- scrollElem.scrollTop += 1;
- }
- }
- setTimeout(scrollUp, 50);//50控制滚动频率,越小越快单位毫秒
- };
- var restartScroll = function () {
- scrollElem.scrollTop = 0;
- setTimeout(scrollUp, 50);
- };
- jQuery(tableDom).hover(function () {
- stopscroll = true;
- }, function () {
- stopscroll = false;
- });
- //控制开始是否延迟
- setTimeout(restartScroll, 0);
- }
- /*
- *复制表格每行内容
- */
- function copyTableRows(tableDom) {
- var tBody = tableDom.firstElementChild.children[1];
- var rowList = tBody.children;
- var rowLength = rowList.length;
- for(var i=0 ; i<rowLength ; i++){
- var trow = rowList[i];
- var newTR = tBody.insertRow(rowLength+i);
- newTR.style.height = trow.style.height;
- copyRowCells(trow , newTR);
- }
- }
- /*
- *复制每行的列内容
- */
- function copyRowCells(trow , newTR) {
- var cellList = trow.children;
- var cellLength = cellList.length;
- var cellHtml = "";
- for(var i=0 ; i<cellLength ; i++){
- var cell = cellList[i];
- cellHtml += cell.outerHTML;
- }
- newTR.innerHTML = cellHtml;
- }
- //复制表格行内容 GRID1表格代码 HHH2容器代码
- copyTableRows(document.getElementById('GRID1'));
- autoScrollTable(document.getElementById('GRID1'),document.getElementById("HHH2").clientHeight);
因为滚动表格需要放在容器中,所以实际上需求刷新可以使用容器刷新脚本。
7个回答
本帖最后由 xxxl 于 2020-9-15 13:48 编辑
sql直接设置成不缓存,然后在报表中加自动刷新脚本。
在这位置添加客户端脚本
这里提供两个脚本一个是刷新一整个页面一个是刷新容器
- 刷新整个页面
- setTimeout(function(){
- _z('<#=srcrpt.id#>','drillpath=;hiddencalcparams=false');
- },500)//500为刷新时间间隔单位毫秒
- 刷新容器
- setInterval(function() {
- _zcalcn([['Widget1','HHH8','']]);
- }, 2000);//2000为刷新时间间隔单位毫秒
代码如下
- /***
- **表格内容自动轮播脚本
- **@param tableDom内容滚动的表格,最好是表格的父DIV
- **@param visibleHeight 可视区的高度
- ***/
- function autoScrollTable(tableDom, visibleHeight) {
- var marqueesHeight = visibleHeight;
- var stopscroll = false;
- var scrollElem = tableDom;
- var freshScrollHeight = tableDom.firstElementChild.offsetHeight/4;
- var preTop = 0;
- var currentTop = 0;
- var stoptime = 0;
- with (scrollElem) {
- style.height = parseFloat(marqueesHeight) + "px";
- style.overflow = 'hidden';
- noWrap = true;
- }
- var scrollUp = function () {
- if (stopscroll) {
- setTimeout(scrollUp, 50);
- return;
- }
- currentTop += 1;
- if (currentTop == (marqueesHeight + 1)) {
- stoptime += 1;
- currentTop -= 1;
- if (stoptime == 1) {
- currentTop = 0;
- stoptime = 0;
- }
- } else {
- preTop = scrollElem.scrollTop;
- scrollElem.scrollTop += 1;
- if (preTop == scrollElem.scrollTop) {
- //console.log("preTop =" + preTop);
- scrollElem.scrollTop = freshScrollHeight + 2;
- scrollElem.scrollTop += 1;
- }
- }
- setTimeout(scrollUp, 50);//50控制滚动频率,越小越快单位毫秒
- };
- var restartScroll = function () {
- scrollElem.scrollTop = 0;
- setTimeout(scrollUp, 50);
- };
- jQuery(tableDom).hover(function () {
- stopscroll = true;
- }, function () {
- stopscroll = false;
- });
- //控制开始是否延迟
- setTimeout(restartScroll, 0);
- }
- /*
- *复制表格每行内容
- */
- function copyTableRows(tableDom) {
- var tBody = tableDom.firstElementChild.children[1];
- var rowList = tBody.children;
- var rowLength = rowList.length;
- for(var i=0 ; i<rowLength ; i++){
- var trow = rowList[i];
- var newTR = tBody.insertRow(rowLength+i);
- newTR.style.height = trow.style.height;
- copyRowCells(trow , newTR);
- }
- }
- /*
- *复制每行的列内容
- */
- function copyRowCells(trow , newTR) {
- var cellList = trow.children;
- var cellLength = cellList.length;
- var cellHtml = "";
- for(var i=0 ; i<cellLength ; i++){
- var cell = cellList[i];
- cellHtml += cell.outerHTML;
- }
- newTR.innerHTML = cellHtml;
- }
- //复制表格行内容 GRID1表格代码 HHH2容器代码
- copyTableRows(document.getElementById('GRID1'));
- autoScrollTable(document.getElementById('GRID1'),document.getElementById("HHH2").clientHeight);
因为滚动表格需要放在容器中,所以实际上需求刷新可以使用容器刷新脚本。
-
lin786682931 初学数据Lv2
xxxl 发表于 2020-9-8 17:27
sql直接设置成不缓存,然后在报表中加自动刷新脚本。
在这位置添加客户端脚本
这里提供两个脚本一个是刷新 ...
这个自动刷新和滚动能一起放进去么?
-
lin786682931 初学数据Lv2
xxxl 发表于 2020-9-15 13:32
可以 但是不会很流畅,因为每次刷新都会重新滚动
自动刷新的时间和滚动的时间,可否帮忙说下是哪个,因为要根据单据频率做刷新时间的安排
xxxl 发表于 2020-9-8 17:27
sql直接设置成不缓存,然后在报表中加自动刷新脚本。
在这位置添加客户端脚本
这里提供两个脚本一个是刷新 ...
老师好!
我做了ETL过程流的调度,每十五分钟刷新一次,数据分析页面也是设置了15分钟刷新了一次。但是ETL并没有及时刷新,手动运行ETL,数据分析页面再刷新会更新新的数据。求助是什么原因,怎么解决,谢谢!
ETL调度设置如下:

数据分析刷新设置如下:
setTimeout(function(){
_z('<#=srcrpt.id#>','drillpath=;hiddencalcparams=false');
},900000)
另外,以上代码需要 sql直接设置成不缓存,这个在哪里设置?
我的数据分析页面还时而报警如下:请问是什么原因?
