我们都知道对于一个OA系统来说,最重要的也是不可或缺的一个重要环节那就是对于工作流的实现,为此,最近专门在学习如何使用WorkFlow,问前辈,前辈也说道K2工作流引擎挺不错,自己同时也翻阅了一些资料,但因为自己这个OA项目主要是采用微软的ASP.NET MVC 来开发的,所以还是决定使用微软的那一套WorkFlow工作流引擎。不得不说,微软在对于客户体验这方面做的还真是不错的。为了方面学习,我也是通过一个小案例来学习WorkFlow,在这里也拿出来和大家共同分享学习。

小案例(请假工作流)

说明:

1.程序集:system.Activities

2.Xaml文件:工作流文件设计的类型,最终会被处理为一个类

3.状态机工作流(开发中使用的类型)

首先:创建一个Windows窗体应用程序,命名WorkFlowDemo

工作流-----WorkFlow

注意:为了便于工作流的展示,把当前项目的属性-----》服务,把输入类型由Windows应用程序改为控制台应用程序

工作流-----WorkFlow

接下来,简单点设计一下窗体页面

工作流-----WorkFlow

设计一下流程图:(状态机控件在工具箱)对于其中的工具使用,可以自己简单学习,很容易上手

工作流-----WorkFlow

前期工作完成接下来就是代码实现的时候了,为窗体的单击按钮注册事件

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 using System.Activities;
11 
12 namespace WindowsFormsApplication1
13 {
14     public partial class Form1 : Form
15     {
16         public Form1()
17         {
18             InitializeComponent();
19         }
20 
21        //创建一个工作流对象
22         WorkflowApplication wfapp;
23         private void btnsave_Click(object sender, EventArgs e)
24         {
25 
26             //1.准备好工作流中需要的参数
27             Dictionary<string, object> dict = new Dictionary<string, object>();//用来向工作流传递参数
28             dict.Add("LeaveDays", int.Parse(txtDays.Text));
29 
30             //2.创建一个工作流应用对象
31             wfapp = new WorkflowApplication(new LeaveActivity(), dict);
32 
33       
34             //3.调用wfapp对象的Run方法
35             wfapp.Run();
36         }
37 
38        private void btnjinli_Click(object sender, EventArgs e)
39         {
40             bool result = radioButton1.Checked;
41 
42            //唤醒书签
43             wp.ResumeBookmark("经理审批", result);
44         }
45 
46         private void button2_Click(object sender, EventArgs e)
47         {
48             bool result = radioButton3.Checked;
49             wp.ResumeBookmark("财务总监审批", result);
50         }
51     }
52 }
View Code

相关文章:

  • 2022-12-23
  • 2022-01-25
  • 2022-02-23
  • 2022-01-26
  • 2022-12-23
  • 2021-12-10
  • 2021-12-10
猜你喜欢
  • 2021-12-24
  • 2021-07-17
  • 2022-01-03
  • 2021-08-20
  • 2022-02-10
相关资源
相似解决方案