在代碼生成工具的各種功能規劃中,我們一向以客戶的需求作為驅動,因此也會根據需要增加一些特殊的功能或者處理。在實際的開發中,雖然我們一般以具體的表進行具體業務開發,但是有些客戶提出有時候視圖開發也是很常見的,為了提高代碼生成和界面生成的效率,基於視圖開發的過程也應該支持。還有主從表的界面生成操作,在很...
在代碼生成工具的各種功能規劃中,我們一向以客戶的需求作為驅動,因此也會根據需要增加一些特殊的功能或者處理。在實際的開發中,雖然我們一般以具體的表進行具體業務開發,但是有些客戶提出有時候視圖開發也是很常見的,為了提高代碼生成和界面生成的效率,基於視圖開發的過程也應該支持。還有主從表的界面生成操作,在很多實際的業務領域也是很常見的。基於上面的需求,本次代碼生成工具Database2Sharp中增加視圖的代碼生成以及主從表界面生成功能,為客戶的高效率開發快馬加鞭、保駕護航。
1、基於視圖的代碼生成和界面生成操作
為了支持視圖的相關代碼生成,我們把代碼生成工具底層的元數據進行了優化整合,是指在代碼生成方面,具體的表和視圖不再有具體的差異,基本上都是可以統一對待,實現快速的框架代碼生成、Winform界面生成、Web界面生成操作的,所有的表的相關屬性,視圖也具有,因此在代碼模板方便,不需要進行調整,相容了代碼模板的屬性處理,提高了已有代碼模板的安全性。
如上所示,為了區分表和視圖的位置,我們把視圖統一放在了表的後面,方便選擇處理,在選擇的時候,表和視圖都是一視同仁,所以代碼生成的處理適用於表的,也是適用於視圖的,可以統一一併生成,極大的提高了代碼生成的效率。
當然,視圖的增刪改操作,和表畢竟不一樣,一般視圖只是為了查詢數據進行展示的,所以在實際開發的時候,可以適當屏蔽視圖的增刪改操作,或者自定義相關的介面進行處理。
在Winform界面的生成的時候,我們也一樣整合了視圖的列表,可以基於視圖進行界面代碼的生成。
不過我們註意到,一般表我們使用備註信息作為Winform界面的欄位說明信息的,如果是視圖,那麼是無法獲取到它的視圖欄位備註信息的,因為視圖的欄位備註是不存在的,為了實現和表一樣具有中文備註的界面,我們增加了一個對視圖欄位進行備註信息維護的界面,有著欄位的備註,我們生成Winform界面的時候,對應欄位的標簽就有中文信息了。
通過Enterprise Library架構生成的相關代碼,也同時具有相關的備註信息,如下代碼所示。
通過代碼生成工具裡面的Winform界面代碼生成,當然也會具有相關的備註信息,可以在界面上顯示對應的中文標簽信息了。
視圖的Winform界面代碼生成和普通的表生成的Winform界面操作過程一樣,具體界面操作如下所示。
這樣生成的Winform界面操作和普通表的處理方式一致,而且對應的視圖欄位也有了備註信息,因此在界面上的標簽說明也就和表一樣,可以顯示備註信息了。
2、主從表的界面生成操作
在有些情況下,有些業務表是具有主從關係的,如一個是彙總信息,一個是明細信息,如倉庫的入庫、出庫操作,會員的消費操作,都是典型的主從表應用場景,可以把它們作為一個界面生成的案例進行處理。
標準的主從表界面如下界面所示。
或者會員消費信息的橫向界面展示如下所示。
在我之前的代碼生成界面裡面,主要是生成標準的分頁列表展示,以及編輯明細兩個標準界面,為了更加豐富開發工具的界面生成,根據上面兩種界面的綜合情況,增加一個主從表的界面生成操作,這樣可以更加適應實際的業務開發工作,高效進行界面的快速生成。
如在代碼生成工具裡面,設置主從表的界面生成如下所示。
生成Winform界面代碼後,在VS編輯器裡面,可以看到如下所示界面。
最後在實際程式上運行生成的界面,就可以看到預覽的界面效果了,界面效果如下所示。
為了方便,上面界面增加了一個覆選框,用來切換橫向或者縱向展示明細列表的,勾選後進行橫向顯示,如下所示。
上面主從表的展示,還包括了明細表信息的彙總功能,這樣基本上滿足了主從表的信息展示了,如果需要,還可以在這基礎上進行更方便的改進了。