天天看点

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

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

创建新表单之后,我们就可以起草申请了,申请按照严格的表单步骤和分支执行。

起草的同时,我们分解流转的规则中的审批人并保存,具体流程如下

接下来创建DrafContoller控制器,此控制器只有2个页面,一个Create(起草页面)Index(表单列表)

表单列表显示个人想法,我是根据分类直接获取其下表单,即Flow_Type下的Flow_Form

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

 Index ActionResult

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

 Index.cshtml

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

上面的表单列表简单完成之后,进入最复杂的一步,获取字段组成表单

获取字段组成表单可以做得很漂亮,即在设计表单的时候设计布局,直接读取布局,否则按照表单的控件顺序读取布局。

具体对比如下:

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

VS

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

明显前者更利于打印和阅读。我们先布局第二种形式

根据表Flow_FormContent设置Create页面的固定头尾

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

代码

 @Html.Raw(ViewBag.Html)就是我们的表单核心部分。所以Create必须返回ViewBag.Html内容为设计表单的JS和字段

这里代码有点别扭,因为有26个字段,所以要循环26个字段去判断是否有关联来读取。很麻烦。可以用反射来做可以省很多代码

先创建一个类,这个类是辅助工作流的通用类

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

 FlowHelper.cs

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

引入命名空间using System;

代码结构:上面没有什么特殊算法。主要是26个字段用反射来读取。自己细细消化一下就行

应该可以用了,点击请假申请看看!

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

完成。可以起草新的申请了。接下来就是保存申请...

保存是最复杂的一步要取得表单,分解步骤,分解分支,最后指定审核人

 看Create方法

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

 View Code

ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请

 获取人员代码

代码分析:

1.填充表单内容Flow_FormContent

2.获得表单步骤Flow_Step

3.根据步骤获得Flow_StepRule

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

5.插入审批人

需要慢慢消化,分解过程比较复杂

本文转自ymnets博客园博客,原文链接:http://www.cnblogs.com/ymnets/p/4474755.html,如需转载请自行联系原作者