代碼生成工具Database2Sharp中增加視圖的代碼生成以及主從表界面生成功能

来源:http://www.cnblogs.com/wuhuacong/archive/2016/02/20/5203043.html
-Advertisement-
Play Games

在代碼生成工具的各種功能規劃中,我們一向以客戶的需求作為驅動,因此也會根據需要增加一些特殊的功能或者處理。在實際的開發中,雖然我們一般以具體的表進行具體業務開發,但是有些客戶提出有時候視圖開發也是很常見的,為了提高代碼生成和界面生成的效率,基於視圖開發的過程也應該支持。還有主從表的界面生成操作,在很...


在代碼生成工具的各種功能規劃中,我們一向以客戶的需求作為驅動,因此也會根據需要增加一些特殊的功能或者處理。在實際的開發中,雖然我們一般以具體的表進行具體業務開發,但是有些客戶提出有時候視圖開發也是很常見的,為了提高代碼生成和界面生成的效率,基於視圖開發的過程也應該支持。還有主從表的界面生成操作,在很多實際的業務領域也是很常見的。基於上面的需求,本次代碼生成工具Database2Sharp中增加視圖的代碼生成以及主從表界面生成功能,為客戶的高效率開發快馬加鞭、保駕護航。

1、基於視圖的代碼生成和界面生成操作

為了支持視圖的相關代碼生成,我們把代碼生成工具底層的元數據進行了優化整合,是指在代碼生成方面,具體的表和視圖不再有具體的差異,基本上都是可以統一對待,實現快速的框架代碼生成、Winform界面生成、Web界面生成操作的,所有的表的相關屬性,視圖也具有,因此在代碼模板方便,不需要進行調整,相容了代碼模板的屬性處理,提高了已有代碼模板的安全性。

如上所示,為了區分表和視圖的位置,我們把視圖統一放在了表的後面,方便選擇處理,在選擇的時候,表和視圖都是一視同仁,所以代碼生成的處理適用於表的,也是適用於視圖的,可以統一一併生成,極大的提高了代碼生成的效率。

當然,視圖的增刪改操作,和表畢竟不一樣,一般視圖只是為了查詢數據進行展示的,所以在實際開發的時候,可以適當屏蔽視圖的增刪改操作,或者自定義相關的介面進行處理。

在Winform界面的生成的時候,我們也一樣整合了視圖的列表,可以基於視圖進行界面代碼的生成。

不過我們註意到,一般表我們使用備註信息作為Winform界面的欄位說明信息的,如果是視圖,那麼是無法獲取到它的視圖欄位備註信息的,因為視圖的欄位備註是不存在的,為了實現和表一樣具有中文備註的界面,我們增加了一個對視圖欄位進行備註信息維護的界面,有著欄位的備註,我們生成Winform界面的時候,對應欄位的標簽就有中文信息了。

通過Enterprise Library架構生成的相關代碼,也同時具有相關的備註信息,如下代碼所示。

通過代碼生成工具裡面的Winform界面代碼生成,當然也會具有相關的備註信息,可以在界面上顯示對應的中文標簽信息了。

視圖的Winform界面代碼生成和普通的表生成的Winform界面操作過程一樣,具體界面操作如下所示。

這樣生成的Winform界面操作和普通表的處理方式一致,而且對應的視圖欄位也有了備註信息,因此在界面上的標簽說明也就和表一樣,可以顯示備註信息了。 

 

2、主從表的界面生成操作

在有些情況下,有些業務表是具有主從關係的,如一個是彙總信息,一個是明細信息,如倉庫的入庫、出庫操作,會員的消費操作,都是典型的主從表應用場景,可以把它們作為一個界面生成的案例進行處理。

標準的主從表界面如下界面所示。

或者會員消費信息的橫向界面展示如下所示。

在我之前的代碼生成界面裡面,主要是生成標準的分頁列表展示,以及編輯明細兩個標準界面,為了更加豐富開發工具的界面生成,根據上面兩種界面的綜合情況,增加一個主從表的界面生成操作,這樣可以更加適應實際的業務開發工作,高效進行界面的快速生成。

如在代碼生成工具裡面,設置主從表的界面生成如下所示。

生成Winform界面代碼後,在VS編輯器裡面,可以看到如下所示界面。

最後在實際程式上運行生成的界面,就可以看到預覽的界面效果了,界面效果如下所示。

為了方便,上面界面增加了一個覆選框,用來切換橫向或者縱向展示明細列表的,勾選後進行橫向顯示,如下所示。

上面主從表的展示,還包括了明細表信息的彙總功能,這樣基本上滿足了主從表的信息展示了,如果需要,還可以在這基礎上進行更方便的改進了。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 要刪除某個資料庫,或者刪除資料庫中的所有表(刪除表結構和數據),需要先刪除表間的外鍵約束,才能刪除表。如刪除資料庫db_wy中的所有表: --/第1步**********刪除所有表的外鍵約束*************************/ DECLARE c1 cursor for select
  • 1.辦公軟體:wps 2.瀏覽器:火狐瀏覽器 如果您有好的軟體,請推薦給我,謝謝!
  • 1 硬體特性 1.1 概述 I2C匯流排是由Philips公司開發的兩線式串列匯流排,這兩根線為時鐘線(SCL)和雙向數據線(SDA)。由於I2C匯流排僅需要兩根線,因此在電路板上占用的空間更少,帶來的問題是帶寬較窄。I2C在標準模式下傳輸速率最高100Kb/s,在快速模式下最高可達400kb/s。屬於半
  • 前言:之前偶然的機會學習了廖老師關於Git學習的一個網站,講解的很好很詳細,通俗易懂,學習之餘決定將廖老師帖子的精髓作一個總結(相當於是筆記啦~~),也方便日後查詢鞏固,希望大家共勉!查看廖老師詳細原帖! 1、安裝Git 這裡,我只介紹一下在Linux系統下Git的安裝,如果需要瞭解Unix、Mac
  • 一、生成證書,所需機器數必須 >= 2(一臺生成服務端證書,一臺生成客戶端證書),以下伺服器以A表示服務端、B表示客戶端來舉例,thrift版本為0.7.01、自簽名的證書的生成和測試 1)生成密鑰和證書相關 服務端A, openssl genrsa -out server-key.pem 2048
  • atitit.ntfs ext 文件系統新特性對比 1. 現代文件系統應該有的特性2 1.1. 恢復Log2 1.2. 壓縮2 1.3. Meta ext2 1.4. Fulltextཟsearch 全文2 1.5. Copy 校驗2 1.6. 稀疏文件,這是UNIX類和NTFS等文件系統的一個特性
  • 今天老師說了一個例子,提生面向對象思想,和大家分享下 雙擊可對其評價和評分 相對以前 我們有可能會這樣寫 //定義一個Tool類進行傳值 Tool.name = lv.SelectedItems[0].SubItems[1].Text;//姓名 Tool.pingjia = lv.SelectedI
  • 在程式中建立如下方法。 #region 刷新數據源 /// ///刷新數據源 /// /// dgv that is needed to refresh public void RefreshDataSourceOndgv(DataGridView dgv) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...