国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

這篇具有很好參考價值的文章主要介紹了基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在參照一些行業(yè)系統(tǒng)軟件的時候,發(fā)現一個做的挺不錯的系統(tǒng)功能-系統(tǒng)參數管理,相當于把任何一個基礎的系統(tǒng)參數碎片化進行管理,每次可以讀取一個值進行管理,這樣有利于我們快速的處理業(yè)務需求,是一個挺好的功能。本篇隨筆模擬這個功能,基于SqlSugar開發(fā)框架的基礎上,利用代碼生成工具快速生成系統(tǒng)參數管理界面和相關的業(yè)務類生成。

1、參考和具體實現的效果對比

參照的界面效果如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

最終基于SqlSugar的開發(fā)框架,基于DevExpress的界面效果,構建的Winform界面如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

2、?快速構建系統(tǒng)參數管理界面及后臺業(yè)務代碼

為了實現業(yè)務代碼及UI界面的內容生成,我們首先要設計好數據庫,基于數據庫表,可以利用代碼生成工具Database2Sharp 快速生成相關的業(yè)務代碼和Winform界面代碼。

系統(tǒng)參數的信息,應該設計為包含一個大類參數目錄和一個具體的參數項目,如下基于SQLServer的數據庫表設計所示(基于PoweDesigner設計,便于生成Sql執(zhí)行)。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

其中大類目錄如下設計所示,為了方便,設計為一個樹形結構的層次。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

參數項目表設計如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

生成相關的Sql ,在數據庫中構建好相關的表結構。

然后利用代碼生成工具生成相關的代碼即可。

打開代碼生成工具,并展開相關的數據庫表,由于我們選擇基于SqlSugar開發(fā)框架架構進行的界面生成,因此選擇對應的界面生成【SqlSugar框架Winform界面生成】。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?在彈出的【常規(guī)Winform界面生成】面板中,勾選相關的設置信息,定制UI界面,如下界面效果所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?利用代碼生成工具,默認會生成一個類似下面的設計窗體的界面效果。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?為了能夠展示多層級的參數目錄,我們需要在左側模仿做一個樹形列表,這樣才能更好的查看相關的參數信息,相當于把參數項目分類管理。

因此我們在生成的窗體界面上,增加SplitContainerControl的一個拆分面板區(qū)域的控件,并把左側放置樹形列表及查詢框,如下界面效果。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?文章來源地址http://www.zghlxwxcb.cn/news/detail-422455.html

3、快速構建系統(tǒng)參數管理的后臺業(yè)務代碼

上面介紹的是Winform的界面生成,為了使得系統(tǒng)能夠順利的跑起來,我們還需要對相關的系統(tǒng)參數表目錄和項目訪問所需的業(yè)務代碼,一般的業(yè)務代碼都需要有CRUD等常規(guī)操作的代碼,不過還好基于框架的基礎上,我們只需要生成一個簡單的類,繼承自基類就默認具有了這些操作,不需要重復編寫代碼,簡化了代碼的處理并提高開發(fā)效率。

同樣的,我們利用現有表結構信息,基于代碼生成工具快是生成相關的業(yè)務類文件,合并到系統(tǒng)框架中就可以了。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

選擇兩個剛創(chuàng)建的表:TB_SystemParams 、TB_SystemParamsDir,并填寫對應的主命名空間,如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?最后生成的代碼文件如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

由于是基于框架的目錄機構生成的,因此直接復制Core目錄到解決方案項目上就可以了,如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

復制過去后,對應業(yè)務表的實體類、接口類、實現類都一一設置好了相關的繼承關系,如下是具體業(yè)務實現類的代碼,是基于數據庫表結構信息生成的。

    /// <summary>
    /// 系統(tǒng)參數配置 應用層服務接口實現
    /// </summary>
    public class SystemParamsService : MyCrudService<SystemParamsInfo,string, SystemParamsPagedDto>, ISystemParamsService
  {
       //相關代碼
  }

詳細類文件如下所示,生成了相關的排序條件、查詢條件等處理信息。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?由于這個系統(tǒng)界面比較簡單,因此我們不需要增加任何代碼。

我們再次回到UI界面的處理上來,由于默認我們生成的界面,都具有了分頁查詢及編輯明細的功能,因此這部分代碼我們不需要調整,我們額外增加了樹展示和過濾的功能,因此需要適當修改一下生成的界面代碼。

窗體界面的處理主邏輯如下所示。

        /// <summary>
        /// 編寫初始化窗體的實現,可以用于刷新
        /// </summary>
        public override void FormOnLoad()
        {
            InitSearchControl();
            InitTree();
            BindTree();

            InitDictItem();
            BindData();
        }

標注紅色的部分是我們需要額外增加的代碼。

初始化樹的界面代碼如下所示,主要的邏輯就是創(chuàng)建顯示的列,以及確定好層次關系和實現拖動效果處理,以及對選中節(jié)點的事件處理。

      /// <summary>
        /// 初始化樹控件
        /// </summary>
        private void InitTree()
        {
            this.tree.Columns.Clear();

            //控件擴展函數封裝處理
            this.tree.CreateColumn("CategoryName", "系統(tǒng)參數目錄", 160, true);
            this.tree.InitTree(Id_FieldName, "PID", null, false, false);
            this.tree.OptionsDragAndDrop.DragNodesMode = DragNodesMode.Single;

            //設置樹的圖標集合及逐級圖標
            this.tree.SelectImageList = this.imageList1;
            this.tree.CustomDrawNodeImages += (object sender, CustomDrawNodeImagesEventArgs e) =>
            {
                int maxCount = this.imageList1.Images.Count;
                var index = e.Node.Level < maxCount ? e.Node.Level : 0;
                e.SelectImageIndex = index;
            };

            //初始化樹節(jié)點選擇事件
            this.tree.FocusedNodeChanged += delegate (object sender, FocusedNodeChangedEventArgs e)
            {
                this.FocusedNodeChanged();
            };
            this.tree.MouseDoubleClick += (s, e) => { menu_EditType_Click(null, null); };
        }

而對于樹節(jié)點的過濾,我們對查詢的輸入框架進行如下處理代碼即可。

        /// <summary>
        /// 實現樹節(jié)點的過濾查詢
        /// </summary>
        private void InitSearchControl()
        {
            this.searchControl1.Client = this.tree;
            this.tree.FilterNode += (object sender, FilterNodeEventArgs e) =>
            {
                if (tree.DataSource == null)
                    return;

                string nodeText = e.Node.GetDisplayText("CategoryName");//參數填寫FieldName  
                if (string.IsNullOrWhiteSpace(nodeText))
                    return;

                bool isExist = nodeText.IndexOf(searchControl1.Text, StringComparison.OrdinalIgnoreCase) >= 0;
                if (isExist)
                {
                    var node = e.Node.ParentNode;
                    while (node != null)
                    {
                        if (!node.Visible)
                        {
                            node.Visible = true;
                            node = node.ParentNode;
                        }
                        else
                            break;
                    }
                }
                e.Node.Visible = isExist;
                e.Handled = true;
            };
        }

觸發(fā)樹節(jié)點查詢,以及綁定樹數據源的處理如下代碼所示

        /// <summary>
        /// 選中樹節(jié)點觸發(fā)的查詢處理
        /// </summary>
        private void FocusedNodeChanged()
        {
            if (this.tree.FocusedNode != null)
            {
                BindData();
            }
        }
        /// <summary>
        /// 綁定樹的數據源
        /// </summary>
        private async void BindTree()
        {
            var result = await BLLFactory<ISystemParamsDirService>.Instance.GetAllAsync();
            if (result != null)
            {
                this.tree.DataSource = result.Items;
                this.tree.ExpandAll();
            }
        }

其中數據源的獲取,我們直接調用基類函數獲取對應的列表項目就可以了,如上的代碼

BLLFactory<ISystemParamsDirService>.Instance.GetAllAsync();

對于編輯參數明細的界面項目,我們如果需要微調界面,修改下即可。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?到此功能基本就完成了,整合編譯運行就可以出效果了。構建的Winform界面如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

編輯明細部分的界面效果如下所示。

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?以上就是基于SqlSugar開發(fā)框架的基礎上,利用代碼生成工具快速生成系統(tǒng)參數管理界面和相關的業(yè)務類生成的全部過程,希望對大家開發(fā)處理有所裨益。

?

SqlSugar開發(fā)框架介紹:https://www.iqidi.com/Framework/sugarIndex.htm?

系列文章:

《基于SqlSugar的開發(fā)框架的循序漸進介紹(1)--框架基礎類的設計和使用》

《基于SqlSugar的開發(fā)框架循序漸進介紹(2)-- 基于中間表的查詢處理》

《基于SqlSugar的開發(fā)框架循序漸進介紹(3)-- 實現代碼生成工具Database2Sharp的整合開發(fā)》

《基于SqlSugar的開發(fā)框架循序漸進介紹(4)-- 在數據訪問基類中對GUID主鍵進行自動賦值處理?》

《基于SqlSugar的開發(fā)框架循序漸進介紹(5)-- 在服務層使用接口注入方式實現IOC控制反轉》

《基于SqlSugar的開發(fā)框架循序漸進介紹(6)-- 在基類接口中注入用戶身份信息接口?》

《基于SqlSugar的開發(fā)框架循序漸進介紹(7)-- 在文件上傳模塊中采用選項模式【Options】處理常規(guī)上傳和FTP文件上傳》

?《基于SqlSugar的開發(fā)框架循序漸進介紹(8)-- 在基類函數封裝實現用戶操作日志記錄》

《基于SqlSugar的開發(fā)框架循序漸進介紹(9)-- 結合Winform控件實現字段的權限控制》

《基于SqlSugar的開發(fā)框架循序漸進介紹(10)-- 利用axios組件的封裝,實現對后端API數據的訪問和基類的統(tǒng)一封裝處理》

《基于SqlSugar的開發(fā)框架循序漸進介紹(11)-- 使用TypeScript和Vue3的Setup語法糖編寫頁面和組件的總結》

《基于SqlSugar的開發(fā)框架循序漸進介紹(12)-- 拆分頁面模塊內容為組件,實現分而治之的處理》

《基于SqlSugar的開發(fā)框架循序漸進介紹(13)-- 基于ElementPlus的上傳組件進行封裝,便于項目使用》

《基于SqlSugar的開發(fā)框架循序漸進介紹(14)-- 基于Vue3+TypeScript的全局對象的注入和使用》

?《基于SqlSugar的開發(fā)框架循序漸進介紹(15)-- 整合代碼生成工具進行前端界面的生成》

《基于SqlSugar的開發(fā)框架循序漸進介紹(16)-- 工作流模塊的功能介紹》

《基于SqlSugar的開發(fā)框架循序漸進介紹(17)-- 基于CSRedis實現緩存的處理》

?《基于SqlSugar的開發(fā)框架循序漸進介紹(18)-- 基于代碼生成工具Database2Sharp,快速生成Vue3+TypeScript的前端界面和Winform端界面》

《基于SqlSugar的開發(fā)框架循序漸進介紹(19)-- 基于UniApp+Vue的移動前端的功能介紹》

《基于SqlSugar的開發(fā)框架循序漸進介紹(20)-- 在基于UniApp+Vue的移動端實現多條件查詢的處理》

《基于SqlSugar的開發(fā)框架循序漸進介紹(21)-- 在工作流列表頁面中增加一些轉義信息的輸出,在后端進行內容轉換》

?《基于SqlSugar的開發(fā)框架循序漸進介紹(22)-- Vue3+TypeScript的前端工作流模塊中實現統(tǒng)一的表單編輯和表單詳情查看處理?》

《基于SqlSugar的開發(fā)框架循序漸進介紹(23)-- Winform端管理系統(tǒng)中平滑增加對Web API對接的需求》

《基于SqlSugar的開發(fā)框架循序漸進介紹(24)-- 使用Serialize.Linq對Lambda表達式進行序列化和反序列化?》

?基于SqlSugar的開發(fā)框架循序漸進介紹(25)-- 基于SignalR實現多端的消息通訊

基于SqlSugar的開發(fā)框架循序漸進介紹(26)-- 實現本地上傳、FTP上傳、阿里云OSS上傳三者合一處理

基于SqlSugar的開發(fā)框架循序漸進介紹(27)-- 基于MongoDB的數據庫操作整合

基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面

?

到了這里,關于基于SqlSugar的開發(fā)框架循序漸進介紹(28)-- 快速構建系統(tǒng)參數管理界面的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包