<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wuxiren123

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

    上次介紹FineReport的JS API中的第一類開(kāi)發(fā)--FR,這次就來(lái)介紹一下FS和contentWindow類的開(kāi)發(fā)。

    1 FS

    FS是數(shù)據(jù)決策系統(tǒng)中的js接口,比如說(shuō)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)中打開(kāi)新標(biāo)簽頁(yè)

    1.4示例

    前面兩個(gè)接口很簡(jiǎn)單,這里不再舉例說(shuō)明,下面詳細(xì)介紹一下第三個(gè)接口,即在數(shù)據(jù)決策系統(tǒng)中打開(kāi)一個(gè)新tab。

    1.4.1 描述

    數(shù)據(jù)鉆取是使用超級(jí)鏈接實(shí)現(xiàn),打開(kāi)方式有三種,當(dāng)前窗口,對(duì)話框,新窗口。前面2種方式很好理解,第三種在新窗口中打開(kāi),即在瀏覽器端打開(kāi)一個(gè)新的tab頁(yè)面,如果是在數(shù)據(jù)決策系統(tǒng)中使用,希望實(shí)現(xiàn)在決策系統(tǒng)框架下新增一個(gè)tab頁(yè)簽,而不是在瀏覽器端重新打開(kāi)一個(gè)窗口,這個(gè)該怎么實(shí)現(xiàn)呢?

    1.4.2 模板

    下面以%FR_HOME%\demo\basic\DetailedDrillA.cpt為例,該模板中實(shí)現(xiàn)了在當(dāng)前窗口的鉆取功能,下面將在當(dāng)前窗口打開(kāi)換成在新的tab頁(yè)面中打開(kāi)。

    1.4.3 超級(jí)鏈接

     

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


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

     

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




    通過(guò)

    window.parent.FS.tabPane.addItem({title:"baidu",src:"http://www.baidu.com"})  

     實(shí)現(xiàn)在新的tab中打開(kāi)頁(yè)面。

    title:訂單明細(xì)

    src:訂單明細(xì)模板的路徑

     

    具體如下圖:



     

    這里要注意,src最后的&符號(hào)為參數(shù)的傳遞,即將當(dāng)前單元格的值傳遞給參數(shù)ID,然后再src的路徑后面拼接字符串,將ID參數(shù)的值傳遞給需要打開(kāi)的新模板中的訂單號(hào)參數(shù)。

    代碼如下:

     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頁(yè)面集成的時(shí)候,將FineReport報(bào)表嵌入在iframe中,調(diào)用報(bào)表對(duì)象時(shí)使用的接口,比如說(shuō):document.getElementById('reportFrame').contentWindow,其中document.getElementById('reportFrame')是獲取iframe對(duì)象,contentWindow是報(bào)表對(duì)象,相當(dāng)于html中的window對(duì)象。

    在普通模板的JS腳本中可以直接使用contentWindow下的屬性,如直接使用contentWindow中的contentPane,而不用寫(xiě)contentWindow,這是因?yàn)閖s腳本本身就在FR模板中執(zhí)行。

    網(wǎng)頁(yè)中使用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頁(yè)面集成里面還是直接在FR模板之中,contentWindow下面最常用的屬性當(dāng)屬contentPane,所以下面將詳細(xì)介紹contentPane。

    contentPane是contentWidow下面的最常用的一個(gè)屬性,為存放報(bào)表內(nèi)容的容器。

    2. 2引用contentPane

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

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

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

     

    比如,需要在網(wǎng)頁(yè)中獲取報(bào)表填報(bào)頁(yè)面的一個(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è),只有分頁(yè)預(yù)覽才有

    reportTotalPage

    總頁(yè)數(shù),只有分頁(yè)預(yù)覽報(bào)表才有

    zoom

    縮放比例

    2.2.2  contentPane常用方法

    方法

    說(shuō)明

    appendReportRC(num)

    在選中行后面插入num行,只有填報(bào)表才可以用

    deleteReportRC()

    刪除指定行,只有填報(bào)表才可以用

    deleteRows(param)

    批量刪除param所在記錄,param為一竄單元格坐標(biāo)的字符串?dāng)?shù)組

    emailReport()

    郵件發(fā)送

    exportReportToExcel('指定格式')

    參數(shù)為page時(shí)分頁(yè)導(dǎo)出;simple原樣導(dǎo)出;sheet分頁(yè)分sheet導(dǎo)出

    exportReportToImage()

    輸出圖片

    exportReportToPDF()

    輸出pdf

    exportReportToWord()

    輸出word

    fireEvent()

    觸發(fā)事件

    appletPrint()

    applet打印

    flashPrint()

    flash打印

    getWidgetByName()

    獲取填報(bào)頁(yè)面的控件

    getCellValue(cell)/getCellValue(col,row)

    獲取單元格值,只有填報(bào)下有

    gotoFirstPage()

    跳轉(zhuǎn)到第一頁(yè),只有分頁(yè)預(yù)覽報(bào)表有

    gotoLastPage()

    跳轉(zhuǎn)到最后一頁(yè),只有分頁(yè)預(yù)覽報(bào)表有

    gotoPreviousPage()

    跳轉(zhuǎn)到上一頁(yè),只有分頁(yè)預(yù)覽報(bào)表有

    gotoNextPage()

    跳轉(zhuǎn)到下一頁(yè),只有分頁(yè)預(yù)覽報(bào)表有

    gotoPage(num)

    跳轉(zhuǎn)到指定num頁(yè),只有分頁(yè)預(yù)覽報(bào)表有

    importExcelData()

    在線導(dǎo)入excel,只有填報(bào)表才可以用

    on()

    監(jiān)聽(tīng)

    pdfPrint()

    pdf打印

    printPreview()

    打印預(yù)覽,只有數(shù)據(jù)分析時(shí)才有

    pageSetup()

    頁(yè)面設(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來(lái)獲取該對(duì)象。

    如果報(bào)表嵌在網(wǎng)頁(yè)的iframe中,在iframe外獲取curLGP對(duì)象如下:

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

     

    2.3.1 curLGP常用屬性:

    屬性

    說(shuō)明

    currentTDCell

    填報(bào)預(yù)覽,當(dāng)前焦點(diǎn)所在單元格

    dirtyCell

    填報(bào)預(yù)覽,編輯過(guò)的單元格

    write

    填報(bào)預(yù)覽,返回write對(duì)象

    form

    表單預(yù)覽或參數(shù)界面,返回form對(duì)象

     

    2.3.2 curLGP常用方法

    方法

    說(shuō)明

    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來(lái)獲取該對(duì)象。

    如果報(bào)表嵌在網(wǎng)頁(yè)的iframe中,在iframe外獲取write對(duì)象如下:

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

    2.4.2 write常用方法

    方法        

    說(shuō)明

    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來(lái)獲取該對(duì)象,如獲取參數(shù)界面下拉框p1這個(gè)控件:

    var widget=this.options.form.getWidgetByName(p1)  

    如果報(bào)表嵌在網(wǎng)頁(yè)的iframe中,在iframe外獲取form對(duì)象如下:

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

    2.5.2 form常用屬性及方法:

    屬性或方法

    說(shuō)明

    name_widgets

    form中的所有控件集合

    getValueByName(name)

    獲取指定名字控件的值

    getWidgetByName(name)

    獲取指定名字的控件

    posted on 2016-03-23 15:00 喝水居然長(zhǎng)肉 閱讀(226) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 在线视频免费观看高清| 91免费在线视频| 四虎成人精品一区二区免费网站| 亚洲国产精品久久人人爱| 蜜桃成人无码区免费视频网站 | 最近中文字幕无免费| 理论片在线观看免费| 中文字幕亚洲码在线| 成年性生交大片免费看| 亚洲a一级免费视频| 四虎必出精品亚洲高清| 久久国产亚洲电影天堂| 久久久久av无码免费网| 国产自国产自愉自愉免费24区| 亚洲免费电影网站| 日产亚洲一区二区三区| 免费看的黄色大片| 91麻豆最新在线人成免费观看| 偷自拍亚洲视频在线观看| 中文字幕无码亚洲欧洲日韩| 亚洲精品视频在线播放| 亚洲AⅤ无码一区二区三区在线| 日韩免费电影网站| 韩国免费A级毛片久久| 亚洲欧美aⅴ在线资源| 亚洲一区精品视频在线| 亚洲第一精品电影网| 亚洲宅男永久在线| 亚洲美女大bbbbbbbbb| 亚洲色图视频在线观看| 亚洲午夜久久影院| 亚洲人妻av伦理| 久久久久国产亚洲AV麻豆| 国内大片在线免费看| 波多野结衣久久高清免费 | 亚洲国产精品yw在线观看| 亚洲最大视频网站| 久久久无码精品亚洲日韩京东传媒| 亚洲av丰满熟妇在线播放| 亚洲国产女人aaa毛片在线| 亚洲精品无码不卡|