• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件園多重安全檢測下載網站、值得信賴的軟件下載站!
    軟件
    軟件
    文章
    搜索

    首頁編程開發C#.NET → Management Console 工具管理類軟件通用開發框架

    Management Console 工具管理類軟件通用開發框架

    相關軟件相關文章發表評論 來源:西西整理時間:2011/8/8 23:03:53字體大?。?em class="fontsize">A-A+

    作者:西西點擊:109次評論:2次標簽: ERP

    • 類型:服務器區大?。?i>41.8M語言:英文 評分:10.0
    • 標簽:
    立即下載

    做ERP/MIS之類的軟件,通常會開發一些輔助工具來加速開發,比如代碼生成器,數據字典生成工具。隨著時間的積累,這類小工具會越來越多,雖然開發的速度會快,方便,但是也會因為找不到,不好查找這些小工具,產生麻煩。原因很簡單,已經發了很多精力去做成了工具,自然就不會考慮用很原始的方式來完成任務。

    舉例說明
    對于插件式的開發,我們通常會先做好界面功能,然后把這個功能添加到系統的功能列表中,以啟用功能,為完成這個目的,可以采用如下的SQL腳本來完成

    INSERT System_Function(Module,Function,Description)

        VALUES(‘Inventory’,'ICMISR’,'Inventory Receipt’)

    這樣,就把新做好的進倉單功能加到系統功能中,以啟用功能。

    但情況通常沒有這樣簡單,通常還要設置有哪些用戶和角色有權限執行進倉功能,等等。

    一種改善的辦法,是把這些功能都做成腳本文件,一次調用就完成功能增加,權限分配的任務

    如上圖,就產生了這么一個小工具. 這是很簡化的情況。

    我要講述的主題是,當積累了很長時間,手頭有很多這樣的小工具,如何把它們整合到一個容器中,方便調用。

    先看效果圖,邊看圖邊說

     

    如圖所示,在這里,我集成諸多工具,比如

    DataSet Reader 用于讀取dataset的工具

    Translation  多國語言的翻譯工具,
    StringBuilder 字符串構造工具,例如,我想把SQL語句
                        SELECT  FunctionCode FROM  dbo.AuditTrail   轉化成字符串,以傳遞到SQL Server中

    為了集成進倉單的功能到這個工具中,需要如下處理

    修改窗體的繼承基類為FormBase,給窗體類添加FunctionCode的特性,這個特性用于反射查找這里的窗體

    修改ListItem.xml文件,增加一個Item項,如圖所示


    內容是

    <Item Index="10" Text="InventoryReceipt"  Tag="Inventory Receipt" ImageIndex="35"></Item>

    ListItem的內容,就是效果圖中,要顯示在Task List任務框中的內容,Text是標題,Tag是功能的FunctionCode的值,ImageIndex是圖像的索引。

    其實,這里還可以做更多的控制。比如,如果沒有功能的源代碼,需要用反射的方式去call功能所在的程序集,為實現這個目的,還需要增加Item.Assembly以指向它所有的程序集;
    如果功能的源代碼不是.NET代碼所寫,要支持Process.Start的方式啟動工具,必要時還需要增加參數。

    再進入源代碼,看看這個工具是如何構造的

    MainForm是主窗體,這里采用的是Infragistics2.Win.UltraWinTabbedMdi組件,取代過時的MDI窗體組織形式,

    NewProject是Task List任務窗體,這是功能顯示的集成項目,Ctrl+N啟動這個窗體,ListItem.xml是它的配置項

    主窗體中的其他菜單,均沒有使用

    Startup是啟動時顯示的主窗體,在這里,可以顯示一些常見工具的快捷方式
    為了獲取和Office 2007一樣的藍色主題效果,可反注釋如下的代碼

    ToolStripManager.Renderer = new WinUI.Misc.Office2007Renderer();
    statusStrip.Renderer = new WinUI.Misc.Office2007Renderer();

    菜單和狀態欄的效果如下圖

    反射應用于查找窗體的特性,找出它的定義,顯示出來,代碼框架如下

    Assembly assembly = Assembly.GetExecutingAssembly();

    object entryForm = Activator.CreateInstance(formBaseType) as Form;

    entryForm .MdiParent = this;
    entryForm .Show();
    entryForm .Activate();
    這便是這個工具,最有價值的內容。也達到了開頭提出的效果,只開發功能和配置ListItem文件,確實達到插件的目的.


    請到epn.codeplex.com上獲取最新的源代碼,請使用Visual Studio 2008編譯。

      相關評論

      閱讀本文后您有什么感想? 已有人給出評價!

      • 8 喜歡喜歡
      • 3 頂
      • 1 難過難過
      • 5 囧
      • 3 圍觀圍觀
      • 2 無聊無聊

      熱門評論

      最新評論

      發表評論 查看所有評論(2)

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>