新聞中心
怎樣使用web報(bào)表開發(fā)工具FineReport來(lái)頁(yè)面集成
方法/步驟
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來(lái)客戶和效益!成都創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站設(shè)計(jì)負(fù)責(zé)任的成都網(wǎng)站制作公司!
1
1. 將報(bào)表顯示在Frame框架內(nèi)
1.1 集成方法
報(bào)表作為頁(yè)面的一部分,可以以iFrame方式嵌入在網(wǎng)頁(yè)中,指定iFrame的src即可。
2
用戶可以控制iframe的位置來(lái)控制報(bào)表在頁(yè)面的什么地方顯示,還能夠通過(guò)iframe獲取到報(bào)表,從而獲取報(bào)表內(nèi)容或調(diào)用報(bào)表內(nèi)部現(xiàn)成的方法,我們?cè)诤罄m(xù)章節(jié)會(huì)進(jìn)行介紹。
注:此方法iframe的src會(huì)顯示出完整的報(bào)表路徑,尤其在有參數(shù)的情況下,可以使用post方式向iframe提交請(qǐng)求,這樣src里有不會(huì)出現(xiàn)具體的參數(shù)了。
2.2 示例
我們以HTML為例,將報(bào)表嵌入到一個(gè)HTML頁(yè)面中:
3
2.3 效果查看
在瀏覽器中輸入,效果如下:
4
已完成示例請(qǐng)參照%FR_HOME%\WebReport|page_demo\Simple.html
在線查看示例效果請(qǐng)點(diǎn)擊Simple.html。
3. 不支持將報(bào)表顯示在div內(nèi)
若您希望自己系統(tǒng)頁(yè)面中的按鈕調(diào)用FineReport內(nèi)部現(xiàn)成的js方法如(打印方法),需要加載FineReport的js文件,F(xiàn)R的js采用jquery v1.9.2框架;
實(shí)際情況下,一個(gè)頁(yè)面中可能不僅僅只有報(bào)表部分,用戶可能會(huì)加載其他版本的jquery,為避免js沖突,我們建議將報(bào)表內(nèi)容顯示在iFrame中,而不要顯示在div中。
需要調(diào)用FR內(nèi)部的js方法時(shí),可以通過(guò)iFrame獲取報(bào)表再調(diào)用方法,具體可參考js使用說(shuō)明文檔。
使用React制作簡(jiǎn)易財(cái)務(wù)報(bào)表
1.創(chuàng)建項(xiàng)目
2.cd到該文件夾
3.運(yùn)行(開發(fā)模式)
如果再起一個(gè)服務(wù)器,可能會(huì)出現(xiàn)端口號(hào)不會(huì)自動(dòng)排的現(xiàn)象,針對(duì)這種情況,可以在package.json中自行設(shè)置端口號(hào),如下圖
4.模擬數(shù)據(jù)服務(wù)器
4.1? 使用GitHub登錄,創(chuàng)建一個(gè)新項(xiàng)目
4.2點(diǎn)擊進(jìn)入
4.3點(diǎn)擊進(jìn)入
??4.4填寫信息
???4.4.1填寫路由名稱(數(shù)據(jù)表名)
???4.4.2填寫數(shù)據(jù)表里的內(nèi)容
???4.4.3生成鏈接
???4.4.4在瀏覽器地址欄中輸入地址加路由records
4.5訪問數(shù)據(jù)
第一種方法:通過(guò)外網(wǎng)進(jìn)行訪問
①瀏覽器地址欄測(cè)試數(shù)據(jù)訪問
???②終端測(cè)試數(shù)據(jù)訪問
???③瀏覽器console debug欄測(cè)試api接口(get方式)
???第二種方法:將json數(shù)據(jù)存放在本地服務(wù)器進(jìn)行訪問
???1.鏈接:
???2.全局安裝
???3.在fssytem中創(chuàng)建一個(gè)json文件格式為{“records”:},然后將前文通過(guò)外 網(wǎng)地址訪問到的數(shù)據(jù)賦值粘貼到:后面
??4.運(yùn)行服務(wù)器
5.在地址欄中輸入命令中的http地址(服務(wù)器運(yùn)行中)
4.6App.js中
4.7發(fā)送請(qǐng)求獲取數(shù)據(jù)(在項(xiàng)目中使用jQuery和axios優(yōu)化App.js)之使用 jQuery方式
4.7.1命令安裝jquery
4.7.2 App.js中導(dǎo)入jQuery組件
4.7.3使用jQuery發(fā)請(qǐng)求
4.7.4使用傳統(tǒng)的map遍歷(App.js中)
4.7.5records文件中
???4.7.4使用ES6擴(kuò)展運(yùn)算符
???4.7.5Records.js
4.8優(yōu)化部分
???4.8.1需要在record.js優(yōu)化時(shí)間顯示
???4.8.2優(yōu)化jQuery引入app.js
???4.8.3引入顯示狀態(tài)和錯(cuò)誤顯示狀態(tài)
4.8.3.1定義isloaded(是否完成加載),定義error
4.8.3.2重設(shè)狀態(tài)機(jī),分別設(shè)置成功時(shí)和失敗時(shí)的狀態(tài)
???4.8.3.3視情況進(jìn)行判斷,寫出對(duì)應(yīng)的顯示內(nèi)容
4.9發(fā)送請(qǐng)求獲取數(shù)據(jù)(在項(xiàng)目中使用jQuery和axios優(yōu)化App.js)之使用 axios方式(與jQuery兩種方法任選其一即可)
網(wǎng)址:
4.9.1安裝
4.9.2導(dǎo)入
4.9.3使用因?yàn)閍xios會(huì)將所獲取的數(shù)據(jù)存在data的集合中,所以需要response.data
???4.9.4引入顯示狀態(tài)和錯(cuò)誤顯示狀態(tài)
5.0優(yōu)化URL請(qǐng)求,目的是使用環(huán)境變量來(lái)將URL請(qǐng)求地址寫靈活,方便統(tǒng)一管理。
方法一 :src中創(chuàng)建一個(gè)utils文件夾,創(chuàng)建一個(gè)Config.js文件,配置環(huán)境變量
App.js中導(dǎo)入
使用
由于windows系統(tǒng)不支持配置環(huán)境變量,解決方式如下:
Package.json中配置(紅框之間有空格)
重啟服務(wù)器
頁(yè)面顯示
方法二:
在根目錄下創(chuàng)建一個(gè).env.development.local 文件(與src平級(jí))
在package.json中刪除之前配置的東西,恢復(fù)原狀
重啟服務(wù)器
繼續(xù)優(yōu)化
1.刪除原來(lái)的后綴
2.App.js中簡(jiǎn)寫
? ?3.config.js中
???4.App.js
?????????5.提取公共變量
功能:增加input框,實(shí)現(xiàn)添加,編輯,取消,更新,刪除等功能
6.0增加input框
6.1在components文件夾中創(chuàng)建一個(gè)名為Input的文件,因?yàn)閎ootstrap按鈕和input框相比較大,所以需要另外設(shè)置css樣式進(jìn)行引入使用
效果圖如下:
6.2實(shí)現(xiàn)添加提交功能
1. Input文件中通過(guò)設(shè)置input的onChange事件來(lái)獲取輸入的值
1.1調(diào)用selectedinfo方法
???1.2為了保證所有選框都填寫完整才可以提交的情況,這里需要設(shè)置一下button的屬性,當(dāng)所有都完整的時(shí)候,button才可以點(diǎn)擊
1.3點(diǎn)擊button進(jìn)行提交
???1.3.1使用post方式將數(shù)據(jù)提交到服務(wù)器上(在Config.js文件配置post 方法并開放)
???1.3.2在子組件RecordForm中導(dǎo)入上文方法并使用,服務(wù)器響應(yīng)成功后將該值傳遞給父級(jí)App
1.3.3父級(jí)App接收到值后進(jìn)行處理負(fù)責(zé)顯示在界面上
1.3.3.1導(dǎo)入input文件
?????????1.3.3.2設(shè)置與子級(jí)對(duì)應(yīng)的行間屬性handleNewRecord
???1.3..3.3設(shè)置addRecord方法
6.3實(shí)現(xiàn)編輯功能
1.先在增加編輯、刪除功能鍵,并在App.js文件中增加一個(gè)操作表頭。
???2.當(dāng)點(diǎn)擊編輯的時(shí)候,前面的內(nèi)容狀態(tài)變?yōu)閕nput可修改的狀態(tài)框
???2.1設(shè)置一個(gè)中間變量edit,默認(rèn)狀態(tài)是false,當(dāng)點(diǎn)擊編輯按鈕時(shí),edit為true,對(duì)應(yīng)內(nèi)容狀態(tài)為可輸入的input框。Edit的狀態(tài)決定使用哪個(gè)模板.
???2.1.1設(shè)置edit中間變量
???2.1.2點(diǎn)擊編輯按鈕調(diào)用handleEdit事件(定義點(diǎn)擊編輯前的狀態(tài)模板)
???2.1.3定義handleEdit方法,并重置狀態(tài)機(jī)設(shè)置edit狀態(tài)
???2.1.4定義點(diǎn)擊編輯按鈕后的狀態(tài)模板
???2.1.5根據(jù)edit的狀態(tài)來(lái)決定使用哪個(gè)模板
6.4實(shí)現(xiàn)取消功能(直接在取消調(diào)用與編輯按鈕一樣的方法即可)
6.5實(shí)現(xiàn)更新功能
1.先提交數(shù)據(jù)到服務(wù)器,傳值給父級(jí)
???1.1在Config,js文件中配置更新的put方法,為了得到更新的是哪一個(gè)數(shù)據(jù),還需要傳id值
???1.2在Record導(dǎo)入該方法,以便在更新事件中使用
???1.3給更新按鈕增加更新事件
???1.4定義該更新事件
修改前
???修改后
Record文件中所有之前格式類似為this.props.data的都改為如下格式:
1.5為了找到當(dāng)前這個(gè)input框的值,需要給input增加一個(gè)ref行間屬性
2.父級(jí)app進(jìn)行處理顯示
2.1設(shè)置與子
finereport是生成前端頁(yè)面嗎
不是
jQuery 是一個(gè)快速簡(jiǎn)潔的 JavaScript 庫(kù),使用戶能方便地處理 HTML 實(shí)現(xiàn)交互效果。
FineReport 報(bào)表前端采用 jQuery 框架,制作的報(bào)表解析后最終成為一個(gè) HTML 文檔,即每一份模板在瀏覽器端預(yù)覽時(shí)都將對(duì)應(yīng)一個(gè) HTML 頁(yè)面。因此用戶可以使用 jQuery 框架的所有方法對(duì)報(bào)表前端進(jìn)行二次開發(fā);同時(shí) FineReport 還提供了前端 JS API 供用戶開發(fā)使用。
本文將介紹在 FineReport 中如何進(jìn)行前端二次開發(fā),用戶了解后就可以通過(guò) JavaScript 或 CSS 來(lái)修改報(bào)表內(nèi)容或添加交互特效。
用jquery可以做什么好
使用jQuery可以很方便的實(shí)現(xiàn)頁(yè)面元素的顯示和隱藏,因此也比較容易設(shè)計(jì)出一個(gè)美觀大方多層次的導(dǎo)航菜單。
Tab內(nèi)容的切換
網(wǎng)站的內(nèi)容越來(lái)越豐富,于是網(wǎng)站都希望在盡量少的空間內(nèi)展示盡量多的內(nèi)容,而又不能顯得凌亂不堪,讓用戶無(wú)法尋找。解決的最好辦法就是在頁(yè)面上使用Tab。目前,Tab已經(jīng)成為Web?2.0網(wǎng)站上的一個(gè)流行元素,并且也衍生除了很多優(yōu)秀的用戶使用效果。下面是幾個(gè)使用jQuery來(lái)實(shí)現(xiàn)Tab效果的大型網(wǎng)站的實(shí)例。
人性化的提示信息
最好的提示信息往往是在用戶最開始出錯(cuò)的地方進(jìn)行提示的信息。如果用戶都已經(jīng)進(jìn)行了大部分的操作,此時(shí)如果提示某項(xiàng)有錯(cuò),需要用戶重新做,試想一下,這種做法很容易把用戶激怒,甚至?xí)M(jìn)而放棄對(duì)網(wǎng)站的訪問和使用。
可定制的用戶內(nèi)容
Web?2.0網(wǎng)站一個(gè)很大的特征就是用戶的參與。因此現(xiàn)在很多網(wǎng)站都可以讓用戶根據(jù)自己的需求進(jìn)行定制,用戶可以根據(jù)自己的喜好對(duì)網(wǎng)頁(yè)的顯示內(nèi)容甚至顯示風(fēng)格進(jìn)行選擇或者定制。
動(dòng)態(tài)的圖片展示效果
Web?2.0網(wǎng)站的另一個(gè)顯著的特點(diǎn)就是網(wǎng)頁(yè)不再是千篇一律的靜態(tài)頁(yè)面。它出現(xiàn)了很多以前需要使用Flash等工具才能做出來(lái)的動(dòng)態(tài)效果。例如,Dell網(wǎng)站上有一個(gè)圖片切換效果,就是使用Flash來(lái)實(shí)現(xiàn)的,如圖所示。
AJAX實(shí)時(shí)局部刷新
AJAX可以給用戶帶來(lái)很好的用戶體驗(yàn)。用戶感到的最直觀一個(gè)體驗(yàn)就是頁(yè)面的局部實(shí)時(shí)刷新。在傳統(tǒng)網(wǎng)站上,想要更新頁(yè)面內(nèi)容的某一部分,則必須將這個(gè)頁(yè)面重新刷新;使用AJAX之后,用戶會(huì)看到,只有需要改變的內(nèi)容才會(huì)重新發(fā)送數(shù)據(jù)給服務(wù)器,其他部分則保持不變。
jQuery中提供了很強(qiáng)大的AJAX功能。著名的微博客類網(wǎng)站twitter.com就是使用的jQuery中的AJAX技術(shù)來(lái)實(shí)現(xiàn)其信息的發(fā)布的。如圖所示。
數(shù)據(jù)的可視化顯示
在日常生活中,經(jīng)常會(huì)接觸到大量的數(shù)據(jù)統(tǒng)計(jì)信息,如工作報(bào)表、消費(fèi)統(tǒng)計(jì)等。最簡(jiǎn)單的表現(xiàn)這些報(bào)表數(shù)據(jù)的方式就是直接列出一個(gè)表格。不過(guò)從某種程度上來(lái)說(shuō),單純的一堆數(shù)字看起來(lái)不是那么的直觀易讀。因此,在Web?2.0時(shí)代,人們更愿意使用更加直觀的可視化圖表的方式對(duì)統(tǒng)計(jì)數(shù)據(jù)進(jìn)行顯示。
使用FineReport報(bào)表軟件自定義菜單
界面操作
1.基于報(bào)表運(yùn)行環(huán)境設(shè)計(jì)報(bào)表的理念,實(shí)現(xiàn)遠(yuǎn)程服務(wù)器協(xié)同設(shè)計(jì)報(bào)表
2.統(tǒng)一報(bào)表運(yùn)行環(huán)境與本地目錄的文件選擇面板
3.統(tǒng)一的基于JControlPane的屬性編輯面板
4.BasicPane簡(jiǎn)單化對(duì)話框生成機(jī)制
5.報(bào)表填報(bào)屬性面板中提供快捷的方式選擇單元格為值
6.docking frame提供快捷的方式編輯報(bào)表及單元格的常用屬性,如父格設(shè)置,擴(kuò)展方向設(shè)置,數(shù)據(jù)列設(shè)置
7.優(yōu)化工具欄上邊框設(shè)置的按鈕
8.提供用戶自定義單元格樣式的使用
9.增加簡(jiǎn)單分組報(bào)表與交叉報(bào)表的向?qū)?/p>
10.簡(jiǎn)化數(shù)據(jù)列面板
11.簡(jiǎn)化父格選擇設(shè)置面板
12.格式刷
13.支持拖拽方式改變多sheet時(shí)sheet間的位置
14.設(shè)計(jì)器界面日志的提供以及日志輸出位置自定義
15.設(shè)計(jì)器菜單配置文件以自定義菜單項(xiàng)
16.優(yōu)化單元格填報(bào)屬性界面
17.優(yōu)化單元格高亮屬性界面
18.增加選擇單元格時(shí)支持Ctrl多選的功能
19.增加為有特殊屬性的單元格設(shè)置標(biāo)記的功能
20.增加Access作為數(shù)據(jù)連接時(shí)的絕對(duì)路徑JDBC的功能
21.增加設(shè)計(jì)器關(guān)閉時(shí)多個(gè)模板未保存狀態(tài)時(shí)的界面
22.修正了在設(shè)計(jì)器中輸入過(guò)長(zhǎng)數(shù)字字符如22222222222222222222222222的處理
23.增加繁體版設(shè)計(jì)器
24.增加了設(shè)計(jì)器Grid凍結(jié)窗格功能
報(bào)表功能
1.優(yōu)化報(bào)表運(yùn)算內(nèi)核
2.增加數(shù)據(jù)集函數(shù)的支持
3.刪除覆蓋單元格功能
4.增加單元格的可伸展性屬性
5.增加子報(bào)表功能
6.增加形態(tài)作為單元格打印時(shí)的顯示值
7.強(qiáng)化單元格條件加亮功能
8.支持javascript形式的超級(jí)鏈接
9.優(yōu)化Excel導(dǎo)入導(dǎo)出
10.增加導(dǎo)出Excel時(shí)的加密功能
11.增加報(bào)表填報(bào)回滾的支持
12.增加報(bào)表填報(bào)時(shí)的公式支持
13.增加報(bào)表填報(bào)時(shí)的自由SQL支持
14.統(tǒng)一參數(shù)的處理方式
15.優(yōu)化了報(bào)表操作數(shù)據(jù)庫(kù)的功能
16.增加用戶自定義ErrorHandler的支持
17.優(yōu)化公式運(yùn)算效率
18.改進(jìn)了公式計(jì)算時(shí)不同類型數(shù)據(jù)相互計(jì)算的問題
19.支持單元格自動(dòng)調(diào)整行高
20.增加數(shù)組函數(shù)
21.優(yōu)化層次坐標(biāo)的處理
22.加強(qiáng)層次坐標(biāo)的功能,支持條件,加強(qiáng)定位功能
23.優(yōu)化了報(bào)表分頁(yè)功能
24.加強(qiáng)了報(bào)表分頁(yè)功能,支持重復(fù)行頭行尾,以及重復(fù)列頭列尾
25.優(yōu)化報(bào)表頁(yè)眉頁(yè)腳功能
26.增加參數(shù)處理器功能
27.增加以Excel文件作為數(shù)據(jù)集
28.增加NUMTO,RANGE等函數(shù)
29.優(yōu)化TODATE函數(shù)
30.增加數(shù)據(jù)列的補(bǔ)充空白行功能
31.層次坐標(biāo)中用!0替換了`0(`0還是兼容的),要文檔
32. 增加頁(yè)眉頁(yè)腳支持公式..
Web功能
1.jquery替換Ext,減少了js文件大小,加快js運(yùn)行效率
2.優(yōu)化BS公式自動(dòng)計(jì)算
3.優(yōu)化BS編輯效率
4.減小報(bào)表輸出成html的大小
5.增加BS下凍結(jié)行列的功能
6.增加flash打印功能
7.優(yōu)化PDF打印功能
8.優(yōu)化服務(wù)器端打印功能
9.簡(jiǎn)化自定義報(bào)表頁(yè)面的功能
10.優(yōu)化了用戶自定義參數(shù)頁(yè)面的功能
11.修改了瀏覽報(bào)表時(shí)長(zhǎng)時(shí)間不做操作會(huì)導(dǎo)致session超時(shí)的問題
12.優(yōu)化cjkEncode徹底解決中文亂碼問題
13.增加BS瀏覽的網(wǎng)頁(yè)背景的功能
14.優(yōu)化數(shù)據(jù)校驗(yàn)的功能
15.優(yōu)化單元格編輯器之下拉框功能
16.增加單元格編輯器對(duì)用戶自定義的支持
17.增加單元格以圖片形式畫在瀏覽器上的功能
18.增加BS編輯報(bào)表時(shí)的聯(lián)動(dòng)功能
19.增加不分頁(yè)瀏覽報(bào)表的功能
20.支持配置文件的WEB熱部署
21.增加填報(bào)的提交同時(shí)進(jìn)行校驗(yàn)功能
圖表
1.增加了儀表盤
2.優(yōu)化了圖表編輯對(duì)話框,采用類似Excel,分成類型,數(shù)據(jù),風(fēng)格三種對(duì)話框
3.圖表標(biāo)題支持公式
4.簡(jiǎn)化格子數(shù)據(jù)源界面(其實(shí)這個(gè)界面不好理解)
5.優(yōu)化了圖表數(shù)據(jù)源界面
定時(shí)器
1.使用quatz的底層調(diào)度內(nèi)核
權(quán)限
1.界面進(jìn)行了優(yōu)化調(diào)整
2.權(quán)限控制同時(shí)服務(wù)于Web瀏覽與遠(yuǎn)程設(shè)計(jì)
3.增加了內(nèi)置角色、用戶和組織
4.加強(qiáng)了角色對(duì)模板訪問、表單的權(quán)限
5.單元格填報(bào)支持角色控制
網(wǎng)站題目:jquery報(bào)表,jquery報(bào)表插件
文章路徑:http://ef60e0e.cn/article/phhcce.html