天天看點

finereport與OA系統內建的完全方案

随着社會資訊化高速發展,企業資訊化也得到了一定提高,而如何提高辦公效率已經成為企業一項重要而緊迫的任務,傳統的紙質報表等檔案不僅浪費紙張、不易存檔、不易調閱、不易統計,如何更有效、更快速提升辦公效率和辦公品質,成為了制約工作效率提升的最大瓶頸。

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

地域限制:由于集團沒辦法實時和子公司實作同步辦公,在溝通方面成本很高,而且異地辦公效率低,得到的生産報表資料和财務資料不準确,而且不及時。

員工素質的差别:每個人處事的方式都不同,造成“一鍋粥”的現象,這就要求我們用流程工具和報表工具來規範梳理工作。

檔案丢失:員工的離職,造成報表文檔的丢失已經成了企業最大的損失。

透過現象看本質,實作資訊化已經迫在眉睫,集團急需一套OA并內建報表軟體的系統,而泛微OA正好符合我們的需求,且Finereport報表更是無縫內建于泛微OA。

效果展示

finereport與OA系統內建的完全方案
finereport與OA系統內建的完全方案

讓我們先了解一下這個B/S架構的開發環境:

作業系統:        Redhat 5.4 Linux  64位

WBE應用伺服器: RESIN

開發語言:        JAVA

資料庫:          ORACLE 10.2g

報表開發工具:    Finereport

網頁開發工具:    Dreamweaver 8

OA系統:              泛微協同OA

Finereport的資料來源于oracle現有資料庫,通過OA新增菜單,連結jsp網頁,利用OA角色與權限控制單元在jsp頁面(嵌入報表頁面)做二次開發,并授權使用者通路報表。

由于OA已經有現成的oracle10g資料庫,而我們的報表需要的資料庫源主要來自OA的資料庫表。

首先,我們要打開FR設計器,連接配接資料源,設計器最上方的菜單欄--伺服器—定義資料連接配接。用滑鼠選中剛剛命名的資料源,右邊顯示對應的資料源屬性編輯面闆,共有五項屬性:

資料庫:oracle

驅動:oracle.jdbc.driver.OracleDriver

URL:jdbc:oracle:thin:@192.168.X.X:1521:執行個體名

輸入使用者名和密碼,點選“測試連接配接”按鈕,如下圖所示:

finereport與OA系統內建的完全方案

提示,測試成功,代表oracle資料庫連接配接成功。

主要的資料庫表如圖所示:

1、workflow_currentoperator工作流請求節點操作人資訊表

,存放如下字段:請求id

、使用者id、工作流類型、工作流id、操作節點id、操作日期、操作時間

finereport與OA系統內建的完全方案

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

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

finereport與OA系統內建的完全方案

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

finereport與OA系統內建的完全方案

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

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

SysMaintenanceLog系統記錄檔表

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

finereport與OA系統內建的完全方案

5、workflow_currentoperator工作流請求節點操作人資訊表

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

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

finereport與OA系統內建的完全方案

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

finereport與OA系統內建的完全方案

諸如hrmsubcompany人力資源分部表,存放如下字段:所屬總部id、分部簡稱、分部描述等;HrmResource 人力資源表,存放如下字段:***号碼、賬号id、籍貫、工作狀态、密碼等N多的資訊,這裡不再一一介紹。

基于Finereport的報表,并內建到OA,通過Finereport實作資料庫複雜查詢/填報的方式,在辦公OA上實作實時互動,讓OA項目花最少的力氣在報表工作上。展現在:

1、     公文簽報,集中報表

2、     考勤資料,集中報表

3、     資産管理,集中報表

4、     人員登入,集中管控

5、     流程管控,集中統一

6、     權限管控,集中統一

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

先分析一下項目資料的采集,報表資料貫穿着辦公OA流程,随着時間的積累,積沙成塔。

資料範圍:固定資産、人員登入、集團/子公司的公文簽報、用章申請、考勤等資料

資料層面:員工層面

縱向次元:OA複雜的流程

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

時間次元:日期

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

finereport與OA系統內建的完全方案

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

finereport與OA系統內建的完全方案

其次、簽報情況彙總報表涉及了辦公OA流程的部分流程,檢視流程,

finereport與OA系統內建的完全方案

包含總裁機要秘書接收日期,總裁機要秘書需要統計來文機關、檔案主題,然後再決定傳送給哪位集團分管上司,接下來又要統計分管上司意見以及會簽人的意見,最終才歸檔到經辦人和總裁機要秘書,是以這個報表具有重要意義,可以省去總裁機要秘書頻繁的登記收文和上司,提高上司的簽報效率。

限制條件是requestid,表與表之間通過requestid的關聯起來的,分别寫出該字段需要查詢的條件,并且日期以流程節點“已檢視”或者“已送出”為時間判斷标準。

finereport與OA系統內建的完全方案

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

finereport與OA系統內建的完全方案

點選“預覽”,結果就顯示出來了,如果用網頁還會存在緩存,很煩的,而改用FR設計器,更簡潔更快速。

為了提高浏覽速度,設計的時候需要考慮分頁,點選“檔案号”,點選右鍵,設定條件屬性。設定公式為&B4 % 31,設定31行後就分頁。這樣是一個月的資料,對報表很有意義。

finereport與OA系統內建的完全方案

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>

<!--這裡用iframe方法嵌入finereport報表網頁-->

<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

權限:901開始編号

明細單元:9001 開始編号

1、     安裝FineReport的安裝程式

2、     通過SSH工具,将解壓出來的\FineReport_6.5\WebReport\WEB-INF位址下的reportlets,resources檔案上傳至伺服器\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檔案上傳至于伺服器\WEAVER\Resin\lib目錄下。

finereport與OA系統內建的完全方案

4、 在linux伺服器中\WEAVER\ecology\WEB-INF目錄下的web.xml添加内容,如圖:

finereport與OA系統內建的完全方案

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

本文轉自 雄霸天下啦 51CTO部落格,原文連結:http://blog.51cto.com/10549520/1681517,如需轉載請自行聯系原作者