<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.插入審批人
需要慢慢消化,分解過程比較複雜