在代碼生成工具的各種功能規(guī)劃中,我們一向以客戶的需求作為驅(qū)動(dòng)筷频,因此也會(huì)根據(jù)需要增加一些特殊的功能或者處理管宵。在實(shí)際的開發(fā)中,雖然我們一般以具體的表進(jìn)行具體業(yè)務(wù)開發(fā)衬浑,但是有些客戶提出有時(shí)候視圖開發(fā)也是很常見的捌浩,為了提高代碼生成和界面生成的效率,基于視圖開發(fā)的過程也應(yīng)該支持工秩。還有主從表的界面生成操作尸饺,在很多實(shí)際的業(yè)務(wù)領(lǐng)域也是很常見的≈遥基于上面的需求浪听,本次代碼生成工具Database2Sharp中增加視圖的代碼生成以及主從表界面生成功能,為客戶的高效率開發(fā)快馬加鞭眉菱、保駕護(hù)航迹栓。
1、基于視圖的代碼生成和界面生成操作
為了支持視圖的相關(guān)代碼生成俭缓,我們把代碼生成工具底層的元數(shù)據(jù)進(jìn)行了優(yōu)化整合克伊,是指在代碼生成方面酥郭,具體的表和視圖不再有具體的差異,基本上都是可以統(tǒng)一對(duì)待愿吹,實(shí)現(xiàn)快速的框架代碼生成不从、Winform界面生成、Web界面生成操作的犁跪,所有的表的相關(guān)屬性椿息,視圖也具有,因此在代碼模板方便坷衍,不需要進(jìn)行調(diào)整寝优,兼容了代碼模板的屬性處理,提高了已有代碼模板的安全性枫耳。
如上所示乏矾,為了區(qū)分表和視圖的位置,我們把視圖統(tǒng)一放在了表的后面嘉涌,方便選擇處理妻熊,在選擇的時(shí)候,表和視圖都是一視同仁仑最,所以代碼生成的處理適用于表的,也是適用于視圖的帆喇,可以統(tǒng)一一并生成警医,極大的提高了代碼生成的效率。
當(dāng)然坯钦,視圖的增刪改操作预皇,和表畢竟不一樣,一般視圖只是為了查詢數(shù)據(jù)進(jìn)行展示的婉刀,所以在實(shí)際開發(fā)的時(shí)候吟温,可以適當(dāng)屏蔽視圖的增刪改操作,或者自定義相關(guān)的接口進(jìn)行處理突颊。
在Winform界面的生成的時(shí)候鲁豪,我們也一樣整合了視圖的列表,可以基于視圖進(jìn)行界面代碼的生成律秃。
不過我們注意到爬橡,一般表我們使用備注信息作為Winform界面的字段說明信息的,如果是視圖棒动,那么是無法獲取到它的視圖字段備注信息的糙申,因?yàn)橐晥D的字段備注是不存在的,為了實(shí)現(xiàn)和表一樣具有中文備注的界面船惨,我們?cè)黾恿艘粋€(gè)對(duì)視圖字段進(jìn)行備注信息維護(hù)的界面柜裸,有著字段的備注缕陕,我們生成Winform界面的時(shí)候,對(duì)應(yīng)字段的標(biāo)簽就有中文信息了疙挺。
通過Enterprise Library架構(gòu)生成的相關(guān)代碼扛邑,也同時(shí)具有相關(guān)的備注信息,如下代碼所示衔统。
通過代碼生成工具里面的Winform界面代碼生成鹿榜,當(dāng)然也會(huì)具有相關(guān)的備注信息,可以在界面上顯示對(duì)應(yīng)的中文標(biāo)簽信息了锦爵。
視圖的Winform界面代碼生成和普通的表生成的Winform界面操作過程一樣舱殿,具體界面操作如下所示。
這樣生成的Winform界面操作和普通表的處理方式一致险掀,而且對(duì)應(yīng)的視圖字段也有了備注信息沪袭,因此在界面上的標(biāo)簽說明也就和表一樣,可以顯示備注信息了樟氢。
2冈绊、主從表的界面生成操作
在有些情況下,有些業(yè)務(wù)表是具有主從關(guān)系的埠啃,如一個(gè)是匯總信息死宣,一個(gè)是明細(xì)信息,如倉庫的入庫碴开、出庫操作毅该,會(huì)員的消費(fèi)操作,都是典型的主從表應(yīng)用場(chǎng)景潦牛,可以把它們作為一個(gè)界面生成的案例進(jìn)行處理眶掌。
標(biāo)準(zhǔn)的主從表界面如下界面所示。
或者會(huì)員消費(fèi)信息的橫向界面展示如下所示巴碗。
在我之前的代碼生成界面里面朴爬,主要是生成標(biāo)準(zhǔn)的分頁列表展示,以及編輯明細(xì)兩個(gè)標(biāo)準(zhǔn)界面橡淆,為了更加豐富開發(fā)工具的界面生成召噩,根據(jù)上面兩種界面的綜合情況,增加一個(gè)主從表的界面生成操作明垢,這樣可以更加適應(yīng)實(shí)際的業(yè)務(wù)開發(fā)工作蚣常,高效進(jìn)行界面的快速生成。
如在代碼生成工具里面痊银,設(shè)置主從表的界面生成如下所示抵蚊。
生成Winform界面代碼后,在VS編輯器里面,可以看到如下所示界面贞绳。
最后在實(shí)際程序上運(yùn)行生成的界面谷醉,就可以看到預(yù)覽的界面效果了,界面效果如下所示冈闭。
為了方便俱尼,上面界面增加了一個(gè)復(fù)選框,用來切換橫向或者縱向展示明細(xì)列表的萎攒,勾選后進(jìn)行橫向顯示遇八,如下所示。
上面主從表的展示耍休,還包括了明細(xì)表信息的匯總功能刃永,這樣基本上滿足了主從表的信息展示了,如果需要羊精,還可以在這基礎(chǔ)上進(jìn)行更方便的改進(jìn)了斯够。