999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于 FineReport 的可切換多圖表可視化頁面開發(fā)方案

2022-04-29 00:44:03曾曉鈺溫豐蔚羅斌韋通明張亮
計(jì)算機(jī)應(yīng)用文摘 2022年15期
關(guān)鍵詞:圖表

曾曉鈺 溫豐蔚 羅斌 韋通明 張亮

摘要:在可視化頁面開發(fā)的過程中,傳統(tǒng)方法是使用前后端分離開發(fā)技術(shù)。首先利用后端編寫業(yè)務(wù)方法獲取SQL數(shù)據(jù)并對(duì)其進(jìn)行處理,然后通過 response 返回給客戶端;前端編寫靜態(tài)頁面,發(fā)送HTTP請(qǐng)求,獲取HTTP響應(yīng),將獲取的數(shù)據(jù)通過聯(lián)調(diào)匹配到靜態(tài)頁面中。為提高可視化頁面開發(fā)效率和質(zhì)量,節(jié)省人力成本,使用FineReport 編輯器來開發(fā)可切換多圖表可視化頁面,文章詳述了頁面開發(fā)流程并展示了最終效果。

關(guān)鍵詞:FineReport;圖表;可視化頁面

中圖法分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A

Development scheme of switchable multi-chart visualizationpage based on FineReport

ZENG Xiaoyu,WEN Fengwei,LUO Bin,WEI Tongming,ZHANG Liang

(SAIC-GM-Wuling Automobile Co.,Ltd.Technology Center,Liuzhou,Guangxi 545007,China)

Abstract:In the process of visual page development, the traditional method is to use the front-end and back- end separation development technology. First, we use the back-end to write business methods to obtain SQL data and process it, and then return it to the client through the response. The front-end writes a static page, sends an HTTP request, obtains an HTTP response, and matches the obtained data to the static page through joint debugging. In order to improve the efficiency and quality of visualization page development and save labor costs, FineReport editor is used to develop switchable multi-chart visualization pages.The article details the page development process and shows the final effect.

Key words:FineReport, chart, visualization page

使用 FineReport 編輯器進(jìn)行可視化頁面開發(fā),首先,由于編輯器中組件風(fēng)格統(tǒng)一,省略 UI 設(shè)計(jì)環(huán)節(jié);其次,省略大量重復(fù)的前端 HTML 代碼,縮短前端開發(fā)時(shí)間;再次,省略后端業(yè)務(wù)方法開發(fā)過程,縮短后端開發(fā)時(shí)間;最后,前后端不分離,節(jié)省開發(fā)人手,一人足以完成前后端開發(fā)及聯(lián)調(diào)等工作。

1概述

對(duì)于可視化頁面來說,需要呈現(xiàn)多類型、多維度、多來源的數(shù)據(jù)報(bào)表,方便整合信息,統(tǒng)一分析。傳統(tǒng)開發(fā)方式一般為前后端分離開發(fā),使數(shù)據(jù)呈現(xiàn)在對(duì)應(yīng)圖表中。本文使用 FineReport 編輯器進(jìn)行頁面開發(fā),前后端不分離,直接通過 MySQL 語句編寫與公式處理,獲得需要的數(shù)據(jù)。

2實(shí)現(xiàn)方案

2.1工具介紹

FineReport 編輯器是由 Java 編寫的,具有多維數(shù)據(jù)分析平臺(tái),能夠采集前段、后端和歷史產(chǎn)生的所有數(shù)據(jù)。數(shù)據(jù)集來源可以多樣化,能夠支持 MySQL,SQL Sever, Access 等多種常用數(shù)據(jù)庫(kù)[1],且提供豐富的數(shù)據(jù)可視化圖表,支持 JavaScript 腳本的二次開發(fā)[2],是一種能夠?qū)崿F(xiàn)快速開發(fā)可視化頁面的 Web 報(bào)表軟件工具。

2.2實(shí)現(xiàn)流程

圖1是整個(gè)頁面通過 FineReport 編輯器設(shè)計(jì)實(shí)現(xiàn)的流程。首先,搭建頁面框架,用圖表、控件進(jìn)行頁面填充,得到靜態(tài)頁面;然后,根據(jù)需要編寫 js 函數(shù)實(shí)現(xiàn)動(dòng)態(tài)效果;接著,新建數(shù)據(jù)集,通過數(shù)據(jù)庫(kù)查詢數(shù)據(jù)集獲得相應(yīng)數(shù)據(jù),或者建立內(nèi)置數(shù)據(jù)集自行完成表數(shù)據(jù)填充。如須對(duì)數(shù)據(jù)進(jìn)行二次處理,可將數(shù)據(jù)列拖拽到新建報(bào)表塊,用公式進(jìn)行二次計(jì)算處理,然后設(shè)置報(bào)表塊隱藏,在頁面上呈現(xiàn)二次處理后的數(shù)據(jù);最后,將數(shù)據(jù)設(shè)置到對(duì)應(yīng)顯示圖表中,通過本地瀏覽器進(jìn)行聯(lián)調(diào),最終完成整個(gè)可視化頁面的開發(fā)工作。

2.3靜態(tài)頁面設(shè)計(jì)

通過標(biāo)簽和按鈕的控件組合,添加 js 方法,可以達(dá)到點(diǎn)擊按鈕切換 Tab 頁面、點(diǎn)擊按鈕切換標(biāo)簽排序等效果;下拉選擇器用于篩選數(shù)據(jù),可以直接當(dāng)作動(dòng)態(tài)參數(shù)放入數(shù)據(jù)庫(kù)查詢數(shù)據(jù)集內(nèi)組合動(dòng)態(tài) MySQL 語句,也可在二次處理的報(bào)表塊內(nèi)設(shè)置,實(shí)現(xiàn)復(fù)雜的篩選效果;日期選擇器可以設(shè)置默認(rèn)值、限制日期值范圍、通過公式與另一個(gè)日期數(shù)據(jù)聯(lián)動(dòng),呈現(xiàn)日期范圍選擇的效果;圖表則可以通過常規(guī)設(shè)置展示獲得數(shù)據(jù)。

2.4開發(fā)涉及的部分 JS 方法

(1)使用按鈕切換 Tab 塊。實(shí)現(xiàn)思路:設(shè)置兩個(gè)按鈕(button0,button1)對(duì)應(yīng)兩個(gè) Tab 頁切換塊,分別給兩個(gè)按鈕添加點(diǎn)擊事件,并在事件里設(shè)置“_g(). options. form. getWidgetByName (‘ tablayout ). showCardByIndex([獲得值])”。其中,0代表第一個(gè)Tab 塊序號(hào),1代表第二個(gè) Tab 塊序號(hào)。之后,將自帶的 Tab 切換塊 Tabpane 高度設(shè)置為0隱藏起來,即可實(shí)現(xiàn)通過點(diǎn)擊按鈕切換 Tab 塊頁面的效果。

(2)自動(dòng)無限滾動(dòng)列表。實(shí)現(xiàn)思路:給報(bào)表塊(report0)設(shè)置初始化方法。添加代碼“_ g (). options. form. getWidgetByName (‘ report0). startMarquee({ offset:1,interval:0.05,to:'top'})”,代表每0.05s 向上滾動(dòng)1px。

(3)切換提示標(biāo)簽的“前十位”與“末十位”。實(shí)現(xiàn)思路:設(shè)置兩個(gè)按鈕( button0,button1)對(duì)應(yīng)“前十位”和“末十位”,分別點(diǎn)擊可以獲得1和?1,代表正序和倒敘排序。將值放在一個(gè) label 控件(label0)中,通過按鈕點(diǎn)擊方法,設(shè)置“_ g ().options.form. getWidgetByName(‘label0).setValue ([獲得值])”,將對(duì)應(yīng)按鈕值放到 label 中,通過 label 值判斷排序狀態(tài)。修改“圖表?樣式?提示?內(nèi)容?自定義”中的代碼,獲取 label 的值,由此判斷圖表值分類后是正序/倒敘排列,并取“前十位”/“末十位”。圖表提示代碼如下:

function(){

var sortFlag =_g().options.form.getWidgetByName ('label0').getValue();

var value = this.category;

var points = this.points.sort(function(a,b){ var y = a.value;var x = b.value;

return sortFlag ?( x < y ?-1:( x > y ?1:0));})

var len = points.length >10?10:points.length; if (sortFlag ==1){

for( var i =0;i < len;i++){

if(points[i].series.visible){

value +="

"+points[ i].seriesName+":"+points [i].value;

}

}

} else if (sortFlag ==?1){

for( var i = len?1;i >=0;i??){

if(points[i].series.visible){

value +="

"+points[ i].seriesName+":"+points [i].value;

}

}

}

return value;

}

2.5新建數(shù)據(jù)集

本次開發(fā)涉及數(shù)據(jù)庫(kù)查詢數(shù)據(jù)集和內(nèi)置數(shù)據(jù)集。數(shù)據(jù)庫(kù)查詢,即通過編寫 MySQL 語句,從數(shù)據(jù)庫(kù)中獲得數(shù)據(jù),一般用其獲取大量、動(dòng)態(tài)的數(shù)據(jù);內(nèi)置數(shù)據(jù)集,即直接在編輯器內(nèi)自行進(jìn)行表設(shè)計(jì)和數(shù)據(jù)填充,一般用其獲取少量、靜態(tài)的數(shù)據(jù)。數(shù)據(jù)庫(kù)查詢數(shù)據(jù)集可以直接與圖表聯(lián)調(diào),也可以通過報(bào)表塊進(jìn)行二次處理后再聯(lián)調(diào)。內(nèi)置數(shù)據(jù)集可以通過設(shè)計(jì)列 value 和 label,在下拉選擇器中呈現(xiàn)顯示值和實(shí)際值不一致的效果。

2.6開發(fā)涉及的部分公式

(1)IF(boolean,value1,value2):判斷 boolean,為 true 則取 value1,false 則取 value2。

(2) ROUND( number,num_digits):返回 number 按 num_digits 指定位數(shù)四舍五入后的數(shù)字。

(3) INDEXOFARRAY ( array ,index):獲取 array 第 index 位數(shù)據(jù)。

(4)MAPARRAY( array,fn):將 array 中項(xiàng)目轉(zhuǎn)換到另一個(gè)數(shù)組,fn 即 function,是處理數(shù)組項(xiàng)目的函數(shù)。例如, MAPARRAY ( range (7), format (DATEDELTA ( today (),?item +1),"yyyy?MM? dd"))表示獲取今天至前7天的日期數(shù)組。

(5)DATEDELTA(date,deltadays):返回日期 date 后 deltadays 的日期。例如,DATEDELTA( today(),?1)表示昨天,DATEDELTA( today(),1)表示明天。

2.7圖表聯(lián)調(diào)數(shù)據(jù)并調(diào)試

進(jìn)行圖表與數(shù)據(jù)聯(lián)調(diào)時(shí),數(shù)據(jù)庫(kù)查詢數(shù)據(jù)集的數(shù)據(jù)可以直接放入圖表進(jìn)行展示,也可以通過隱藏報(bào)表塊進(jìn)行二次處理,在圖表數(shù)據(jù)中設(shè)置放入單元格數(shù)據(jù)。需要注意的是,F(xiàn)ineReport 報(bào)表頁面中數(shù)據(jù)的刷新依賴動(dòng)態(tài)參數(shù)的變化,此時(shí)需要在圖表的“特效?交互屬性?監(jiān)控刷新”中設(shè)置后臺(tái)監(jiān)測(cè)開啟。針對(duì)二次處理數(shù)據(jù)的報(bào)表塊,如果動(dòng)態(tài)參數(shù)未在該報(bào)表塊應(yīng)用,則報(bào)表塊不會(huì)刷新數(shù)據(jù),所以需要在報(bào)表塊中以公式寫入單元格的形式放入算法涉及的動(dòng)態(tài)參數(shù),再將其設(shè)置為隱藏,才可實(shí)現(xiàn)報(bào)表塊數(shù)據(jù)動(dòng)態(tài)刷新的效果。

3結(jié)語

本文介紹了基于 FineReport 編輯器開發(fā)的可切換多圖表可視化頁面,本質(zhì)是 FineReport 編輯器已對(duì)底層代碼進(jìn)行封裝,使用 FineReport 編輯器時(shí),只用進(jìn)行較為簡(jiǎn)單的拖拽、設(shè)置等操作就可以完成可視化頁面的開發(fā)。總之,F(xiàn)ineReport 編輯器易于上手,節(jié)省成本,便于維護(hù),統(tǒng)一風(fēng)格,是一種非常實(shí)用的可視化頁面開發(fā)方案。

參考文獻(xiàn):

[1]李欣烊.基于 FineReport 與企業(yè)系統(tǒng)相結(jié)合實(shí)現(xiàn)數(shù)據(jù)可視化[J].科學(xué)與信息化,2021(26):44?46.

[2]查曉俊,楊玉志,成剛,等.基于 FineReport 的醫(yī)療設(shè)備采購(gòu)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[ J].醫(yī)療衛(wèi)生裝備,2021,42(1):32?37.

作者簡(jiǎn)介:

曾曉鈺(1995—),本科,助理工程師,研究方向:基于 FineReport 開發(fā)可視化報(bào)表頁面。

猜你喜歡
圖表
圖表
方圓(2016年23期)2017-02-05 19:31:45
圖表
方圓(2016年22期)2016-12-06 19:27:28
雙周圖表
足球周刊(2016年14期)2016-11-02 10:54:56
雙周圖表
足球周刊(2016年15期)2016-11-02 10:54:16
圖表
足球周刊(2016年11期)2016-10-09 11:53:25
雙周圖表
足球周刊(2016年10期)2016-10-08 18:30:55
圖表
世界博覽(2016年16期)2016-09-27 18:25:26
圖表
世界博覽(2016年15期)2016-09-27 10:47:51
圖表
方圓(2016年7期)2016-04-20 19:51:11
圖表
方圓(2016年5期)2016-03-16 19:57:32
主站蜘蛛池模板: 人妻少妇乱子伦精品无码专区毛片| 国产成人高清精品免费软件| jizz在线观看| 毛片免费在线视频| 免费A级毛片无码免费视频| 五月丁香在线视频| 久草视频福利在线观看| 在线观看免费人成视频色快速| 无码AV高清毛片中国一级毛片| 2021国产v亚洲v天堂无码| 亚洲精品少妇熟女| 91尤物国产尤物福利在线| 高清不卡毛片| 亚洲欧美日韩动漫| 久久香蕉国产线| 香蕉久久永久视频| a级毛片免费在线观看| 久996视频精品免费观看| 粗大猛烈进出高潮视频无码| 国产精品香蕉在线观看不卡| 99九九成人免费视频精品 | 亚洲人成色77777在线观看| 少妇被粗大的猛烈进出免费视频| 国产白浆视频| 91无码人妻精品一区二区蜜桃| 国产香蕉在线视频| 欧美有码在线| 中国成人在线视频| 成年av福利永久免费观看| 亚洲欧洲综合| 日本在线视频免费| 伊伊人成亚洲综合人网7777 | 熟女日韩精品2区| 亚洲日韩AV无码一区二区三区人| 亚洲综合色婷婷中文字幕| 精品国产成人三级在线观看| 亚洲视频在线青青| 国产无码制服丝袜| 亚洲一区二区视频在线观看| 午夜爽爽视频| 狼友av永久网站免费观看| 欧美色图第一页| 日本91在线| 欧美亚洲香蕉| 亚洲第一视频网| 久久综合九色综合97网| 欧美亚洲一区二区三区导航| 天天色综网| 人人妻人人澡人人爽欧美一区 | 亚洲首页在线观看| 国产成人亚洲无吗淙合青草| 99热亚洲精品6码| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品性| 中文字幕无线码一区| 在线观看欧美精品二区| 欧美五月婷婷| 又爽又大又黄a级毛片在线视频| 偷拍久久网| 亚洲欧美综合在线观看| 欧美a在线| 青青草原偷拍视频| 色婷婷天天综合在线| 亚洲精品福利网站| 中文字幕不卡免费高清视频| 91视频国产高清| 欧美α片免费观看| 国产综合精品日本亚洲777| www.99精品视频在线播放| 久久人妻xunleige无码| 欧美va亚洲va香蕉在线| 日韩欧美91| 久久99精品久久久久纯品| 亚洲精品视频免费| 婷婷六月天激情| 国产波多野结衣中文在线播放| 午夜啪啪福利| 一级香蕉视频在线观看| 91麻豆精品国产高清在线| 国产网站一区二区三区| 国产精品福利一区二区久久| 日韩在线成年视频人网站观看|