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

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

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

    wuxiren123

    Web報表工具FineReport的JS API開發(二)

    上次介紹FineReport的JS API中的第一類開發--FR,這次就來介紹一下FS和contentWindow類的開發。

    1 FS

    FS是數據決策系統中的js接口,比如說FS.tabPane.addItem,先介紹幾類操作:

    1.1 FS.Trans.signOut()

    退出決策平臺系統

    1.2 FS.tabPane._doCloseTab(FS.tabPane._getSelectedTab())

    關閉當前決策平臺的標簽

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

    在決策平臺中打開新標簽頁

    1.4示例

    前面兩個接口很簡單,這里不再舉例說明,下面詳細介紹一下第三個接口,即在數據決策系統中打開一個新tab。

    1.4.1 描述

    數據鉆取是使用超級鏈接實現,打開方式有三種,當前窗口,對話框,新窗口。前面2種方式很好理解,第三種在新窗口中打開,即在瀏覽器端打開一個新的tab頁面,如果是在數據決策系統中使用,希望實現在決策系統框架下新增一個tab頁簽,而不是在瀏覽器端重新打開一個窗口,這個該怎么實現呢?

    1.4.2 模板

    下面以%FR_HOME%\demo\basic\DetailedDrillA.cpt為例,該模板中實現了在當前窗口的鉆取功能,下面將在當前窗口打開換成在新的tab頁面中打開。

    1.4.3 超級鏈接

     

    打開模板,進入A4單元格的超級鏈接設置界面,如下圖:


    將訂單明細的鉆取修改成在數據決策中打開一個新的tab頁面,新tab頁面的標題為訂單明細。

     

    新增一個JavaScript的超級鏈接,添加參數ID,參數值為當前單元格的值,即ID=$$$,如下圖:




    通過

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

     實現在新的tab中打開頁面。

    title:訂單明細

    src:訂單明細模板的路徑

     

    具體如下圖:



     

    這里要注意,src最后的&符號為參數的傳遞,即將當前單元格的值傳遞給參數ID,然后再src的路徑后面拼接字符串,將ID參數的值傳遞給需要打開的新模板中的訂單號參數。

    代碼如下:

     window.parent.FS.tabPane.addItem({title:"訂單明細",src:"${servletURL}?reportlet=demo/basic/DetailedDrillB.cpt&訂單號="+ID})  

    1.4.4 效果查看



     

    2 contentWindow

    2.1介紹:

    contentWindow是在web頁面集成的時候,將FineReport報表嵌入在iframe中,調用報表對象時使用的接口,比如說:document.getElementById('reportFrame').contentWindow,其中document.getElementById('reportFrame')是獲取iframe對象,contentWindow是報表對象,相當于html中的window對象。

    在普通模板的JS腳本中可以直接使用contentWindow下的屬性,如直接使用contentWindow中的contentPane,而不用寫contentWindow,這是因為js腳本本身就在FR模板中執行。

    網頁中使用iframe嵌入報表,如果文檔包含框架(frame或iframe標簽),框架中嵌入了FR報表,則會創建一個contentWindow對象先獲取iframe,再調用contentWindow,然后使用contentWindow下面的屬性

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

    不論是web頁面集成里面還是直接在FR模板之中,contentWindow下面最常用的屬性當屬contentPane,所以下面將詳細介紹contentPane。

    contentPane是contentWidow下面的最常用的一個屬性,為存放報表內容的容器。

    2. 2引用contentPane

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

    如果報表嵌在網頁的iframe中,首先在iframe中獲取contentWindow,然后獲取屬性contentPane對象,如下:

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

     

    比如,需要在網頁中獲取報表填報頁面的一個按鈕,并執行點擊事件: 

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

    2.2.1 contentPane常用屬性

    parameterEl

    返回對象參數界面

    curLGP

    返回curLGP對象,只有填報預覽及表單預覽下才有

    currentPageIndex

    當前所在頁,只有分頁預覽才有

    reportTotalPage

    總頁數,只有分頁預覽報表才有

    zoom

    縮放比例

    2.2.2  contentPane常用方法

    方法

    說明

    appendReportRC(num)

    在選中行后面插入num行,只有填報表才可以用

    deleteReportRC()

    刪除指定行,只有填報表才可以用

    deleteRows(param)

    批量刪除param所在記錄,param為一竄單元格坐標的字符串數組

    emailReport()

    郵件發送

    exportReportToExcel('指定格式')

    參數為page時分頁導出;simple原樣導出;sheet分頁分sheet導出

    exportReportToImage()

    輸出圖片

    exportReportToPDF()

    輸出pdf

    exportReportToWord()

    輸出word

    fireEvent()

    觸發事件

    appletPrint()

    applet打印

    flashPrint()

    flash打印

    getWidgetByName()

    獲取填報頁面的控件

    getCellValue(cell)/getCellValue(col,row)

    獲取單元格值,只有填報下有

    gotoFirstPage()

    跳轉到第一頁,只有分頁預覽報表有

    gotoLastPage()

    跳轉到最后一頁,只有分頁預覽報表有

    gotoPreviousPage()

    跳轉到上一頁,只有分頁預覽報表有

    gotoNextPage()

    跳轉到下一頁,只有分頁預覽報表有

    gotoPage(num)

    跳轉到指定num頁,只有分頁預覽報表有

    importExcelData()

    在線導入excel,只有填報表才可以用

    on()

    監聽

    pdfPrint()

    pdf打印

    printPreview()

    打印預覽,只有數據分析時才有

    pageSetup()

    頁面設置,只有數據分析才有

    scale(str)

    縮放,str為"+"時放大,為"-"時縮小

    setCellValue(cell,null,value)/setCellValue(col,row,value)

    給單元格賦值,只有填報表才有

    verifyReport()

    數據校驗,只有填報表才可以用

    writeReport()

    校驗并提交報表,只有填報表才可以用

     

    FineReport的填報預覽及表單預覽下contentPane下都會有一個curLGP對象,即current logicpane。

    2.3 引用curLGP

    在cpt模板的JS腳本中可以使用contentPane.curLGP來獲取該對象。

    如果報表嵌在網頁的iframe中,在iframe外獲取curLGP對象如下:

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

     

    2.3.1 curLGP常用屬性:

    屬性

    說明

    currentTDCell

    填報預覽,當前焦點所在單元格

    dirtyCell

    填報預覽,編輯過的單元格

    write

    填報預覽,返回write對象

    form

    表單預覽或參數界面,返回form對象

     

    2.3.2 curLGP常用方法

    方法

    說明

    getCellValue(cell)/getCellValue(col, row)

    獲取指定格子的值,只有填報下有

    setCellValue(cell, null, value)/setCellValue(col, row, value)

    設置指定格子的值,只有填報下有

     

    2.4 write

    填報預覽時,curLGP下有一個write對象。

    2.4.1 引用write

    在cpt模板的JS腳本中可以使用contentPane.curLGP.write來獲取該對象。

    如果報表嵌在網頁的iframe中,在iframe外獲取write對象如下:

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

    2.4.2 write常用方法

    方法        

    說明

    getWidgetByCell(cell)

    獲取指定單元格中的控件

    getWidgetByName(name)

    獲取指定名字的控件

    getWidgetsByName(name)

    獲取指定名稱的擴展控件,返回一個數組

     

    2.5 form

    表單預覽或參數界面,都有一個form對象。

    2.5.1引用form

    在cpt模板的JS腳本中可以使用this.options.form來獲取該對象,如獲取參數界面下拉框p1這個控件:

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

    如果報表嵌在網頁的iframe中,在iframe外獲取form對象如下:

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

    2.5.2 form常用屬性及方法:

    屬性或方法

    說明

    name_widgets

    form中的所有控件集合

    getValueByName(name)

    獲取指定名字控件的值

    getWidgetByName(name)

    獲取指定名字的控件

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲第一区二区快射影院| 亚洲毛片基地日韩毛片基地| 亚洲欧洲av综合色无码| 日韩精品福利片午夜免费观着| 亚洲日韩在线视频| 日本成年免费网站| 亚洲色偷偷色噜噜狠狠99网| 午夜精品在线免费观看| 亚洲成av人在线观看网站| 国产成人高清精品免费鸭子| 日韩亚洲综合精品国产| 亚洲情侣偷拍精品| 99在线免费观看| 亚洲第一精品电影网| 亚洲人成网站免费播放| 羞羞的视频在线免费观看| 亚洲视频一区二区| 久久国产精品成人片免费| 亚洲乱人伦精品图片| 成人免费视频国产| 国产va免费精品| 亚洲网址在线观看你懂的| 久久福利资源网站免费看| 精品亚洲av无码一区二区柚蜜| 久久精品国产亚洲精品| 最近免费最新高清中文字幕韩国 | 精品久久久久久久免费人妻| 综合一区自拍亚洲综合图区| 亚洲熟妇无码另类久久久| 精品成在人线AV无码免费看 | 亚洲国产片在线观看| 四虎国产精品免费久久影院| 好男人资源在线WWW免费| 亚洲最新中文字幕| 全黄a免费一级毛片人人爱| 国产精品网站在线观看免费传媒| 久久夜色精品国产噜噜亚洲a| 亚洲美女高清一区二区三区| 2020久久精品国产免费| 又大又硬又粗又黄的视频免费看 | 波多野结衣免费在线|