報表實時重新整理顯示時間

2021-09-02 00:14:02 字數 1889 閱讀 1826

這種形式的「動態報表」其實在我們生活中也隨處可見,最常見的就是火車站大螢幕上的列車時刻表,上面顯示的當前時間,讓旅客能夠一目了然地知道自己的列車還有多長時間開,等待的列車什麼時候到。

其實,要在報表中做到上面的效果很簡單,基本思路就是讓頁面定時(比如每隔一秒鐘)呼叫 js 方法,在 js 中通過單元格的 id 獲取到顯示時間的那個格仔,將當前時間作為這個格仔的新值顯示就可以了。

下面,我們就具體看看如何通過潤幹報表實現這樣司空見慣的動態顯示時間效果。

前面第乙個圖是在潤幹報表設計器自帶的報表「裝置故障分析.rpx」的基礎上實現的,接下來我們就用這個報表作為例子進行說明。我們首先在自帶報表中新增時間,合併 n4、o4 單元格,並在該合併格中設定單元格表示式 =string(now(),」yyyy 年 mm 月 dd 日 hh:mm:ss」)。

然後,我們開啟報表展現頁面 showreport.jsp,在這個頁面中設定標籤屬性 generatecellid,以便報表單元格在頁面生成格仔的 id。

開啟原始的報表展現頁面,我們發現設定當前時間的單元格,並沒有生成對應的 id,如下圖所示:

為了在 js 指令碼中能夠通過 id 可以獲得到該單元格,以便修改該單元格的值,我們需要在展現的頁面中新增標籤屬性 generatecellid=」yes」,如下圖所示:

設定了該屬性後,我們可以在頁面中可以看到,該單元格生成了對應的 id 值:

接下來,我們在在報表展現的頁面中新增動態改變單元格值的 js 方法 myrefresh(), 在這個方法中通過單元格的 id 動態改變該單元格中的顯示時間,同時通過 settimeout() 在 1 秒後呼叫函式 myrefresh。由於 settimeout()函式只會被呼叫一次,所以我們還需要在 myrefresh() 函式體中也加上這個函式,從而達到迴圈呼叫的效果,下面是具體的 js 方法:

function myrefresh()

var tbl = document.getelementbyid(「report1_n12」);

var mydate = new date();

tbl.innerhtml=mydate.tolocalestring( );

settimeout(『myrefresh()』,1000);

settimeout(『myrefresh()』,1000);

. 這樣,經過以上的簡單設定,我們就可以在 showreport.jsp 頁面中展現「裝置故障分析.rpx」報表,並且在頁面上方看到實時變化的時間了,頁面效果如下:

通過這個簡單的例子,我們知道,就像開篇所說,報表不僅能夠呈現固定的統計彙總資料,還有相當不錯的動態展示能力。我們在這裡使用的定時呼叫 js 改變單元格的值的方式,可以實現頁面區域性內容的動態變化,而且沒有閃爍重新整理,毫無違和感!

怎麼樣,意不意外?驚不驚喜?讓我們趕緊擼起袖子利用報表讓資料展現更加豐富起來吧!

報表實時顯示時間

這種形式的 動態報表 其實在我們生活中也隨處可見,最常見的就是火車站大螢幕上的列車時刻表,上面顯示的當前時間,讓旅客能夠一目了然地知道自己的列車還有多長時間開,等待的列車什麼時候到。其實,要在報表中做到上面的效果很簡單,基本思路就是讓頁面定時 比如每隔一秒鐘 呼叫 js 方法,在 js 中通過單元格...

實時顯示當前時間,按秒重新整理

問題 例如門戶系統顯示的當前時間,按秒重新整理的方式顯示。解決方法 vue main.js date.prototype.format function fmt if y test fmt for var k in o return fmt 呼叫方法 var date newdate var tim...

js實時顯示時間

mydate.getyear 獲取當前年份 2位 mydate.getfullyear 獲取完整的年份 4位,1970 mydate.getmonth 獲取當前月份 0 11,0代表1月 mydate.getdate 獲取當前日 1 31 mydate.getday 獲取當前星期x 0 6,0代表星...