亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Web報(bào)表工具FineReport的JS API開發(fā)(二)

freewolf / 2276人閱讀

摘要:如果報(bào)表嵌在網(wǎng)頁的中,在外獲取對(duì)象如下常用方法方法說明獲取指定單元格中的控件獲取指定名字的控件獲取指定名稱的擴(kuò)展控件,返回一個(gè)數(shù)組表單預(yù)覽或參數(shù)界面,都有一個(gè)對(duì)象。

上次介紹FineReport的JS API中的第一類開發(fā)--FR,這次就來介紹一下FS和contentWindow類的開發(fā)。
1 FS
FS是數(shù)據(jù)決策系統(tǒng)中的js接口,比如說FS.tabPane.addItem,先介紹幾類操作:
1.1 FS.Trans.signOut()
退出決策平臺(tái)系統(tǒng)
1.2 FS.tabPane._doCloseTab(FS.tabPane._getSelectedTab())
關(guān)閉當(dāng)前決策平臺(tái)的標(biāo)簽
1.3 FS.tabPane.addItem({title:"baidu",src:"http://www.baidu.com"})
在決策平臺(tái)中打開新標(biāo)簽頁
1.4示例
前面兩個(gè)接口很簡單,這里不再舉例說明,下面詳細(xì)介紹一下第三個(gè)接口,即在數(shù)據(jù)決策系統(tǒng)中打開一個(gè)新tab。
1.4.1 描述
數(shù)據(jù)鉆取是使用超級(jí)鏈接實(shí)現(xiàn),打開方式有三種,當(dāng)前窗口,對(duì)話框,新窗口。前面2種方式很好理解,第三種在新窗口中打開,即在瀏覽器端打開一個(gè)新的tab頁面,如果是在數(shù)據(jù)決策系統(tǒng)中使用,希望實(shí)現(xiàn)在決策系統(tǒng)框架下新增一個(gè)tab頁簽,而不是在瀏覽器端重新打開一個(gè)窗口,這個(gè)該怎么實(shí)現(xiàn)呢?
1.4.2 模板
下面以%FR_HOME%demoasicDetailedDrillA.cpt為例,該模板中實(shí)現(xiàn)了在當(dāng)前窗口的鉆取功能,下面將在當(dāng)前窗口打開換成在新的tab頁面中打開。
1.4.3 超級(jí)鏈接

打開模板,進(jìn)入A4單元格的超級(jí)鏈接設(shè)置界面,如下圖:

將訂單明細(xì)的鉆取修改成在數(shù)據(jù)決策中打開一個(gè)新的tab頁面,新tab頁面的標(biāo)題為訂單明細(xì)。

新增一個(gè)JavaScript的超級(jí)鏈接,添加參數(shù)ID,參數(shù)值為當(dāng)前單元格的值,即ID=$$$,如下圖:

通過
Js代碼
window.parent.FS.tabPane.addItem({title:"baidu",src:"http://www.baidu.com"})
實(shí)現(xiàn)在新的tab中打開頁面。
title:訂單明細(xì)
src:訂單明細(xì)模板的路徑

具體如下圖:

這里要注意,src最后的&符號(hào)為參數(shù)的傳遞,即將當(dāng)前單元格的值傳遞給參數(shù)ID,然后再src的路徑后面拼接字符串,將ID參數(shù)的值傳遞給需要打開的新模板中的訂單號(hào)參數(shù)。
代碼如下:
Js代碼
window.parent.FS.tabPane.addItem({title:"訂單明細(xì)",src:"${servletURL}?reportlet=demo/basic/DetailedDrillB.cpt&訂單號(hào)="+ID})

1.4.4 效果查看

2 contentWindow
2.1介紹:
contentWindow是在web頁面集成的時(shí)候,將FineReport報(bào)表嵌入在iframe中,調(diào)用報(bào)表對(duì)象時(shí)使用的接口,比如說:document.getElementById("reportFrame").contentWindow,其中document.getElementById("reportFrame")是獲取iframe對(duì)象,contentWindow是報(bào)表對(duì)象,相當(dāng)于html中的window對(duì)象。
在普通模板的JS腳本中可以直接使用contentWindow下的屬性,如直接使用contentWindow中的contentPane,而不用寫contentWindow,這是因?yàn)閖s腳本本身就在FR模板中執(zhí)行。
網(wǎng)頁中使用iframe嵌入報(bào)表,如果文檔包含框架(frame或iframe標(biāo)簽),框架中嵌入了FR報(bào)表,則會(huì)創(chuàng)建一個(gè)contentWindow對(duì)象先獲取iframe,再調(diào)用contentWindow,然后使用contentWindow下面的屬性

var contentWindow = document.getElementById("reportFrame").contentWindow.XXX; 

不論是web頁面集成里面還是直接在FR模板之中,contentWindow下面最常用的屬性當(dāng)屬contentPane,所以下面將詳細(xì)介紹contentPane。
contentPane是contentWidow下面的最常用的一個(gè)屬性,為存放報(bào)表內(nèi)容的容器。

2引用contentPane
在普通模板的JS腳本中直接使用contentPane就能獲取到該對(duì)象。

如果報(bào)表嵌在網(wǎng)頁的iframe中,首先在iframe中獲取contentWindow,然后獲取屬性contentPane對(duì)象,如下:

var contentPane = document.getElementById("reportFrame").contentWindow.contentPane;  

比如,需要在網(wǎng)頁中獲取報(bào)表填報(bào)頁面的一個(gè)按鈕,并執(zhí)行點(diǎn)擊事件:

document.getElementById("reportFrame").contentWindow.contentPane.getWidgetByName("控件名").fireEvent("click") 

2.2.1 contentPane常用屬性
parameterEl
返回對(duì)象參數(shù)界面
curLGP
返回curLGP對(duì)象,只有填報(bào)預(yù)覽及表單預(yù)覽下才有
currentPageIndex
當(dāng)前所在頁,只有分頁預(yù)覽才有
reportTotalPage
總頁數(shù),只有分頁預(yù)覽報(bào)表才有
zoom
縮放比例
2.2.2 contentPane常用方法
方法
說明
appendReportRC(num)
在選中行后面插入num行,只有填報(bào)表才可以用
deleteReportRC()
刪除指定行,只有填報(bào)表才可以用
deleteRows(param)
批量刪除param所在記錄,param為一竄單元格坐標(biāo)的字符串?dāng)?shù)組
emailReport()
郵件發(fā)送
exportReportToExcel("指定格式")
參數(shù)為page時(shí)分頁導(dǎo)出;simple原樣導(dǎo)出;sheet分頁分sheet導(dǎo)出
exportReportToImage()
輸出圖片
exportReportToPDF()
輸出pdf
exportReportToWord()
輸出word
fireEvent()
觸發(fā)事件
appletPrint()
applet打印
flashPrint()
flash打印
getWidgetByName()
獲取填報(bào)頁面的控件
getCellValue(cell)/getCellValue(col,row)
獲取單元格值,只有填報(bào)下有
gotoFirstPage()
跳轉(zhuǎn)到第一頁,只有分頁預(yù)覽報(bào)表有
gotoLastPage()
跳轉(zhuǎn)到最后一頁,只有分頁預(yù)覽報(bào)表有
gotoPreviousPage()
跳轉(zhuǎn)到上一頁,只有分頁預(yù)覽報(bào)表有
gotoNextPage()
跳轉(zhuǎn)到下一頁,只有分頁預(yù)覽報(bào)表有
gotoPage(num)
跳轉(zhuǎn)到指定num頁,只有分頁預(yù)覽報(bào)表有
importExcelData()
在線導(dǎo)入excel,只有填報(bào)表才可以用
on()
監(jiān)聽
pdfPrint()
pdf打印
printPreview()
打印預(yù)覽,只有數(shù)據(jù)分析時(shí)才有
pageSetup()
頁面設(shè)置,只有數(shù)據(jù)分析才有
scale(str)
縮放,str為"+"時(shí)放大,為"-"時(shí)縮小
setCellValue(cell,null,value)/setCellValue(col,row,value)
給單元格賦值,只有填報(bào)表才有
verifyReport()
數(shù)據(jù)校驗(yàn),只有填報(bào)表才可以用
writeReport()
校驗(yàn)并提交報(bào)表,只有填報(bào)表才可以用

FineReport的填報(bào)預(yù)覽及表單預(yù)覽下contentPane下都會(huì)有一個(gè)curLGP對(duì)象,即current logicpane。
2.3 引用curLGP
在cpt模板的JS腳本中可以使用contentPane.curLGP來獲取該對(duì)象。
如果報(bào)表嵌在網(wǎng)頁的iframe中,在iframe外獲取curLGP對(duì)象如下:

var contentPane = document.getElementById("reportFrame").contentWindow.contentPane.curLGP;

2.3.1 curLGP常用屬性:
屬性
說明
currentTDCell
填報(bào)預(yù)覽,當(dāng)前焦點(diǎn)所在單元格
dirtyCell
填報(bào)預(yù)覽,編輯過的單元格
write
填報(bào)預(yù)覽,返回write對(duì)象
form
表單預(yù)覽或參數(shù)界面,返回form對(duì)象

2.3.2 curLGP常用方法
方法
說明
getCellValue(cell)/getCellValue(col, row)
獲取指定格子的值,只有填報(bào)下有
setCellValue(cell, null, value)/setCellValue(col, row, value)
設(shè)置指定格子的值,只有填報(bào)下有

2.4 write
填報(bào)預(yù)覽時(shí),curLGP下有一個(gè)write對(duì)象。
2.4.1 引用write
在cpt模板的JS腳本中可以使用contentPane.curLGP.write來獲取該對(duì)象。
如果報(bào)表嵌在網(wǎng)頁的iframe中,在iframe外獲取write對(duì)象如下:

var contentPane = document.getElementByID("reportFrame").contentWindow.contentPane.curLGP.write; 

2.4.2 write常用方法
方法
說明
getWidgetByCell(cell)
獲取指定單元格中的控件
getWidgetByName(name)
獲取指定名字的控件
getWidgetsByName(name)
獲取指定名稱的擴(kuò)展控件,返回一個(gè)數(shù)組

2.5 form
表單預(yù)覽或參數(shù)界面,都有一個(gè)form對(duì)象。
2.5.1引用form
在cpt模板的JS腳本中可以使用this.options.form來獲取該對(duì)象,如獲取參數(shù)界面下拉框p1這個(gè)控件:
Js代碼
var widget=this.options.form.getWidgetByName(p1)
如果報(bào)表嵌在網(wǎng)頁的iframe中,在iframe外獲取form對(duì)象如下:

var contentPane = document.getElementByID("reportFrame").contentWindow.contentPane.curLGP.form; 

2.5.2 form常用屬性及方法:
屬性或方法
說明
name_widgets
form中的所有控件集合
getValueByName(name)
獲取指定名字控件的值
getWidgetByName(name)
獲取指定名字的控件

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/78991.html

相關(guān)文章

  • FineReportJS如何自定義按鈕導(dǎo)出

    FineReport支持多種不同的導(dǎo)出方式,直接使用FineReport內(nèi)置導(dǎo)出按鈕可以非??旖莘奖愕膩韺?duì)各種格式的輸出,但是我們?cè)趙eb頁面集成中的時(shí)候,往往只想將報(bào)表內(nèi)容嵌入到iframe中,而工具欄以及工具欄上的按鈕都會(huì)隱藏掉,而使用web頁面自定義的按鈕,那么,此時(shí),這種自定義按鈕如何實(shí)現(xiàn)導(dǎo)出呢? showImg(https://segmentfault.com/img/bVJR1H?w=...

    wujl596 評(píng)論0 收藏0
  • 報(bào)表工具JS開發(fā)--字符串

    摘要:它將在中查找與相匹配的子字符串,然后用來替換這些子串。這里舉個(gè)字符串替換的例子結(jié)果將返回字符串的查找方法用于檢索字符串中指定的子字符串,他將返回中第一個(gè)與相匹配的子串的起始位置。其中是起始,提取長度為的新字符串。 在報(bào)表開發(fā)過程中,有些需求可能無法通過現(xiàn)有的功能來實(shí)現(xiàn),需要開發(fā)人員二次開發(fā),以FineReport為例,可以使用網(wǎng)頁腳本、API接口等進(jìn)行深入的開發(fā)與控制??紤]到JS腳本開...

    pakolagij 評(píng)論0 收藏0
  • FineReport中如何制作樹數(shù)據(jù)集來實(shí)現(xiàn)組織樹報(bào)表

    摘要:問題描述,組織樹報(bào)表中由與父來實(shí)現(xiàn)組織樹報(bào)表,若層級(jí)數(shù)較多時(shí),對(duì)每個(gè)單元格設(shè)置過濾條件和形態(tài)會(huì)比較繁瑣,因此提供了一種特殊的數(shù)據(jù)集樹數(shù)據(jù)集,只需要簡單的設(shè)置就能自動(dòng)遞歸出層級(jí),方便的實(shí)現(xiàn)如下圖組織樹報(bào)表圖一圖二構(gòu)建樹新建報(bào)表,添加數(shù)據(jù)集新建 問題描述FineReport,組織樹報(bào)表中由id與父id來實(shí)現(xiàn)組織樹報(bào)表,若層級(jí)數(shù)較多時(shí),對(duì)每個(gè)單元格設(shè)置過濾條件和形態(tài)會(huì)比較繁瑣,因此FineR...

    vvpale 評(píng)論0 收藏0
  • FineReport中如何安裝移動(dòng)端H5插件

    摘要:移動(dòng)端報(bào)表使用方法安裝好插件后,在瀏覽器中調(diào)用時(shí),需要在報(bào)表路徑后面加上參數(shù)。另外移動(dòng)端的插件,圖表是只支持顯示新圖表。 HTML5報(bào)表插件安裝及使用編輯 插件安裝插件網(wǎng)址以及設(shè)計(jì)器插件安裝方法和服務(wù)器安裝插件的方法可以官網(wǎng)上面搜索,這里就不做詳細(xì)介紹了。 移動(dòng)端HTML5報(bào)表使用方法安裝好插件后,在瀏覽器中調(diào)用時(shí),需要在報(bào)表路徑后面加上參數(shù)op=h5。但是PC端不完全支持H5效果。移...

    bovenson 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<