1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
      報(bào)表集成那點(diǎn)事

      報(bào)表工具作為信息管理、決策分析系統(tǒng)不可或缺的部分,在項(xiàng)目中經(jīng)常用到,市面上的報(bào)表工具各式各樣,在集成策略上,每個(gè)產(chǎn)品也都有自己特有的打開方式。不過,從門派上看,常見的無外乎中間件,servlet 應(yīng)用兩大門派。一般開源的報(bào)表,大都作為中間件產(chǎn)品提供給開發(fā)者,集成方法也比較統(tǒng)一,通常都是嵌入到系統(tǒng)中自行調(diào)用 API 開發(fā)與集成,但開源的幫助文檔或全或不全,都靠自己找資料,就要拼學(xué)習(xí)能力了。在商用收費(fèi)報(bào)表中,潤(rùn)乾報(bào)表也采用的是中間件方式,下面我們以潤(rùn)乾報(bào)表為例來進(jìn)一步了解一下:

      10年專注成都網(wǎng)站制作,企業(yè)網(wǎng)站制作,個(gè)人網(wǎng)站制作服務(wù),為大家分享網(wǎng)站制作知識(shí)、方案,網(wǎng)站設(shè)計(jì)流程、步驟,成功服務(wù)上千家企業(yè)。為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),專注于企業(yè)網(wǎng)站制作,高端網(wǎng)頁制作,對(duì)護(hù)欄打樁機(jī)等多個(gè)方面,擁有豐富的網(wǎng)站運(yùn)維經(jīng)驗(yàn)。

      潤(rùn)乾報(bào)表為了方便開發(fā)者使用,在滿足大多數(shù)通用的需求的同時(shí),實(shí)現(xiàn)零編程,潤(rùn)乾報(bào)表利用 tag 標(biāo)簽進(jìn)行了封裝,如下就是一個(gè)發(fā)布潤(rùn)乾報(bào)表的 jsp 文件:

      <%@ taglib uri=”/WEB-INF/raqsoftReport.tld” prefix=”report” %>

      可以看到,在這個(gè) jsp 中用到一個(gè) 標(biāo)簽來發(fā)布 html 報(bào)表,與 struts 標(biāo)簽使用類似,其中 reportFileName 就是需要發(fā)布的報(bào)表文件名,發(fā)布報(bào)表的同時(shí),實(shí)現(xiàn)了導(dǎo)出,分頁,打印功能

      報(bào)表集成那點(diǎn)事

      如果把 WEB 應(yīng)用比作一臺(tái)機(jī)器,那報(bào)表就是這臺(tái)機(jī)器諸多功能模塊里的一塊,tag 標(biāo)簽就是一個(gè)個(gè)小零件,你把這個(gè)小零件扣在哪個(gè) jsp 文件中,報(bào)表就在哪里展現(xiàn)。
      報(bào)表集成那點(diǎn)事

      報(bào)表作為中間件集成到其他應(yīng)用系統(tǒng)里,與這個(gè)應(yīng)用系統(tǒng)就成為了一個(gè)整體,但也有分家的做法,比如業(yè)界比較常見的 servlet 應(yīng)用——

      報(bào)表集成那點(diǎn)事

      在這里,報(bào)表應(yīng)用是一個(gè)獨(dú)立的應(yīng)用,在其他應(yīng)用頁面里嵌入一個(gè) JFrame,然后通過 url 請(qǐng)求報(bào)表的 servlet,報(bào)表名作為參數(shù)傳遞給報(bào)表應(yīng)用,報(bào)表應(yīng)用將計(jì)算以后生成的 html 報(bào)表返回。

      那這個(gè)時(shí)候,我們的程序猿要問了,瀏覽報(bào)表明白了,那如果報(bào)表需要傳參呢? 別著急,我們?cè)賮砟M一下兩種集成方式在給報(bào)表傳參上有啥區(qū)別:

      中間件方式

      我們還是拿潤(rùn)乾報(bào)表的 tag 標(biāo)簽來看:

      <%@ taglib uri=”/WEB-INF/raqsoftReport.tld” prefix=”report” %>

      params=   “   arg1=123;arg2=abc;……   “

      />

      Tag 標(biāo)簽中有個(gè) params 屬性,可以通過這個(gè)屬性給參數(shù)賦值,如果參數(shù)值靈活變化,當(dāng)然屬性值也可以通過變量傳遞,這個(gè)不多說,程序猿都懂的。

      Servlet 的方式

      JFrame 中請(qǐng)求報(bào)表 servlet 的 URL 就要改成:

      http: //ip:port/report/reportservlet   ?   參數(shù) =   報(bào)表 &arg1=123&arg2=’abc’&…

      這時(shí),我知道我們經(jīng)驗(yàn)豐富的程序猿又要質(zhì)疑了:首先,引入了 JFrame 來加載報(bào)表,多一次數(shù)據(jù)請(qǐng)求;再次,參數(shù)在 url 里都是明文顯示的,安全報(bào)警啊,特別集成權(quán)限時(shí)會(huì)比較麻煩!除此之外,web 服務(wù)與報(bào)表服務(wù)在不同的進(jìn)程里,不管是不是在同一臺(tái)物理服務(wù)器,都會(huì)多占用硬件資源,當(dāng)應(yīng)用出現(xiàn)異常時(shí),排錯(cuò)也麻煩,增加運(yùn)維難度。所以,潤(rùn)乾報(bào)表雖然也支持 servlet 發(fā)布報(bào)表的方式,但我們也不建議大家這樣使用。

      前面我們講了潤(rùn)乾報(bào)表作為中間件集成,那么這個(gè)中間件到底集成了什么到應(yīng)用系統(tǒng)中?很簡(jiǎn)單,就是 jar 包,xml 配置文件及 jsp 的 tag 描述文件 tld。

      Jar 包引入到應(yīng)用程序中,不僅提供了 tag 標(biāo)簽零代碼計(jì)算展示、打印報(bào)表,也為開發(fā)者在自己的項(xiàng)目中自行調(diào)用報(bào)表 API 接口實(shí)現(xiàn)報(bào)表的計(jì)算,分頁,導(dǎo)出,打印等過程提供了方便,例如使用代碼計(jì)算發(fā)布一個(gè)報(bào)表:

      // 讀報(bào)表

      String reportFile =     C:/reportFiles/wangge.rpx     ; // 絕對(duì)路徑或相對(duì)當(dāng)前程序啟動(dòng)路徑

      ReportDefine rd = (ReportDefine)ReportUtils.read(reportFile);

      // 計(jì)算報(bào)表

      Context cxt = new Context();  // 構(gòu)建報(bào)表引擎計(jì)算環(huán)境

      //…………………….. // 其它輔助代碼,例如往報(bào)表引擎?zhèn)鬟f參數(shù),傳遞數(shù)據(jù)庫連接參數(shù)等
      ReportDefine rd = (ReportDefine)ReportUtils.read(reportFile);

      Engine engine = new Engine(rd, cxt);  // 構(gòu)造報(bào)表引擎

      IReport iReport = engine.calc();  // 運(yùn)算報(bào)表

      // 輸出到網(wǎng)頁,展現(xiàn)報(bào)表

      String htmlText = ReportUtils.toHTMLString(iReport,”report1″,request);  // 生成 html 語法

      request.setAttribute(“htmlText”, htmlText); // 保存到 request 里,方便頁面上顯示

      當(dāng)然,這里只是講一個(gè)簡(jiǎn)單例子,API 屬于進(jìn)階集成,更深入的學(xué)習(xí)請(qǐng)參考潤(rùn)乾的《程序員參考》文檔。這例子雖然簡(jiǎn)單,但我相信大家已經(jīng)體會(huì)到了她的靈活性、輕量性,而單一的 servlet URL 方式集成如果要二次開發(fā),僅兩個(gè)系統(tǒng)的數(shù)據(jù)通訊就是一大難題。 所以基于這種方式集成的報(bào)表,要么由開發(fā)者想辦法解決,要么就是把報(bào)表服務(wù)做成了一個(gè)平臺(tái)——囊括了數(shù)據(jù)決策展示、權(quán)限管理、報(bào)表管理等等看起來牛叉,但跟自己業(yè)務(wù)系統(tǒng)相結(jié)合時(shí)又是雞肋的一堆子業(yè)務(wù)系統(tǒng)。

      便利、靈活、輕量為報(bào)表開發(fā)節(jié)約成本提供了基礎(chǔ),隨著業(yè)務(wù)的提升,高效、高可用性也是考核報(bào)表系統(tǒng)的重要部分。因此集群也是集成部署的一個(gè)重要環(huán)節(jié),那接下來我們繼續(xù)來看,這兩種集成方式在集群上又有啥區(qū)別,先上兩個(gè)結(jié)構(gòu)圖——

      中間件嵌入到 web 應(yīng)用里,與 web 應(yīng)用是一個(gè)整體,所以 web 應(yīng)用做完集群,那么報(bào)表也就做完了集群。

      報(bào)表集成那點(diǎn)事

      而 Servlet URL 的方式,那集群就相當(dāng)于分成了兩套,各自做自己的集群,也就是報(bào)表是一個(gè)集群,web 應(yīng)用是一個(gè)集群。

      報(bào)表集成那點(diǎn)事

      從以上的部署結(jié)構(gòu)可以看出,中間件的方式在集群上更簡(jiǎn)單些。所需要的配置及硬件資源都要少不少。

      到此報(bào)表的集成基本就講完了,優(yōu)缺點(diǎn)都做了一個(gè)比較,您的應(yīng)用需要哪一種呢?


      詳情鏈接: http://c.raqsoft.com.cn/article/1533027803258?r=gxy


      新聞名稱:報(bào)表集成那點(diǎn)事
      瀏覽地址:http://www.ef60e0e.cn/article/gpogdj.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        噶尔县| 阳曲县| 且末县| 易门县| 双桥区| 彰化县| 龙游县| 屯昌县| 碌曲县| 陈巴尔虎旗| 乌拉特中旗| 木兰县| 胶州市| 两当县| 岫岩| 收藏| 盐源县| 陆丰市| 景东| 慈利县| 余江县| 明水县| 杭州市| 房产| 辉县市| 教育| 滦平县| 石城县| 博兴县| 雅安市| 游戏| 五常市| 马鞍山市| 原平市| 田林县| 蓝田县| 图木舒克市| 鄂伦春自治旗| 大余县| 英吉沙县| 邢台县|