欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Asp.Net Mvc2 OA 工作流設(shè)計(jì)思路[圖]

 更新時(shí)間:2012年10月27日 10:47:41   作者:  
回老家上班的新公司,第一個(gè)項(xiàng)目:OA。以前沒有做過OA,因?yàn)樵O(shè)計(jì)到工作流這一塊的東西,所以自己去進(jìn)行了相關(guān)的了解,于是有了這篇博客(以下文字只是個(gè)人理解,高手漂過)

回老家上班的新公司,第一個(gè)項(xiàng)目:OA。以前沒有做過OA,因?yàn)樵O(shè)計(jì)到工作流這一塊的東西,所以自己去進(jìn)行了相關(guān)的了解,于是有了這篇博客(以下文字只是個(gè)人理解,高手漂過)。環(huán)境:MVC2+SQL2008

工作流分為幾個(gè)步驟:表單(設(shè)計(jì)、解析)、流程(設(shè)計(jì))、合并就是一個(gè)完整的工作流。先上個(gè)一個(gè)圖:

第一步:表單

因?yàn)闆]有使用圖形化設(shè)計(jì)表單,所以我們的思路是強(qiáng)制定義表單格式,后臺(tái)解析。如圖:

上圖的HTML是強(qiáng)制定義的,像table>tbody>tr>td必須按照這個(gè)格式定義,雖然不靈活,但是功能也算實(shí)現(xiàn)了。說說思路:這個(gè)表單將解析成11個(gè)節(jié)點(diǎn)(申請(qǐng)人、申請(qǐng)日期、部門、假期類別、請(qǐng)假時(shí)間、扣薪形式、請(qǐng)假理由、審批人、審批日期、審批結(jié)果、審批意見)

如上圖所示,解析節(jié)點(diǎn)是通過[愛好]中的id獲取的,采用HtmlAgilityPack來解析,具體代碼:

SelectNodes("//table/tbody/tr/td[@id='title']")

這樣就可以知道表單的所有節(jié)點(diǎn),而標(biāo)題所對(duì)應(yīng)的選項(xiàng)則用class來對(duì)應(yīng),從上圖也可以看出來(用來控制表單節(jié)點(diǎn)是否可以填寫項(xiàng),下面會(huì)介紹)。

特殊控件處理:譬如時(shí)間的話也是通過定義class='time'而后,通過jquery動(dòng)態(tài)綁定加載。

第二步:流程,同樣通過文字形式來制定流程步驟

定義流程與表單關(guān)聯(lián)

這里的經(jīng)辦權(quán)限是直接跟用戶關(guān)聯(lián)的,用來標(biāo)識(shí)哪些人擁有該流程的辦理權(quán)限。

接下來就是定義流程的步驟了。

上圖是一個(gè)請(qǐng)假流程的全部步驟,下面介紹怎么制定這些步驟。

節(jié)點(diǎn)序號(hào):用來表示當(dāng)前流程為第幾步,節(jié)點(diǎn)名稱用來標(biāo)識(shí)當(dāng)前步驟名稱,是否允許附件、會(huì)簽,用來控制附件與會(huì)簽區(qū)的顯示和隱藏。下一步標(biāo)識(shí)當(dāng)前步驟可以流轉(zhuǎn)到哪些步驟,左邊是已經(jīng)選擇好了的(可以是多個(gè)步驟,這里考慮的是,不同的職位使用相同的流程會(huì)有特殊情況發(fā)生,譬如正常的流程是需要四步[員工填寫》經(jīng)理審批》總監(jiān)審批》人事備案],但是當(dāng)總監(jiān)請(qǐng)假的時(shí)候就不需要這么多步驟[填寫表單》人事備案]),右邊是拉取當(dāng)前流程下的所有步驟。不可寫字段標(biāo)識(shí),當(dāng)前步驟時(shí),表單有哪些節(jié)點(diǎn)為不可以填寫,譬如:?jiǎn)T工填寫請(qǐng)假申請(qǐng)單,流轉(zhuǎn)到經(jīng)理時(shí),那么經(jīng)理看到的表單就有員工姓名、部門等信息不能填寫,只能填寫審批意見等節(jié)點(diǎn)信息。這樣流程與表單就關(guān)聯(lián)好了,接下來就是工作流流轉(zhuǎn)了。

第三步:工作流流轉(zhuǎn),模擬流程流轉(zhuǎn),新建流程

定義工作流的名稱

點(diǎn)擊確認(rèn)新建是,直接跳轉(zhuǎn)到流程頁(yè)面,并且在數(shù)據(jù)庫(kù)存入第一步流程的相關(guān)信息。

然后填寫表單內(nèi)容,選擇下一個(gè)步驟及經(jīng)辦人就可以流轉(zhuǎn)至下一步。說明:表單內(nèi)容我是把整個(gè)表單的HTML代碼全部存入數(shù)據(jù)庫(kù),然后流程流轉(zhuǎn)時(shí)再把填寫好的表單內(nèi)容存入下一步,這樣流程到下一步時(shí),看到的表單就是最新的了。這是一個(gè)很笨的辦法,因?yàn)槭褂?("#表單tableID")是獲取不到表單的value值的,所有需要進(jìn)行處理,獲取表單內(nèi)容通過jquery直接attr(value,文本值)上去,這樣就可以把表單內(nèi)容存入數(shù)據(jù)庫(kù)。

這里還涉及到多人辦理的情況,當(dāng)經(jīng)辦人選擇為多人時(shí),除非是最后一個(gè)人,否則流程不允許流轉(zhuǎn)至下一步,但是可以填寫會(huì)簽意見及修改表單,修改的表單將覆蓋當(dāng)前步驟表單,至最后一個(gè)轉(zhuǎn)交至下一步,如此重復(fù)就可以實(shí)現(xiàn)流程流轉(zhuǎn)了。

語言組織能不強(qiáng),所有只能說成這個(gè)樣子,整個(gè)流程還是有缺陷的,表單設(shè)計(jì)和流程設(shè)計(jì)都只能使用文字的形式,可能以后會(huì)考慮更換成圖形化,還有就是不支持子流程。今天就寫這么多了,也是最近才接觸自定義工作流,也看過很多非常強(qiáng)大的工作流,所以以后還繼續(xù)完成、改進(jìn)和學(xué)習(xí)。

相關(guān)文章

  • 淺談ASP.NET Core中間件實(shí)現(xiàn)分布式 Session

    淺談ASP.NET Core中間件實(shí)現(xiàn)分布式 Session

    這篇文章主要介紹了淺談ASP.NET Core中間件實(shí)現(xiàn)分布式 Session,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • asp.net獲取select值的方法

    asp.net獲取select值的方法

    今天有個(gè)朋友問我如何使用asp.net獲取select值,以為很簡(jiǎn)單的問題,結(jié)果發(fā)現(xiàn)自己也不知道于是搜索中發(fā)現(xiàn)了下面的這個(gè)不錯(cuò)的例子,在此與大家分享
    2013-09-09
  • 用.NET Core寫爬蟲爬取電影天堂

    用.NET Core寫爬蟲爬取電影天堂

    本文給大家詳細(xì)介紹了如何使用.NET Core寫爬蟲爬取電影天堂的方法和詳細(xì)步驟,非常的細(xì)致,有需要的小伙伴可以參考下
    2016-12-12
  • asp.net 用戶控件中圖片及樣式問題

    asp.net 用戶控件中圖片及樣式問題

    我們?cè)陂_發(fā)網(wǎng)站的大多時(shí)候都會(huì)用到用戶控件,不同功能的aspx文件要放到不同的文件夾,但我們可能要引用同一個(gè)用戶控件
    2009-05-05
  • Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮(示例代碼)

    Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮(示例代碼)

    這篇文章主要介紹了Net?core中使用System.Drawing對(duì)上傳的圖片流進(jìn)行壓縮,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 一文掌握.Net?core中的緩存

    一文掌握.Net?core中的緩存

    Cache(緩存)是優(yōu)化web應(yīng)用的常用方法,緩存存放在服務(wù)端的內(nèi)存中,被所有用戶共享,本文主要給大家介紹.netcore中的緩存知識(shí),需要的朋友可以參考下
    2022-06-06
  • ASP.NET(C#)中操作SQLite數(shù)據(jù)庫(kù)實(shí)例

    ASP.NET(C#)中操作SQLite數(shù)據(jù)庫(kù)實(shí)例

    最近項(xiàng)目中有使用到SQLite數(shù)據(jù)庫(kù),于是查找資料,編寫了一個(gè)ASP.NET基于C#語言的SQLite數(shù)據(jù)庫(kù)操作實(shí)例.大家看代碼就可以看懂了,和以往使用ADO.NET操作SQL數(shù)據(jù)庫(kù)類似.
    2009-12-12
  • ASP.NET實(shí)現(xiàn)圖形驗(yàn)證碼功能

    ASP.NET實(shí)現(xiàn)圖形驗(yàn)證碼功能

    ASP.NET 實(shí)現(xiàn)圖形驗(yàn)證碼能夠增強(qiáng)網(wǎng)站安全性,防止機(jī)器人攻擊,本文介紹了如何使用 C# 和 ASP.NET 創(chuàng)建一個(gè)簡(jiǎn)單而有效的圖形驗(yàn)證碼系統(tǒng),包括生成隨機(jī)驗(yàn)證碼、繪制驗(yàn)證碼圖像以及將圖像輸出到客戶端等步驟,感興趣的朋友一起看看吧
    2024-03-03
  • MVC、MVP和MVVM分別是什么_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    MVC、MVP和MVVM分別是什么_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    MVC,MVP 和 MVVM分別是什么?MVC(Model-View-Controller)是最常見的軟件架構(gòu)之一,業(yè)界有著廣泛應(yīng)用。它本身很容易理解,但是要講清楚,它與衍生的 MVP 和 MVVM 架構(gòu)的區(qū)別就不容易了。
    2017-08-08
  • .Net RabbitMQ實(shí)現(xiàn)HTTP API接口調(diào)用

    .Net RabbitMQ實(shí)現(xiàn)HTTP API接口調(diào)用

    RabbitMQ Management插件還提供了基于RESTful風(fēng)格的HTTP API接口來方便調(diào)用。本文就主要介紹了.Net RabbitMQ實(shí)現(xiàn)HTTP API接口調(diào)用,感興趣的可以了解一下
    2021-06-06

最新評(píng)論