zoukankan      html  css  js  c++  java
  • Beginning WF4读书笔计 - 第三章 01“Flowchart”工作流

        在本章中,我们将创建基于“Flowchart”活动的工作流。其实通过名称我们可以猜到“Flowchart”活动与我们平常所说的流程图类似;这些活动都是通过判断条件来相互连接的。

        使用“Sequence”活动时,所有的子活动都是由上到下顺序执行的,但是基于“Flowchart”的活动,其子活动则可以按其分支条件进行的,可以任意顺序执行。

    创建“Flowchart”工作流

        创建一个控制台的工作流解决方案,如下:

     

    设计“Flowchart

        从工具箱中拖一个“Flowchart”活动到工作流窗体上(是那个叫Workflow1.maml双击后的视图)。这时工作流的“Start”节点就会出在在视图当中,它是一个绿色的圆,同时在其之下还有很大一块区域,这个区域可以用来存放其它的活动。如下图:

     

        在本章开头已经说了,“Flowchart”与“Sequence”活动最大的不同在于其子活动的执行顺序上,如果你要更改其执行顺序的活,只能通过重新排列来进行;且他们之间的位置关联也是自动完成、自上而下的;但是基于“Flowchart”的活动可以摆放在设计视图的任何位置,并通过连接线来确定他们之间的相互关系与执行顺序。

        在本例中,我们将通过对当前时间的判断来显示一个恰当“祝福”。不过,我们还得先从头开始,先在“Start”活动下面添加一个“WriteLine”活动,并把其“DisplayName”设置为“Hello”,“Text”属性设置为“Hello, World!”。

    连接

        把鼠标放在“Start”活动之上,这时你会发现在它的四周出现了4个连接点(热点)。如下图:

     

        这时,我们从“Start”的一个连接点,按下鼠标,在不松开的前提下移动到“Hello”之上,这时我们会发现在“Hello”上也出现了它的4个连接点。如下图:

     

        这时,你并不需要刻意去选择哪个连接点,设计器会智能的帮你选择,并且你可以看到实时的效果。这时只要把鼠标放开,这两个活动就被连接上了。如下图:

     

    FlowDecision

        从工具箱中拖一个“FlowDecision”活动到“Hello”活动之下。这时会出一个黄色的菱形图标,非常像们在流程图中所见的判断符的活动。这时我们要在它的属性窗中把“condition”属性设置为“DateTime.Now.Hour >= 12”。如果这时,把鼠标放在这个“FlowDecision”活动之上,同样会看见它的连接点,如下图:

     

        与前面不同的是,这时的连接点是一个在左侧名叫“False”的分支和一个在右侧叫“True”的分支,同时它的“condition”的值也显示出来了。不过“condition”的值会随着鼠标的离开而隐藏,除非你通过其右上角的小三角按钮来进行人为控制。这时,我们要通过属性窗口,把它的“FalseLabel”和“TureLabel”分别更改为“Morning”和“Afternoon”。如果这时再把鼠标放到活动之上,连接点的显示效果与之前就不太一样了。

        接下来,我们先在“Hello”与“FlowDecision”两个活动之间建立连接,并在“FlowDecision”活动的右侧拖一个“WriteLine”活动,把这个活动的“DisplayName”和“Text”属性分别设置为“Morning”和“Good Morning”。之后,我们把鼠标放在“FlowDecision”的“Morning”连接点上按下不放,并移动到“Morning”活动之上,再松开。这时“FlowDecsion”与“Morning”两活动之间的连接也建立了。如下图:

     

        接着,我们再拖一个“FlowDecision”到第一个“FlowDecision”的左下侧,并从第一个的“Afternoon”连接点处建立连接。同进把第二个“FlowDecision”的“condition”、“FalseLabel”和“TureLabel”分别设置为“DateTime.Now.Hour >=18”、“Afternoon”和“Evening”。同时再拖两个“WriteLine”活动出来,并分别把他们的“DisplayName”设置为“Afternoon”和“Evening”,“Text”设置为“Good Afternoon”和“Good Evening”。并且与第二个“FlowDecision”的“Afternoon”和“Evening”连接点分别建立连接,效果如下:

     

    运行程序

        在运行程序之前,打开Program.cs文件,在main()函数的更改代码如下:

    static void Main(string[] args)
    {
        WorkflowInvoker.Invoke(new Workflow1());
    
        Console.WriteLine("Press ENTER to exit");
        Console.ReadLine();
    }

        这时按“F5”运行程序,可得如下类似效果(具体效果,依运行时间可能不一样)。

     

    与本系列相关的所有文档及代码索引请参考:

    《Beginning WF : Windows Workflow in .NET 4.0》读书笔记

  • 相关阅读:
    计算十位数以内的数的反数
    用Python做一个简单的小游戏
    Python的发展历史及其前景
    监控相关总结
    前端css学习_Day15
    常用命令总结
    mysql常用命令总结
    Python之Paramiko、前端之html学习_Day14
    Python操作redis、memcache和ORM框架_Day13
    Python连接msyql、redis学习_Day12
  • 原文地址:https://www.cnblogs.com/showjan/p/3010432.html
Copyright © 2011-2022 走看看