[Develop]Lab2-Condition

[Develop]Lab2-Condition

這個Lab我們藉著一個在寫程式時常常會用到的一個語法來更進一步的瞭解 WWF 圖形化開發程式所帶來的魅力。

狀況假設:

[ 你要撰寫一隻程式,根據使用者輸入的金額來做流程判斷。當使用者輸入的金額小於1000的時候、要走A流程;當使用者輸入的金額介於1000~5000之間,要走B流程;當

使用者輸入的金額大於5000的時候要走C流程。 ]

這種類型的程式在開發中是非常見到的,但是往往當上一個工程師開發完一個系統後,交到下一個人維護時。就會變的很痛苦,因為縱使程式寫滿了註解,

有時候再巢狀 IF 的漩渦中,很快的我們也會陷入一個很難以釐清的頭緒!所以這個範例順便用可以讓大家瞭解圖形化開發所帶來的魅力。


開啟一個新的WWF專案。

在Visual Studio中開啟一個新的專案。

clip_image001


循序工作流程範例!

在這,我們先選擇循序工作流程主控台應用程式。在VS 2008安裝好就會有Workflow的選項。如果你的.Net 開發工具是VS 2005而且專案中沒有Workflow的選項的話,可以參

考VS 2005 安裝 Workflow Foundation 開發套件 這篇教學。

clip_image002


在循序工作流程區域中建立一個IFElse
Activity元件!

?從左邊工具箱拉一個 IFElse的元件到主要工作區中。可以得到下圖畫面。這個 IfElseActivity 就像過去我們在撰寫程式中的 If
else。當條件滿足時,會跑向左邊的區域。相對的

,當條件不滿足時,就是跑向分支中右邊的區域。

clip_image003

clip_image004


IF條件的輕鬆分支!

當然,如果你的程式需要判斷的 條件更多的時候,你可以在IF元件上按下滑鼠右鍵,選擇並按下新增分支的部份。IfElseActivity的分支就會被新增多一個。

clip_image005

IfActivity 元件的分支變成三個了。

clip_image006


在分支中擺進Code
Activity元件,準備執行不同的輸出!

接下來在下面幾個地方新增Code元件 。

clip_image007

clip_image008


在WWF
IFElse Activity 可以輕鬆的讓工程師看出這個條件式是在做什麼!

在IFElse Activity元件中,我們可以將敘述打上去!如下圖,是不是容易就看的出來這個IFElse Activity是在做金額大小的判斷
。當金額小於等於1000的時候會往最左邊跑去;當

金額介於1000~5000之間會往中間的流程走;當金額大於5000就往最右邊的分支走。接下來只要在分支裡面的Code Activity 元件中打上妳要測試的程式碼,就可以執行你想要

執行的程式了。

clip_image009


進入程式碼轉寫的區域!

再循序流程工作裡面按下程式碼檢視就可以跳入程式撰寫的工作區塊。

clip_image010


宣告一個要被用來接收鍵盤輸入金額的變數!

首先我們在這裡輸入一個變數 Price。用來作為我們要輸入的判斷金額變數。

clip_image011


撰寫接受鍵盤輸入的程式!

接者我們到第一個 Code Activity 上,點兩下會自動跳到程式撰寫視窗。在程式撰寫視窗我們打上兩行程式碼;如下 。

Console.Write("請輸入金額:");

this.Price = Convert.ToInt32(Console.ReadLine());

這個部份主控台應用程式將會等待你輸入一個數字。

clip_image012

clip_image013


替IFElse Activity元件設定條件屬性 !

接下來我們要用替IFElse Activity元件設定條件判斷。我們先到最左邊的分支。分支上有一個紅色的驚嘆號,將滑鼠指到這後,會跳出一個[
未設定屬性'Condition' 的判斷視窗]

然後點兩下進入屬性設定畫面!

clip_image014


宣告是規則條件撰寫 !

進入屬性設定畫面後,在[ 條件 ] 分區下有個[ Condition ]屬性,在這個屬性中選擇 [ 宣告式規則條件] ! 然後在 [ ConditionName
] 屬性中 按下左方條件的 [...] 欄位。會跳出一

個[ 選取條件 ] 的視窗。

 

clip_image015


新增一個條件!!

在[ 選取條件 ] 視窗下按下 [新增]按紐,會跳出 [ 條件規則編輯器 ]可在這邊打上你的判斷式 !

※ 這邊所新增的條件也可以給其他的分支或是其他的IfElse Activity 去使用。

clip_image016


編輯條件內容!

我們一開始在這個範例預設最左邊的分之為金額小於等於 1000 。 而金額我們剛剛宣告了一個變數 Price,因此這邊我們輸入以下的程式:

this._Price <= 1000

然後按下確定

clip_image017


完成條件宣告!

完成後會在 [選取條件]視窗中看到我們剛剛鍵入的這一條規則。在這邊我們將它重新命名為 [ 金額小於等於1000 ]。

clip_image018


再新增第二個條件宣告!

接著到IFElse Activity 中間的分支條件上按下紅色的驚嘆號,照上面步驟在規則條件編輯器中去新增一個新的條件。程式碼如下:

this._Price > 1000 && this._Price <5000

clip_image019

clip_image020


替分支選擇其要判斷的條件式!

輸入完畢後在左方屬性視窗中的[ 條件 ] 區域中的 [ ConditionName] 選擇您剛剛所?新增的條件。這樣當條件符合時,程式就會自己走到這個分支裡面,並且去執行這分之裡面

的動作。

clip_image021


輸入左邊分支中的Code元件要做的事情!

接下來我們來設定每個分支裡面的動作。先到最左邊的分支。在這分之支中,我們點兩下CodeActivity 會進到程式撰寫的頁面中。我們在CodeActivity撰寫下列的程式:

Console.WriteLine("您輸入的金額小於1000元");

這個程式會在主控台輸出中輸出 "您輸入的金額小於1000元" 這行文字。

clip_image022

clip_image023


輸入中間分支中的Code元件要做的事情!

接下來我們來設定第二個分支裡面的動作。先到中邊的分支。在這分之支中,我們點兩下CodeActivity 會進到程式撰寫的頁面中。我們在CodeActivity撰寫下列的程式:

Console.WriteLine("您輸入的金額大於1000元小於5000");

這個程式會在主控台輸出中輸出 "您輸入的金額大於1000元小於5000" 這行文字。

clip_image024

clip_image025


輸入右邊分支中的Code元件要做的事情!

接下來我們來設定第三個分支裡面的動作。先到最右邊的分支。在這分之支中,我們點兩下CodeActivity 會進到程式撰寫的頁面中。我們在CodeActivity撰寫下列的程式:

Console.WriteLine("您輸入的金額大於5000元");

這個程式會在主控台輸出中輸出 "您輸入的金額大於5000元" 這行文字。

clip_image026

clip_image027


完成!!

接著就按下執行來測試我們剛才寫的程式了。 ^^y

clip_image028