最近對(duì)移動(dòng)端的報(bào)表開發(fā)頗有研究,細(xì)磨精算了好久,雖然到現(xiàn)在還是“囊中羞澀”,但決定還是先拋磚引玉,拿點(diǎn)小干貨出來(lái)和大家分享。
研究的工具是比較有代表性的FineReport。
1、 移動(dòng)端哪些地方支持調(diào)用js
web事件 | 分頁(yè)預(yù)覽 | 填報(bào)預(yù)覽 |
加載結(jié)束事件 | √ | X |
填報(bào)成功事件 | -- | √ |
報(bào)表內(nèi)部js | 單元格 | 圖表 |
超級(jí)鏈接js | √ | √ |
控件事件 | 參數(shù)控件 | 填報(bào)控件 | 表單控件 |
初始化后事件 | √ | √ | X |
編輯前 | √ | √ | X |
編輯后 | √ | √ | X |
編輯結(jié)束 | √ | √ | X |
點(diǎn)擊 | √ | √ | X |
狀態(tài)改變 | √ | √ | √ |
2、報(bào)表控件支持的腳本函數(shù)
函數(shù)名 | 函數(shù)描述 | 填報(bào)控件 | 參數(shù)控件 | 表單控件 |
setEnable | 設(shè)置控件的可用性 | √ | √ | √ |
isEnable | 判斷控件是否可用 | √ | √ | √ |
setVisible | 設(shè)置控件的可見性 | √ | √ | √ |
isVisible | 判斷控件的可見性 | √ | √ | √ |
setValue | 設(shè)置控件值 | √ | √ | √ |
getValue | 獲取控件的值 | √ | √ | √ |
setText | 設(shè)置控件的顯示值 | √ | √ | √ |
getText | 獲取控件的顯示值 | √ | √ | √ |
reset | 重置控件 | √ | √ | √ |
fireEvent | 觸發(fā)指定名字的事件 | √ | √ | √ |
3、報(bào)表分頁(yè)預(yù)覽支持的腳本函數(shù)
函數(shù)名 | 函數(shù)描述 | 補(bǔ)充說(shuō)明 | 實(shí)現(xiàn) |
contentPane | 當(dāng)前報(bào)表對(duì)象 | 無(wú) | √ |
currentPageIndex | 當(dāng)前所在頁(yè) | contentPane常用屬性 只有分頁(yè)預(yù)覽報(bào)表才有 | √ |
reportTotalPage | 總頁(yè)數(shù) | contentPane常用屬性 只有分頁(yè)預(yù)覽報(bào)表才有 | √ |
gotoFirstPage | 首頁(yè) | 無(wú) | √ |
gotoPreviousPage | 上一頁(yè) | 無(wú) | √ |
gotoNextPage | 下一頁(yè) | 無(wú) | √ |
gotoLastPage | 末頁(yè) | 無(wú) | √ |
gotoPage(n) | 跳轉(zhuǎn)到某一頁(yè) | 包含1個(gè)參數(shù),表示跳轉(zhuǎn)到第幾頁(yè) | √ |
4、填報(bào)預(yù)覽報(bào)表支持的腳本函數(shù)
函數(shù)名 | 函數(shù)描述 | 補(bǔ)充說(shuō)明 | 實(shí)現(xiàn) |
contentPane | 當(dāng)前報(bào)表對(duì)象 | 無(wú) | √ |
verifyReport | 數(shù)據(jù)校驗(yàn) | 只有填報(bào)表才可以用,contentPane常用方法 | √ |
writeReport | 提交報(bào)表 | 只有填報(bào)表才可以用,contentPane常用方法 | √ |
verifyAndWriteReport | 數(shù)據(jù)校驗(yàn)后提交報(bào)表 | 只有填報(bào)表才可以用,contentPane常用方法 | √ |
curLGP | current logicpane | contentPane常用屬性,只有填報(bào)預(yù)覽及表單預(yù)覽下才有 | √ |
getCellValue(cell) | 獲取指定格子的值 | 包含1個(gè)參數(shù),單元格,只有填報(bào)下有,curLGP常用方法 | √ |
getCellValue(col, row) | 獲取指定格子的值 | 包含2個(gè)參數(shù),列和行,只有填報(bào)下有,curLGP常用方法 | √ |
setCellValue(cell, null, value) | 設(shè)置指定格子的值 | 包含3個(gè)參數(shù),單元格,空和值,只有填報(bào)下有,curLGP常用方法 | √ |
setCellValue(col, row, value) | 設(shè)置指定格子的值 | 包含3個(gè)參數(shù),列,行和值,只有填報(bào)下有,curLGP常用方法 | √ |
getWidgetByCell | 獲取指定單元格中的控件 | 包含1個(gè)參數(shù),單元格,contentPane常用方法 | √ |
getWidgetByName | 獲取指定名字的控件 | 包含1個(gè)參數(shù),控件名,contentPane常用方法 | √ |
getWidgetsByName | 獲取指定名稱的擴(kuò)展控件,返回一個(gè)數(shù)組 | 包含1個(gè)參數(shù),控件名,contentPane常用方法 | √ |
5、常用的工具類腳本函數(shù)
函數(shù)名 | 函數(shù)描述 | 補(bǔ)充說(shuō)明 | 實(shí)現(xiàn) |
FR.Msg.alert | 彈出消息框函數(shù) | 包含3個(gè)參數(shù),分別表示:標(biāo)題,內(nèi)容,回調(diào)函數(shù) | √ |
FR.Msg.confirm | 值確認(rèn)彈出框函數(shù) | 包含3個(gè)參數(shù),分別表示:標(biāo)題,值,回調(diào)函數(shù) | √ |
FR.Msg.prompt | 可修改值的值確認(rèn)彈出框函數(shù) | 包含4個(gè)參數(shù),分別表示:標(biāo)題,說(shuō)明,值,回調(diào)函數(shù) | √ |
FR.Msg.toast | 在頁(yè)面邊緣出現(xiàn)的消息提示塊,一小段時(shí)間后自動(dòng)消失 | 包含1個(gè)參數(shù),表示要提示的信息 | √ |
FR.cjkEncode | 進(jìn)行cjk編碼 | 包含1個(gè)參數(shù),字符串 | √ |
FR.cjkDecode | 進(jìn)行cjk解碼 | 包含1個(gè)參數(shù),字符串 | √ |
FR.location | 地理位置獲取 | 包含一個(gè)回掉函數(shù)返回獲取狀態(tài)及信息 | √ |
FR.doHyperlinkByGet /FR.doHyperlinkByPost | 超級(jí)連接 | 包含2個(gè)參數(shù),分別表示:超鏈的url, 傳遞的參數(shù) | √ |
FR.ajax | 異步請(qǐng)求函數(shù) | / | √ |
_g().parameterCommit() | 分頁(yè)預(yù)覽及填報(bào)預(yù)覽自動(dòng)查詢 | / | √ |
contentPane.setAppearRefresh() | 頁(yè)面再現(xiàn)的時(shí)候自動(dòng)刷新 | / | √
|
以上對(duì)應(yīng)著報(bào)表的功能大致羅列了以下框架,下面先舉一些小示例
獲取控件的一系列方法
this.options.form.getWidgetByName("控件名"); //參數(shù)界面及表單中獲取控件
contentPane.getWidgetByCell("單元格"); //填報(bào)界面獲取控件
contentPane.getWidgetByName("控件名"); //填報(bào)界面獲取控件
填報(bào)成功后刷新當(dāng)前頁(yè)
var url = "/WebReport/ReportServer?reportlet=js/shauxindangqian.cpt&op=write&__replaceview__=true";
FR.doHyperlinkByGet(url,{para:paravalue}); //刷新當(dāng)前頁(yè)面
js獲取表單圖表組件并刷新數(shù)據(jù)
var c=FR.Chart.WebUtils.getChart("chart0");
c.dataRefresh();
延時(shí)函數(shù)
setTimeout(function() { }, 500);
A超鏈至B填報(bào),B提交數(shù)據(jù)后返回A時(shí),A自動(dòng)刷新顯示新的數(shù)據(jù)
contentPane.setAppearRefresh(); //在A的加載結(jié)束后事件中添加js
以后還會(huì)陸續(xù)分享一些移動(dòng)端實(shí)用功能的應(yīng)用實(shí)例,還有HTML5,歡迎一起探討。