真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

報(bào)表集成那點(diǎn)事-創(chuàng)新互聯(liá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)表中,潤乾報(bào)表也采用的是中間件方式,下面我們以潤乾報(bào)表為例來進(jìn)一步了解一下:

10年積累的成都網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有新縣免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

潤乾報(bào)表為了方便開發(fā)者使用,在滿足大多數(shù)通用的需求的同時(shí),實(shí)現(xiàn)零編程,潤乾報(bào)表利用 tag 標(biāo)簽進(jìn)行了封裝,如下就是一個(gè)發(fā)布潤乾報(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 請求報(bào)表的 servlet,報(bào)表名作為參數(shù)傳遞給報(bào)表應(yīng)用,報(bào)表應(yīng)用將計(jì)算以后生成的 html 報(bào)表返回。

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

中間件方式

我們還是拿潤乾報(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 中請求報(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ù)請求;再次,參數(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)維難度。所以,潤乾報(bào)表雖然也支持 servlet 發(fā)布報(bào)表的方式,但我們也不建議大家這樣使用。

前面我們講了潤乾報(bào)表作為中間件集成,那么這個(gè)中間件到底集成了什么到應(yīng)用系統(tǒng)中?很簡單,就是 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     ; // 絕對路徑或相對當(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è)簡單例子,API 屬于進(jìn)階集成,更深入的學(xué)習(xí)請參考潤乾的《程序員參考》文檔。這例子雖然簡單,但我相信大家已經(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)可以看出,中間件的方式在集群上更簡單些。所需要的配置及硬件資源都要少不少。

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


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


新聞名稱:報(bào)表集成那點(diǎn)事-創(chuàng)新互聯(lián)
文章地址:http://weahome.cn/article/edhdc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部