天天看點

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

<a href="http://www.cnblogs.com/ymnets/p/3424309.html">系列目錄</a>

建立新表單之後,我們就可以起草申請了,申請按照嚴格的表單步驟和分支執行。

起草的同時,我們分解流轉的規則中的審批人并儲存,具體流程如下

接下來建立DrafContoller控制器,此控制器隻有2個頁面,一個Create(起草頁面)Index(表單清單)

表單清單顯示個人想法,我是根據分類直接擷取其下表單,即Flow_Type下的Flow_Form

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

Index ActionResult

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

Index.cshtml

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

上面的表單清單簡單完成之後,進入最複雜的一步,擷取字段組成表單

擷取字段組成表單可以做得很漂亮,即在設計表單的時候設計布局,直接讀取布局,否則按照表單的控件順序讀取布局。

具體對比如下:

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

VS

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

明顯前者更利于列印和閱讀。我們先布局第二種形式

根據表Flow_FormContent設定Create頁面的固定頭尾

代碼

 @Html.Raw(ViewBag.Html)就是我們的表單核心部分。是以Create必須傳回ViewBag.Html内容為設計表單的JS和字段

這裡代碼有點别扭,因為有26個字段,是以要循環26個字段去判斷是否有關聯來讀取。很麻煩。可以用反射來做可以省很多代碼

先建立一個類,這個類是輔助工作流的通用類

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

FlowHelper.cs

引入命名空間using System;

代碼結構:上面沒有什麼特殊算法。主要是26個字段用反射來讀取。自己細細消化一下就行

應該可以用了,點選請假申請看看!

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

完成。可以起草新的申請了。接下來就是儲存申請...

儲存是最複雜的一步要取得表單,分解步驟,分解分支,最後指定稽核人

 看Create方法

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

View Code

建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請
建構ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的背景管理系統(48)-工作流設計-起草新申請

擷取人員代碼

代碼分析:

1.填充表單内容Flow_FormContent

2.獲得表單步驟Flow_Step

3.根據步驟獲得Flow_StepRule

4.取得判斷流程方向的标示(是否結束)

5.插入審批人

需要慢慢消化,分解過程比較複雜