企業級自定義表單引擎解決方案(五)–自定義表單典型業務案例
- 2021 年 7 月 5 日
- 筆記
- 企業自定義表單引擎解決方案, 自定義表單, 表單引擎
我們平時的業務絕大多數都是圍繞著單表、一對多關係、多對多關係,以及擴展開來的一對多對多、一對一、一(樹結構)對多等展開。 如果把這些關係做成自定義表單模板,則只需要幾步就能夠配置出滿足絕大多數業務場景的功能。
本文介紹從模板創建單表應用,只需要簡單三步就能夠生成一個功能比較全面的單表表單應用, 創建出來的表單包括新增、刪除、修改、批量刪除、普通查詢、高級查詢、導出Excel、導入Excel、表單驗證、數據字典管理等各種功能。
本文以人員管理做為一個案例,並從模板快速創建表單應用,講解自定義表單單表應用的定義與使用的常見功能與自定義表單的一些實現基本演算法介紹。介面大概如下:

單表表單定義
步驟一:創建實體對象
- 實體對象主要是自定義表單與真實資料庫存儲之間的橋樑,在介面上管理自定義表單,相當於DBA在操作資料庫腳本一樣,但是這裡的自定義表單還賦予了一些更高級的功能。
- 創建實體對象時,可以選擇是否為樹(自動生成通用樹結構需要的欄位如PId,Code,Path等欄位,並在運行時自動管理欄位值,查詢里,自動構建樹結構資訊); 可選擇新增、編輯、刪除審計(自動管理新增人,新增時間,修改人,修改時間,邏輯刪除數據)功能。
- 欄位可填寫欄位名稱,欄位類型(不同的欄位默認最常見的控制項編輯和查詢,如Date欄位則用日期控制項編輯以及查詢,新增編輯、Excel導入自動添加欄位驗證),是否為空, 是否必填(新增編輯、Excel導入等自動添加驗證必填),是否唯一,欄位長度,自定義驗證,數據字典(新增編輯、Excel導入、普通查詢、高級查詢均用下拉選擇字典控制項處理)。
- 添加完成對象後,還可以添加自定義方法,自定義方法主要為開發人員自己編寫一些特殊的業務邏輯提供接入API。
步驟二:選擇模板,生成自定義表單
選擇模板單表表單,填寫對象Map(模板對象名稱和新建的表單對應的對象名稱)、描述Map(模板中的一些說明文字替換為新建表單的描述文字)、 列表排除欄位(哪些欄位不需要自動生成)、業務分類(表單管理和視圖管理的分類資訊,方便快速查詢),然後確認生成。
確認生成後,可修改任何錶單定義資訊,修改後,立即生效。
從模板快速創建表單基本原理——>在模板管理中,已經預定義好單表應用相關的表單、視圖、規則、控制項、Wrap資訊、列表查詢、表單行、表單列、表單視圖、列表視圖等自定義表單方方面面的內容。 而且根據模板自定生成表單時,後台會自動複製這些內容,並重新生成各種對象的Id,再用新生成的Id替換模板中相應欄位的Id,並根據第一步定義的實體對象屬性資訊, 選擇合適的控制項,為表單視圖生成對應的欄位並自動添加驗證規則,為列表視圖生成查詢欄位、高級查詢欄位、列表欄位 (如:欄位類型為dict,則用下拉選擇字典控制項生成表單欄位資訊、查詢欄位、列表顯示欄位、高級查詢欄位; 如果定義了必填,唯一,自定義驗證等,都會在不同的區域默認生成驗證表達式和唯一判斷規則等),生成完成後,將所有資訊保存到資料庫同時更新快取內容。
步驟三:配置菜單,運行表單
1. 複製新建的列表表單Id
2. 在功能模組管理新菜單(可選擇類似新增),配置菜單,填寫表單Id到對應欄位位置
3. 配置菜單訪問角色,刷新介面,即可看到自定義表單生成的內容
至此三步即可完成一個單表應用的配置,多數場景即可做為生產環境功能模組直接使用。另外可以在介面隨時修改表單定義,修改好立即生效。接下來介紹一下生成的表單擁有的基礎功能。
單表表單功能說明
增、刪、改、批量刪除
1. 點擊新增按鈕,彈出新增資訊介面,所有欄位的驗證規則和使用的控制項均根據第一步定義的對象屬性資訊默認生成。
2. 姓名、用戶名、性別等帶紅色*符號的欄位為必填
3. 性別、學歷、職稱為下拉選擇數據字典
4. 電話、郵箱為自定義驗證(內置的電話和郵箱驗證,可自行添加正則表達式)
5. 入職日期、出生年月為日期控制項
6. 數據類型為string的,自動添加欄位長度驗證
7. 點擊保存,判斷驗證是否通過,驗證通過後,保存數據到資料庫,刷新列表
點擊列表編輯按鈕,列表編輯,可編輯表單,表單驗證資訊同上
點擊列表刪除按鈕,彈出確認是否刪除
可勾選列表數據列,勾選之後,批量刪除按鈕可用,可批量刪除數據
普通查詢、高級查詢、列表數據顯示
查詢分了普通查詢、高級查詢和隱藏查詢(多數情況是通過參數傳入到視圖中)
普通查詢,根據第一步的對象屬性自動選擇前5個類型為string、text、date、datetime的屬性做為查詢欄位,並選擇默認的控制項。string、text系統構造like查詢條件,如果為字典,則構造in查詢條件,date、datetime為日期區間選擇控制項,系統構造between and查詢條件
高級查詢,根據第一步的對象屬性自動選擇剩餘查詢欄位,並選擇默認的控制項。選擇高級查詢時,先選擇欄位,然後選擇配置可以使用的查詢類型(等於、大於、大於等於、區間、模糊、In等),系統根據欄位類型和查詢類型構造查詢控制項,選擇一個查詢欄位後,清空剩餘可選查詢欄位,另外可以修改刪除經選擇的高級查詢欄位
點擊查詢,查詢列表數據
列表中,數據字典自動顯示字典顯示名稱,日期自動格式化日期顯示
另外還可自定義列欄位顯示樣式
導入導出Excel
導入導出Excel也是各種管理系統常見的功能,系統根據第一步創建的對象屬性自動生成Excel模板。
模板自動構造字典下拉、必填樣式、欄位格式,導入時,根據驗證規則驗證各種數據合法性
可設置導入的唯一欄位或者聯合唯一欄位集合,導入時,判斷Excel數據是否有重複,有重複則修改數據,無重複則新增(案例中唯一欄位為用戶名)
導入結果會顯示導入成功的數據條數,還會輸出導入失敗Excel,記錄原始行號和驗證錯誤原因,提示用戶編輯之後重新導入
根據查詢條件查詢數據,導出所有滿足查詢條件的數據,輸出Excel
編輯表單定義
以上是根據模板自動創建出來的自定義表單,能夠滿足絕大多數業務需求。
另外,創建出來的自定義表單的方方面面均可以新增或者修改,比如列表查詢、高級查詢、列表樣式、彈出樣式、表單驗證、執行規則、控制項樣式、執行自定義方法、綁定數據等等