天天看點

一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-WinForm應用篇-執行個體一個子產品(商品字典)

    本文是一步一步教你使用AgileEAS.NET基礎進行應用開發系統的WinForm應用篇的開篇,從本文起開始大家将看到一個距離真實應用非常接的開發案例。

         商品字典管理完成産品進銷存業務業務中用到的基礎資訊,産品字典的增加、修改、删除等業務,它不是一個進銷存在主體業務,隻是用于為主體業務提供基礎支援的一個輔助業務。

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NETWinForm_C672/image_8.png"></a>

         字典查詢:根據産品編碼或者産品名稱的拼音簡碼檢索資料庫與之比對的産品字典資料,并且顯示的資料清單之上。

         查詢結果列印:将滿足查詢的結果列印輸出,示範報表的使用。

         添加新的産品字典:調用産品字典添加界面向系統中增加一個新的産品字典。

         修改現有産品字典:調用産品字典修改界面修改指定的産品字典記錄。

         删除現有産品字典:删除系統中已經存在的某個産品字典。

         現在我們可以來看看如何實作,不過,我們在看這個實作之前先插入一個小插曲,我們來看看我們的資料查詢需求,“根據産品編碼或者産品名稱的拼音簡碼檢索資料庫與之比對的産品字典資料”顯然是不滿足這個需求的,我們此前定義的資料結構之中沒有定義拼音簡碼,我們現在來增加上,并且修正此前定義的幾個bug。

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NETWinForm_C672/WG%5BYF_6C1I3NS40%60E%25V18M4_2.jpg"></a>

         然後重新生成代碼,輸出目錄選擇本解雇方案代碼目錄,不要選中“生成解雇方案”:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NETWinForm_C672/image_10.png"></a>

          因為生成的代碼采用了分部的的結構,資料層中與資料表、實體定義相關的對象定義資訊都儲存的項目的Generat目錄下的名稱帶有Generat的代碼檔案中,而自定義的資料層業務邏輯被儲存在項目目錄中的不帶Generat的代碼檔案之中,也就是說,當資料對象的定義發生變更并且重新生成代碼檔案後,不會覆寫我們編寫的自定義處理,隻覆寫與資料對象定義相關的代碼檔案,以保護程式員的投資。

         對于字典的查詢業務處理,我們需要在資料層接口IProductList編寫一個資料查詢方法void GetProductList(string code)并在SQLServer實作層項目中實作這個定義: 

1         public void GetProductList(string code)

2         {

3             Condition condition = this.CreateCondition();

4             condition.AddElement("CODE", code, ElementType.MatchPrefix);

5             condition.AddElement("PYCODE", code, ElementType.MatchPrefix,ElementCombineType.Or);

6             condition.AddOrderElement("IDN", true);

7             this.Query(condition);

8         }

         UI代碼之中增加一個查詢結果顯示代碼:

 1         internal void LoadDictList()

 2         {

 3             IProductList dictList = DALHelper.DALManager.CreateProductList();

 4             dictList.GetProductList(this.tbSeach.Text);

 5 

 6             try

 7             {

 8                 this.Cursor = Cursors.WaitCursor;

 9                 this.lvInfo.BeginUpdate();

10                 this.lvInfo.Tag = dictList;

11                 this.lvInfo.Items.Clear();

12                 foreach (IProduct dict in dictList.Rows)

13                 {

14                     ListViewItem item = new ListViewItem(new string[] { string.Empty, dict.Code, dict.Name, dict.Spec, dict.Unit,dict.PYCode, dict.Description }, 0);

15                     item.Tag = dict;

16                     this.lvInfo.Items.Add(item);

17                 }

18             }

19             finally

20             {

21                 this.lvInfo.EndUpdate();

22                 this.Cursor = Cursors.Default;

23             }

24         }

         字典的添加與修改處理,我們在UI層中增加如下窗體:

<a href="http://images.cnblogs.com/cnblogs_com/eastjade/WindowsLiveWriter/AgileEAS.NETWinForm_C672/%257I%7BP%5B%5B3%5B%5D9ERAYCE%7BX)Z1J_2.jpg"></a>

         并增加如下資料顯示與寫回代碼:

代碼

         字典的删除業務,我們安排在當選擇某個商品字典之後可以通過工具條或者快捷菜單中的“删除”完成操作,我們來看看其處理代碼:

我們來編譯并且運作這個示例:

連結

<a href="http://www.cnblogs.com/eastjade/archive/2010/09/19/1830812.html">一步一步教你使用AgileEAS.NET基礎類庫進行應用開發-系列目錄</a>

<a href="http://www.cnblogs.com/eastjade/archive/2010/09/12/1824405.html">AgileEAS.NET平台開發指南-系列目錄</a>

<a href="http://www.cnblogs.com/eastjade/archive/2010/09/09/1822530.html">AgileEAS.NET應用開發平台介紹-文章索引</a>

<a href="http://www.cnblogs.com/eastjade/archive/2010/09/15/1826870.html">AgileEAS.NET平台應用開發教程-案例計劃</a>

<a href="http://www.smarteas.net/">AgileEAS.NET官方網站</a>

<a href="http://www.agilelab.cn/">靈活軟體工程實驗室</a>

QQ群:116773358

本文轉自 agilelab 51CTO部落格,原文連結:http://blog.51cto.com/agilelab/603041