<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-54  評論-0  文章-2  trackbacks-0

        

                                          OA項目之審批流轉

     今天是OA項目的最后一個模塊,其業務流程是員工提交申請-à部門經理-à ,這期間要經過的人不一樣,有的要經過一個審批就OK了,而有的得經過3個以上的人審批才行。實現審批流轉有4個要求:

     1.方便的定義/x修改  管理 流程定義

     2. 方便的定義/x修改  管理 表單模版

     3.執行審批流轉

     4.方便的查詢所有的 表 單實例 (數據)記錄(查詢流轉過的表單)

    業務流程如同前天已畫的圖:

    員工提交申請,后面的環節就會按照我們定義 好的流程走了

    所有的表單都要分頁

    今天做審批管理,它包含審批流程管理和表單 模版管理

     1.設計實體,

     2.創建一個Action ,也和前面的一樣CRUD,只是在列表時加了個分頁,多添

    加了個查看流程文件(processdefinition.xml) 中,查看流程圖片

     3.分頁設計:因為所有頁面都要用,所以寫成公共的,但超鏈接不一樣

    如圖:

    分頁主要代碼:

    // 用戶指定

           private int pageSize;

           private int currentPage;

           // 查詢數據庫

           private int recordCount;

           private List recordList;//當前頁的所有pd

           // 計算

           private int totalPage;

           private int startPageIndex;

           private int endPageIndex;

           /**

            * 計算指定頁中第一條記錄的索引

            */

           public static int clacFirstResult(int pageNum, int pageSize) {

                  return (pageNum - 1) * pageSize;

           }

           public PageView(int pageSize, int currentPage, int recordCount, List recordList) {

                  this.pageSize = pageSize;

                  this.currentPage = currentPage;

                  this.recordCount = recordCount;

                  this.recordList = recordList;

                  // 計算 totalPage, startPageIndex, endPageIndex;

                  totalPage = (recordCount + pageSize - 1) / pageSize;

                  startPageIndex = 1;

                  endPageIndex = totalPage;

                  if (totalPage > 10) {

                         // 正常顯示當前頁附近的共10個頁碼,當前頁屬于前半部分

                         startPageIndex = currentPage - 4;

                         endPageIndex = currentPage + 5;

                         // (前面不足4)顯示前10個頁碼

                         if (startPageIndex < 1) {

                                startPageIndex = 1;

                                endPageIndex = 10;

                         }

                         // (后面不足5)顯示后10個頁碼

                         else if (endPageIndex > totalPage) {

                                endPageIndex = totalPage;

                                startPageIndex = totalPage - 10 + 1; // 顯示時包含開始與結 束的邊界

                         }

                  }

           }

    之后測試分頁

    4.解決session問題:

     由于在action中用到了sessionjbpmContext,必須用一個session,才能保證是同一事務,在這里用jbpmContext得到session

    5.Hibernate關于set list map的映射文件

    以為例

    class Person{

           private Set<String> addressSet; // 收貨地址

           private List<String> addressList;

           private Map<String, String> phoneNumberMap; // 電話號 集合,如:家庭 -- 010-12345678

    }

    <set name="addressSet" table="itcast_addressSet">

           <key column="personId"/>

           <element type="string" column="address"/>

    </set>

    <list name="addressList" table="itcast_addressList">

           <key column="peronId"/>

           <list-index column="idx">

           <element type="string" column="address">

    </list>

     

    表單流轉

    支持各種審批流程:JBPM

    支持各種表單定義:表單中要填寫的字段的數 量不同,類型也不一樣,ActionForm當然不能用,按照上面的業務需求實現編碼。


    明天繼續!


    posted on 2010-02-07 23:46 d66380022 閱讀(136) 評論(0)  編輯  收藏
    主站蜘蛛池模板: 亚洲视频在线免费播放| 亚洲AV无码一区二区三区牲色| 国产免费高清69式视频在线观看| 亚洲天天做日日做天天看| 日本大片在线看黄a∨免费| a级毛片视频免费观看| 国产精品亚洲精品青青青| 亚洲精品国产精品乱码在线观看| 最新猫咪www免费人成| 永久在线观看免费视频| 特级aa**毛片免费观看| 国产亚洲中文日本不卡二区| 亚洲国产精品一区第二页| 久久精品无码一区二区三区免费| 在线看片免费人成视频播| 免费人成再在线观看网站 | 亚洲爱情岛论坛永久| 又黄又爽的视频免费看| 国产高清免费在线| 免费无遮挡无码视频网站| 一二三四免费观看在线视频中文版| 午夜免费福利视频| 免费无码作爱视频| 无码精品一区二区三区免费视频| 成年免费a级毛片免费看无码| 成年大片免费视频播放一级 | 亚洲а∨精品天堂在线| 亚洲av无码专区青青草原| 亚洲国产无线乱码在线观看| 亚洲精品综合在线影院| 久久无码av亚洲精品色午夜 | 免费亚洲视频在线观看| 乱人伦中文视频在线观看免费| 男人免费视频一区二区在线观看 | 亚洲一区二区三区免费观看| 毛片a级毛片免费播放100| 女人18毛片水最多免费观看| 在线播放免费播放av片| 国产精品亚洲综合专区片高清久久久| 在线观看亚洲成人| 亚洲春黄在线观看|