移動端報表JS開發技術分享

最近對移動端的報表開發很有研究,細磨精算了很久,雖然到如今仍是「囊中羞澀」,但決定仍是先拋磚引玉,拿點小乾貨出來和你們分享。web

研究的工具是比較有表明性的FineReport。ajax

一、  移動端哪些地方支持調用js框架

web事件     分頁預覽 填報預覽異步

加載結束事件           X函數

填報成功事件 --           √工具


報表內部js      單元格       圖表this

超級連接js           √編碼


控件事件 參數控件 填報控件 表單控件url

初始化後事件   √           √           Xspa

編輯前           √           √           X

編輯後           √           √           X

編輯結束            √           √           X

點擊                    √           √           X

狀態改變            √           √           √


二、  報表控件支持的腳本函數

函數名        函數描述           填報控件       參數控件  表單控件

setEnable    設置控件的可用性       √        √             √

isEnable    判斷控件是否可用       √        √             √

setVisible    設置控件的可見性       √        √             √

isVisible    判斷控件的可見性        √        √             √

setValue    設置控件值                √        √             √

getValue    獲取控件的值                √        √             √

setText    設置控件的顯示值        √        √             √

getText    獲取控件的顯示值        √        √             √

reset            重置控件                √        √             √

fireEvent   觸發指定名字的事件        √             √


三、  報表分頁預覽支持的腳本函數

函數名                  函數描述         補充說明                                                      實現

contentPane          當前報表對象     無                                                         

currentPageIndex  當前所在頁 contentPane經常使用屬性 只有分頁預覽報表纔有

reportTotalPage 總頁數         contentPane經常使用屬性 只有分頁預覽報表纔有

gotoFirstPage         首頁                    無                                                                 √

gotoPreviousPage 上一頁            無                                                                  √

gotoNextPage         下一頁            無                                                                 √

gotoLastPage         末頁                    無                                                                 √

gotoPage(n) 跳轉到某一頁         包含1個參數,表示跳轉到第幾頁                 √


四、  填報預覽報表支持的腳本函數

函數名                           函數描述                   補充說明                                                                                      實現

contentPane                 當前報表對象                     無                                                                                √

verifyReport                 數據校驗         只有填報表才能夠用,contentPane經常使用方法                                        √

writeReport                 提交報表         只有填報表才能夠用,contentPane經常使用方法                                        √

verifyAndWriteReport  數據校驗後提交報表      只有填報表才能夠用,contentPane經常使用方法                        √

curLGP                         current logicpane       contentPane經常使用屬性,只有填報預覽及表單預覽下才有        √

getCellValue(cell)         獲取指定格子的值 包含1個參數,單元格,只有填報下有,curLGP經常使用方法                √

getCellValue(col, row)         獲取指定格子的值 包含2個參數,列和行,只有填報下有,curLGP經常使用方法        √

setCellValue(cell, null, value) 設置指定格子的值 包含3個參數,單元格,空和值,只有填報下有,curLGP經常使用方法    √

setCellValue(col, row, value) 設置指定格子的值 包含3個參數,列,行和值,只有填報下有,curLGP經常使用方法      √

getWidgetByCell                 獲取指定單元格中的控件 包含1個參數,單元格,contentPane經常使用方法              √

getWidgetByName                 獲取指定名字的控件 包含1個參數,控件名,contentPane經常使用方法                       √

getWidgetsByName         獲取指定名稱的擴展控件  包含1個參數,控件名,contentPane經常使用方法              √


五、經常使用的工具類腳本函數

函數名                函數描述                  補充說明                                                                                    實現

FR.Msg.alert    彈出消息框函數      包含3個參數,分別表示:標題,內容,回調函數                  √

FR.Msg.confirm  值確認彈出框函數      包含3個參數,分別表示:標題,值,回調函數                  √

FR.Msg.prompt   可修改值的值確認彈出框函數 包含4個參數,分別表示:標題,說明,值,回調函數

FR.Msg.toast 在頁面邊緣出現的消息提示塊,一小段時間後自動消失 包含1個參數,表示要提示的信息

FR.cjkEncode  進行cjk編碼              包含1個參數,字符串                                                        √

FR.cjkDecode  進行cjk解碼              包含1個參數,字符串                                                        √

FR.location 地理位置獲取              包含一個回掉函數返回獲取狀態及信息                                √

FR.doHyperlinkByGet /FR.doHyperlinkByPost包含2個參數,分別表示:超鏈的url, 傳遞的參數    √

FR.ajax         異步請求函數                                        /                                                         √

_g().parameterCommit() 分頁預覽及填報預覽自動查詢 /                                                          

contentPane.setAppearRefresh() 頁面再現的時候自動刷新 /                                                  √


以上對應着報表的功能大體羅列了如下框架,下面先舉一些小示例

獲取控件的一系列方法

this.options.form.getWidgetByName("控件名");  //參數界面及表單中獲取控件
contentPane.getWidgetByCell("單元格");  //填報界面獲取控件
contentPane.getWidgetByName("控件名");   //填報界面獲取控件

 

填報成功後刷新當前頁

var url = "/WebReport/ReportServer?reportlet=js/shauxindangqian.cpt&op=write&__replaceview__=true";
FR.doHyperlinkByGet(url,{para:paravalue});  //刷新當前頁面

 

js獲取表單圖表組件並刷新數據

var c=FR.Chart.WebUtils.getChart("chart0");
c.dataRefresh();

 

延時函數

setTimeout(function() {  }, 500);

 

A超鏈至B填報,B提交數據後返回A時,A自動刷新顯示新的數據

contentPane.setAppearRefresh();  //在A的加載結束後事件中添加js

 

之後會陸續分享一些移動端實用功能的應用實例,還有HTML5,歡迎一塊兒探討。

相關文章
相關標籤/搜索