Java軟件報表軟件技術(shù)博客

          java報表軟件技術(shù)匯總 java報表軟件制作 報表軟件新聞
          posts - 355, comments - 100, trackbacks - 0, articles - 3
             :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

          隨著社會信息化高速發(fā)展,企業(yè)信息化也得到了一定提高,而如何提高辦公效率已經(jīng)成為企業(yè)一項重要而緊迫的任務(wù),傳統(tǒng)的紙質(zhì)報表等檔案不僅浪費紙張、不易存檔、不易調(diào)閱、不易統(tǒng)計,如何更有效、更快速提升辦公效率和辦公質(zhì)量,成為了制約工作效率提升的最大瓶頸。

          由點到面,從各位朋友的電腦桌面上繁多的報表文件,明顯的可以看出日常工作的繁忙,可是一天下來感覺處理的文件卻不多。

          地域限制:由于集團沒辦法實時和子公司實現(xiàn)同步辦公,在溝通方面成本很高,而且異地辦公效率低,得到的生產(chǎn)報表數(shù)據(jù)和財務(wù)數(shù)據(jù)不準確,而且不及時。

          員工素質(zhì)的差別:每個人處事的方式都不同,造成“一鍋粥”的現(xiàn)象,這就要求我們用流程工具和報表工具來規(guī)范梳理工作。

          檔案丟失:員工的離職,造成報表文檔的丟失已經(jīng)成了企業(yè)最大的損失。

          透過現(xiàn)象看本質(zhì),實現(xiàn)信息化已經(jīng)迫在眉睫,集團急需一套OA并集成報表軟件的系統(tǒng),而泛微OA正好符合我們的需求,且Finereport報表更是無縫集成于泛微OA。

          效果展示





          一、開發(fā)工具

          讓我們先了解一下這個B/S架構(gòu)的開發(fā)環(huán)境:

          操作系統(tǒng):        Redhat 5.4 Linux  64位

          WBE應(yīng)用服務(wù)器: RESIN

          開發(fā)語言:        JAVA

          數(shù)據(jù)庫:          ORACLE 10.2g

          報表開發(fā)工具:    Finereport

          網(wǎng)頁開發(fā)工具:    Dreamweaver 8

          OA系統(tǒng):              泛微協(xié)同OA

          Finereport的數(shù)據(jù)來源于oracle現(xiàn)有數(shù)據(jù)庫,通過OA新增菜單,鏈接jsp網(wǎng)頁,利用OA角色與權(quán)限控制單元在jsp頁面(嵌入報表頁面)做二次開發(fā),并授權(quán)用戶訪問報表。

          二、數(shù)據(jù)來源

          由于OA已經(jīng)有現(xiàn)成的oracle10g數(shù)據(jù)庫,而我們的報表需要的數(shù)據(jù)庫源主要來自O(shè)A的數(shù)據(jù)庫表。

          首先,我們要打開FR設(shè)計器,連接數(shù)據(jù)源,設(shè)計器最上方的菜單欄--服務(wù)器—定義數(shù)據(jù)連接。用鼠標選中剛剛命名的數(shù)據(jù)源,右邊顯示對應(yīng)的數(shù)據(jù)源屬性編輯面板,共有五項屬性:

          數(shù)據(jù)庫:oracle

          驅(qū)動:oracle.jdbc.driver.OracleDriver

          URL:jdbc:oracle:thin:@192.168.X.X:1521:實例名

          輸入用戶名和密碼,點擊“測試連接”按鈕,如下圖所示:


          提示,測試成功,代表oracle數(shù)據(jù)庫連接成功。

          主要的數(shù)據(jù)庫表如圖所示:

          1、workflow_currentoperator工作流請求節(jié)點操作人信息表

          ,存放如下字段:請求id

          、用戶id、工作流類型、工作流id、操作節(jié)點id、操作日期、操作時間


           

          2、workflow_requestLog工作流請求簽字日志表

          ,存放如下字段:操作者、操作時間、客戶端ip、下一節(jié)點id、工作流id、請求id、操作日期、操作節(jié)點id


           


           

          3、formtable_main_4簽報流程自定義表,存放如下字段:抬頭、主辦部門、呈送、電話、傳真等敏感字段


          4、HrmLocations人力資源辦公地點表

          ,存放如下字段:所在城市、所在國家、電話、傳真、手機。

          SysMaintenanceLog系統(tǒng)操作日志表

          ,存放如下字段:操作日期、操作用戶id、操作時間、操作類型、是否為流程模板


           

          5、workflow_currentoperator工作流請求節(jié)點操作人信息表

          ,存放如下字段:工作流id

          、工作流類型、操作節(jié)點id、接收到的日期、接收到的時間、標記流程是否歸檔、操作時間


           

          6、Hrmdepartment人力資源部門表,存放如下字段:上級部門id、所屬分部1、所有上級部門id、部門名稱、部門標識等。


           

          諸如hrmsubcompany人力資源分部表,存放如下字段:所屬總部id、分部簡稱、分部描述等;HrmResource 人力資源表,存放如下字段:身份證號碼、賬號id、籍貫、工作狀態(tài)、密碼等N多的信息,這里不再一一介紹。

           

          三、需求分析

          基于Finereport的報表,并集成到OA,通過Finereport實現(xiàn)數(shù)據(jù)庫復(fù)雜查詢/填報的方式,在辦公OA上實現(xiàn)實時交互,讓OA項目花最少的力氣在報表工作上。體現(xiàn)在:

          1、     公文簽報,集中報表

          2、     考勤數(shù)據(jù),集中報表

          3、     資產(chǎn)管理,集中報表

          4、     人員登錄,集中管控

          5、     流程管控,集中統(tǒng)一

          6、     權(quán)限管控,集中統(tǒng)一

          然后把大部分時間用于問題的解決,績效的提升,決策的制訂,有效的執(zhí)行等核心事上,從而提高工作效率。

           

          四、數(shù)據(jù)分析

          先分析一下項目數(shù)據(jù)的采集,報表數(shù)據(jù)貫穿著辦公OA流程,隨著時間的積累,積沙成塔。

          數(shù)據(jù)范圍:固定資產(chǎn)、人員登錄、集團/子公司的公文簽報、用章申請、考勤等數(shù)據(jù)

          數(shù)據(jù)層面:員工層面

          縱向維度:OA復(fù)雜的流程

          橫向維度:分公司、部門、員工、考勤種類等

          時間維度:日期

          五、報表設(shè)計

          一般來說,一個完整的報表設(shè)計流程,大體分為如下幾個步驟:


           

          打開設(shè)計器,跳過配置數(shù)據(jù)源這些簡單步驟,直奔設(shè)計報表主題,舉例集團簽報報表,首先、了解簽報所需要的字段,一般是集團機要秘書來管理下發(fā)和收件,把字段全部羅列出來,如圖:


           

          其次、簽報情況匯總報表涉及了辦公OA流程的部分流程,查看流程,


           

          包含總裁機要秘書接收日期,總裁機要秘書需要統(tǒng)計來文單位、文件主題,然后再決定傳送給哪位集團分管領(lǐng)導(dǎo),接下來又要統(tǒng)計分管領(lǐng)導(dǎo)意見以及會簽人的意見,最終才歸檔到經(jīng)辦人和總裁機要秘書,所以這個報表具有重要意義,可以省去總裁機要秘書頻繁的登記收文和領(lǐng)導(dǎo),提高領(lǐng)導(dǎo)的簽報效率。

          約束條件是requestid,表與表之間通過requestid的關(guān)聯(lián)起來的,分別寫出該字段需要查詢的條件,并且日期以流程節(jié)點“已查看”或者“已提交”為時間判斷標準。


           

          思路清楚后,就直接設(shè)計報表字段的SQL,如果用普通的網(wǎng)頁來制作這個簽報報表,我想我會瘋掉的。因為太復(fù)雜了,而且oracle的long類型的字段在PL是不顯示的,而FineReport工具竟然能顯示出來,真的讓人佩服。


          點擊“預(yù)覽”,結(jié)果就顯示出來了,如果用網(wǎng)頁還會存在緩存,很煩的,而改用FR設(shè)計器,更簡潔更快速。

          為了提高瀏覽速度,設(shè)計的時候需要考慮分頁,點擊“文件號”,點擊右鍵,設(shè)置條件屬性。設(shè)置公式為&B4 % 31,設(shè)置31行后就分頁。這樣是一個月的數(shù)據(jù),對報表很有意義。


           

          六、權(quán)限控制

          Jsp頁面代碼編寫,詳情見例子jtgw.jsp

          <%@ pageimport="weaver.general.Util" %>

          <%@ page import="weaver.conn.*"%>

          <%@ pagelanguage="java" contentType="text/html; charset=GBK" %><%@ include file="/systeminfo/init.jsp" %>

          <jsp:useBeanid="rs" class="weaver.conn.RecordSet"scope="page" />

          <HTML><HEAD>

          <LINKhref="/css/Weaver.css" type=text/css rel=STYLESHEET>

          </head>

          <%

             String imagefilename ="/images/hdSystem.gif";

             String titlename = "公文情況匯總表";

             String needfav ="1";

             String needhelp ="";

          %>

          <BODY>

          <%@ includefile="/systeminfo/TopTitle.jsp" %>

          <%@ includefile="/systeminfo/RightClickMenuConent.jsp" %>

          <%@ includefile="/systeminfo/RightClickMenu.jsp" %>

          <%

          if(!HrmUserVarify.checkUserRight("OA-Report-02",user)){

                          response.sendRedirect("/notice/noright.jsp");

                          return;

                  }

          %>

          <head>

          <metahttp-equiv="Content-Type" content="text/html;charset=gb2312" />

          <title>報表</title>

          </head>

          <!--這里用iframe方法嵌入finereport報表網(wǎng)頁-->

          <iframename="sbjljgml" id="sbjljgml"src="/ReportServer?reportlet=jtgw.cpt&op=write"width="100%" height="100%" frameborder="0"border="0" marginwidth="0" marginheight="0"scrolling="yes" target="contents"align="center"></iframe>

          <body>

          </body>

          </html>

          另外oracle插入兩條SQL:

          insert into SYSTEMRIGHTS values('902','公文情況匯總表','3','0');

            insert into SYSTEMRIGHTDETAIL values('9002','公文情況匯總表’,'OA-Report-02','902')

          注釋一下OA-Report-01

          權(quán)限:901開始編號

          明細單元:9001 開始編號

          七、部署報表

          1、     安裝FineReport的安裝程序

          2、     通過SSH工具,將解壓出來的\FineReport_6.5\WebReport\WEB-INF地址下的reportlets,resources文件上傳至服務(wù)器\WEAVER\ecology\WEB-INF目錄下。

          3、通過SSH工具,將\FineReport_6.5\WebReport\WEB-INF\lib地址下的fr-server-6.5.jar,fr-third-6.5.jar,ojdbc14.jar文件上傳至于服務(wù)器\WEAVER\Resin\lib目錄下。

           


          4、 在linux服務(wù)器中\(zhòng)WEAVER\ecology\WEB-INF目錄下的web.xml添加內(nèi)容,如圖:


          5    以上配置修改完成,重新啟動RESIN服務(wù)。

          6、打開IE,輸入http://localhost/WebReport/ReportServer?op=fs,測試是否能打開。

          7、 在思科防火墻上映射外網(wǎng)IP到OA內(nèi)網(wǎng)服務(wù)器,并開放80端口,綁定公司域名到OA外網(wǎng)Ip,然后在IE輸入http://oa.xx.com,即可訪問到FineReport集成的OA系統(tǒng)。


           


           




           


           

           




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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 吴堡县| 子洲县| 邹平县| 射洪县| 通州市| 扎囊县| 滦平县| 通榆县| 孝感市| 长武县| 手游| 永寿县| 金川县| 安西县| 合江县| 荆州市| 南安市| 多伦县| 佛学| 宁远县| 安吉县| 靖远县| 香河县| 西乡县| 定远县| 美姑县| 扎赉特旗| 拜城县| 九龙城区| 福清市| 谢通门县| 榆树市| 郴州市| 陇西县| 辽阳市| 江都市| 泗水县| 汝南县| 龙口市| 南平市| 苏尼特右旗|