c#在winform的C/S结构下,如何使用工作流实现业务流程审核、方案审批等!急!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#在winform的C/S结构下,如何使用工作流实现业务流程审核、方案审批等!急!相关的知识,希望对你有一定的参考价值。

c#在winform的C/S结构下,如何使用工作流实现业务流程审核、方案审批等?任何一级审批环节如果觉得施工方案内容有问题,可以直接修改,也可以填写审批意见,并回退到前面的任一环节完善修改后再重新审批。任何一级审批环节审批通过后,在后续审批环节没有开始审批之前,都可以撤回重新审批。实现流程审批或退回,修改,自动加入签名或公章等等。我用的系统是VS2010+SQL2008,不是B/S结构,是在form的C/S模式下,急!请给出具体完整代码,谢谢!

不管B/S或者C/S都好解决。
你这最主要的是数据操作而已!审核与方案审批这些无非就是一个数据表字段的一个标记。
参考技术A 这不是几行代码能解决的问题,这个肯定要话比较多的时间 参考技术B 你说的那些东西和BS、CS有关吗?

C# 命令绑定

在构建WinForm程序中,为了使系统的结构清晰,有好的用户交互体验,实现不同按钮之间的交互,不使主窗体里面的代码臃肿。将按钮的命令通过类进行绑定,实现命令的管理使很有必要的。

该文章是将如何实现Button的按钮事件绑定的。

1、新建WinForm程序

2、添加3个Button按钮,如下图所示

3、新建ICommand.cs接口,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace commandTest
{
    //命令接口
    public  interface ICommand
    {
        void OnClick();
        void New();
        void Refresh();
    }
}

4、新建命令管理类CommandUnitily.cs,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace commandTest
{
    class CommandUnitily
    {
        //创建命令集合
        private static List<ICommand> cmds = new List<ICommand>();

        //将命令添加到集合里面
        public static void  CmdRegist(ICommand cmd)
        {
               cmds.Add(cmd);
        }
        //刷新所有命令,用于命令直接的相互影响
        public static void AllRefresh()
        {
            foreach (ICommand cmd in cmds)
            {
                cmd.Refresh();
            }
        }
    }
}

5、新建Button按钮通用类ButtonTool.cs,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace commandTest
{
     //button控件公用类,继承自ICommand接口
     class ButtonTool : ICommand      
    {
        private Button bt;

        void bt_Click(object sender, EventArgs e)
        {
            OnClick();
            CommandUnitily.AllRefresh();//所有按钮都刷新,包括按钮本身
        }
        //使用virtual关键词之后,调用OnClick方法之后,
         //会调用派生类(举例:Button1Click)中的OnClick,
         //从而实现各自的button点击事件
        public virtual void OnClick()
        {
           Console.WriteLine("点击button事件");
        }



        public void New(Button but)
        {
            bt = but;
            bt.Click += new EventHandler(bt_Click);
        }

        public void Refresh()
        {
            Console.WriteLine(bt.Name+"刷新");
        }


        public void New()
        {
            throw new NotImplementedException();
        }
    }
}

6、创建Button1Click.cs点击类,代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace commandTest
{
    //创建Button1事件执行类,继承自ButtonTool
    class Button1Click : ButtonTool
    {
        public Button1Click(Button obj)
        {
            Console.WriteLine("button1注册成功");
            this.New(obj);
        }
        //重写ButtonTool类的OnClick方法,用于实现Button1的点击事件
        public override void OnClick()
        {
            base.OnClick();
            Console.WriteLine("点击button1事件");
        }
    }   
    
}

7、主窗体Form.cs代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace commandTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            CommandUnitily.CmdRegist(new Button1Click(button1));
  Console.WriteLine("窗体加载完毕"); } } }

8、文件结构如下:

9、测试

从窗体加载到点击button1测试的结果如下图:

可以借鉴Button1Click.cs类实现button2和button3的按钮点击事件

源代码:http://pan.baidu.com/s/1eSwoh5C

以上是关于c#在winform的C/S结构下,如何使用工作流实现业务流程审核、方案审批等!急!的主要内容,如果未能解决你的问题,请参考以下文章

web service做啥用的,我知道winform是做c/S的软件,webform 是做网站

关于C/S和B/S结构框架是否可以这样理解:所谓C/S即是winform程序,B/S即是ASP.NET?求高手指教?!~

请推荐几个基于Winform C/S 结构系统框架的网站,谢谢!

.NET中C/S结构,winform怎么在datagridview中添加键盘点击事件,并设定热键?

.net的C/S结构中winform里的datagridview中单元格取值怎么取啊

如何使窗口可拖动(C# Winforms)?