HFun.快速開發平臺(五)=》自定義系統數據選擇

本篇介紹HFun.快速開發平臺的另一項系統常用功能:系統數據或參數選擇,主要應用在表單錄入中信息的選擇,如類別,編號等。先貼出本系統實現的頁面效果:

如上圖所示,系統中將參數的選擇統一展現爲該方式,開發人員可通過後臺的配置添加自己想要實現的數據選擇對象,系統中該功能主要實現的功能有:

  1、開發人員或系統運維人員可通過系統配置工具調整數據選項參數,可增、刪、改選擇對象,實現0編碼即可創建數據選擇對象,並對配置信息進行有效性驗證。

  2、通過系統配置工具可定義待選項數據,也可定義默認的已選項數據。

  3、已選項的數據來源擴展爲系統設置默認或由URL傳遞實現默認選項。

  4、全程的異步數據處理,對系統參數進行有效性的判斷。

  5、可對已選項進行前後排序操作。

  6、確定選項後可自定義保存方法,可自定義主、從表的數據保存,也可定義將選項value及name返回,自定義回調方法實現業務功能。

  7、同一配置選項可用於多個客戶程序。

系統的配置界面如下:

程序部分代碼:

1、客戶端的數據請求:

 1 //初始化數據
 2         function InitData(_isDefaultItem, _isInitSelected) {
 3             var _selID = "";
 4             if (_isDefaultItem == "Y") {
 5                 $("#DrpSelect option").each(function () {
 6                     _selID += $(this).val() + ",";
 7                 });
 8             }
 9             AjaxJson("/Common/CommonSelect/ajax_GetSelectData.ashx",
10                 {
11                     FriendID: $('#P_FriendID').val(),
12                     IsSelectItem: _isDefaultItem,
13                     Param: $('#P_Param').val(),
14                     SelectCode: $('#P_SelectCode').val(),
15                     SelectItem: _selID,
16                     SearchKey: $('#txt_Search').val()
17                 },
18                 function (data) {
19                     if (data._BackState == "1") {//加載成功
20                         //初始化待選項
21                         $("#DrpSupply").empty();
22                         $.each(data._BackData.H_SupplyData, function (i) {
23                             var _item = data._BackData.H_SupplyData[i];
24                             $("#DrpSupply").append("<option value='" + _item.D_Value + "'>" + _item.D_Name + "</option>");
25                         });
26                         //初始化已選項,參數指定加載時才加載,兼容查詢模式,查詢時不加載已選項
27                         if (_isInitSelected == true) {
28                             $("#DrpSelect").empty();
29                             $.each(data._BackData.H_SelectedData, function (i) {
30                                 var _item = data._BackData.H_SelectedData[i];
31                                 $("#DrpSelect").append("<option value='" + _item.D_Value + "'>" + _item.D_Name + "</option>");
32                             });
33                         }
34                     } else {//加載失敗
35                         ShowError(data._BackMessage);
36                         return;
37                     }
38                 });
39         };
View Code

2、待選項的數據處理:

 1 /// <summary>
 2         /// 獲取已選項
 3         /// </summary>
 4         /// <returns></returns>
 5         public List<ParamData.HfKeyValueItem> GetSelectedData()
 6         {
 7             //已選項
 8             List<ParamData.HfKeyValueItem> _SelectedData = new List<ParamData.HfKeyValueItem>();
 9             string sqlSelect = string.Format("select * from ({0})T where 1=1 ", _Base_TcCommonSelectROR.MCS_SupplySQL);
10             if (_Base_TcCommonSelectROR.MCS_SelectSource == "Param" || _Criteria.IsSelectItem == "Y")
11             {//來源於參數,可能爲系統設置來源參數,也可能是數據請求時指定使用傳遞參數
12                 string _selectItem = GetSelectedItems();
13                 if (!string.IsNullOrEmpty(_selectItem))
14                 {
15                     sqlSelect += string.Format(" and {0} in({1})", _Base_TcCommonSelectROR.MCS_ValueField, _selectItem);
16                 }
17                 else
18                 {
19                     //傳遞參數爲空時說明沒有選擇數據,清空SQL
20                     sqlSelect = "";
21                 }
22             }
23             else if (_Base_TcCommonSelectROR.MCS_SelectSource == "SQL")
24             {//已選項來源於SQL語句
25                 if (!string.IsNullOrEmpty(_Base_TcCommonSelectROR.MCS_SelectSQL))
26                 {
27                     sqlSelect += string.Format(" and {0} in({1})", _Base_TcCommonSelectROR.MCS_ValueField, _Base_TcCommonSelectROR.MCS_SelectSQL);
28                 }
29                 else
30                 {
31                     throw new HfSystemPlatException("id:81003,系統缺少已選項數據源配置,請聯繫管理員!");
32                 }
33             }
34             else
35             {
36                 //無已選項,清空SQL
37                 sqlSelect = "";
38             }
39 
40             //添加排序
41             if (!string.IsNullOrEmpty(_Base_TcCommonSelectROR.MCS_OrderBy))
42             {
43                 sqlSelect += string.Format(" order by {0}", _Base_TcCommonSelectROR.MCS_OrderBy);
44             }
45 
46             //URL參數替換
47             sqlSelect = HfSystemFrame.ParamData.HfParamReplace.ReplaceKey(sqlSelect, true, true);
48             if (!string.IsNullOrEmpty(sqlSelect))
49             {
50                 DataSet dsSelect = HfUtilityFrame.DbUtility.DbHelperSQL.Query(sqlSelect);
51                 if (dsSelect != null && dsSelect.Tables[0].Rows.Count > 0)
52                 {
53                     foreach (DataRow item in dsSelect.Tables[0].Rows)
54                     {
55                         _SelectedData.Add(new ParamData.HfKeyValueItem(
56                             Convert.ToString(item[_Base_TcCommonSelectROR.MCS_ValueField]), Convert.ToString(item[_Base_TcCommonSelectROR.MCS_NameField])));
57                     }
58                 }
59             }
60 
61             return _SelectedData;
62         }
View Code

 

【文章待續】

(歡迎轉載,轉載請註明:HFun.快速開發平臺)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章