項(xiàng)目組使用潤(rùn)乾報(bào)表已一年多了,說(shuō)實(shí)話(huà),潤(rùn)乾報(bào)表在國(guó)內(nèi)同類(lèi)產(chǎn)品中屬于非常不錯(cuò)的最好的報(bào)表開(kāi)發(fā)和應(yīng)用產(chǎn)品。相應(yīng)的支持也比較到位,使用人員及交流社區(qū)也開(kāi)展的很合適。在這先給它們作個(gè)廣告?。?!
在項(xiàng)目中使用潤(rùn)乾報(bào)表,對(duì)數(shù)據(jù)進(jìn)行專(zhuān)業(yè)的報(bào)表應(yīng)用和開(kāi)發(fā),我對(duì)其作簡(jiǎn)單總結(jié):
1)對(duì)其服務(wù)器運(yùn)行系統(tǒng)進(jìn)行項(xiàng)目性客戶(hù)化開(kāi)發(fā),從而利用項(xiàng)目中的權(quán)限管理和模塊,實(shí)現(xiàn)對(duì)報(bào)表進(jìn)行訪問(wèn)控制。否則,這對(duì)企業(yè)級(jí)應(yīng)用將是一個(gè)非常大的考驗(yàn)。
2)潤(rùn)乾報(bào)表自帶的參數(shù)生成模塊、報(bào)表運(yùn)行載體的樣式、風(fēng)格都極其簡(jiǎn)陋,與項(xiàng)目的實(shí)際風(fēng)格可能存在很大的差距。因此必需對(duì)其進(jìn)行深入的擴(kuò)展和開(kāi)發(fā)。我們項(xiàng)目組的經(jīng)驗(yàn)就是單獨(dú)開(kāi)發(fā)參數(shù)生成模塊和潤(rùn)乾報(bào)表載體,如此才保證了報(bào)表中心與項(xiàng)目的用戶(hù)體驗(yàn)和交互性的一致性。
3)為了更好的利用項(xiàng)目組資源,我們將潤(rùn)乾報(bào)表開(kāi)發(fā)人員獨(dú)立出來(lái),形成專(zhuān)門(mén)的報(bào)表開(kāi)發(fā)團(tuán)隊(duì)。此團(tuán)隊(duì)負(fù)責(zé)根據(jù)業(yè)務(wù)的需要,利用潤(rùn)乾報(bào)表開(kāi)發(fā)工具進(jìn)行報(bào)表開(kāi)發(fā),即開(kāi)發(fā).raq報(bào)表文件。此部份人員可從項(xiàng)目組的普通成員和新進(jìn)人員中進(jìn)行培養(yǎng),而無(wú)需占用大量的項(xiàng)目組中中高級(jí)開(kāi)發(fā)人員資源,從而節(jié)約了項(xiàng)目組的資源。
4)潤(rùn)乾報(bào)表對(duì)過(guò)JSP標(biāo)簽包含在jsp頁(yè)面中進(jìn)行加裁我運(yùn)行。我們稱(chēng)此jsp頁(yè)面為潤(rùn)乾報(bào)表運(yùn)行載體。我們根據(jù)潤(rùn)乾報(bào)表的運(yùn)行載體進(jìn)行了科學(xué)的分類(lèi),并根據(jù)分類(lèi)開(kāi)發(fā)出統(tǒng)一的報(bào)表運(yùn)行載體頁(yè)面(jsp)。從而避免針對(duì)每個(gè)報(bào)表文件而開(kāi)發(fā)與之對(duì)應(yīng)的運(yùn)行載體。此舉也大為減少了項(xiàng)目組的JSP開(kāi)發(fā)人員的工作量。
5)建立潤(rùn)乾報(bào)表運(yùn)行專(zhuān)用配置文件,將報(bào)表參數(shù)生成模塊、運(yùn)行載體及潤(rùn)乾報(bào)表三者之間的關(guān)系進(jìn)行配置化管理,并以此為紐帶,將潤(rùn)乾報(bào)表開(kāi)發(fā)人員、JSP開(kāi)發(fā)人員(開(kāi)發(fā)報(bào)表運(yùn)行載體和報(bào)表參數(shù)生成功能)聯(lián)系起來(lái)。
在開(kāi)發(fā)過(guò)程中,我們碰到并解決了如下問(wèn)題:
1)填報(bào)類(lèi)潤(rùn)乾報(bào)表在進(jìn)行數(shù)據(jù)驗(yàn)證時(shí),其提示信息(以js的alert("...")方式提示用戶(hù))成亂碼顯示:此問(wèn)題是由于潤(rùn)乾報(bào)表在V4.1以后,統(tǒng)一使用UTF-8作編譯編碼。因此,要解決此問(wèn)題,需要將項(xiàng)目的編碼也改成UTF-8
2)在潤(rùn)乾報(bào)表的參數(shù)賦值需按序依次進(jìn)行賦值,而不能采用參數(shù)名進(jìn)行統(tǒng)一賦值。因?yàn)?,如果在?rùn)乾報(bào)表的SQL中使用了重復(fù)的參數(shù)進(jìn)行賦值時(shí),會(huì)報(bào)參數(shù)找不至的錯(cuò)誤。
3)在參數(shù)生成模塊中將中文參數(shù)值傳遞給潤(rùn)乾報(bào)表時(shí),會(huì)導(dǎo)致少量的參數(shù)值在傳遞過(guò)程中發(fā)生改變,如“機(jī)油”變成了“箕油”。此問(wèn)題是由于在urlEncode和urlDecode的bug導(dǎo)致,請(qǐng)?jiān)陂_(kāi)發(fā)時(shí)需特別注意。我們是通過(guò)自己對(duì)信息進(jìn)行加碼和解碼來(lái)解決此bug。
4)潤(rùn)乾報(bào)表的運(yùn)行環(huán)境與應(yīng)用服務(wù)器的編碼方式有關(guān):我們項(xiàng)目和報(bào)表中心的編碼方式為UTF-8,但運(yùn)用服務(wù)器(WAS6.1)的編碼方式為GBK時(shí),通過(guò)參數(shù)生成功能將中文參數(shù)傳遞給潤(rùn)乾報(bào)表時(shí),會(huì)出現(xiàn)亂碼問(wèn)題。在將WAS的輸出和運(yùn)行編碼改成UTF-8后,才解決此問(wèn)題。