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 };
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 }
【文章待续】
(欢迎转载,转载请注明:HFun.快速开发平台)
作者:屈鲁奇
出处:https://www.cnblogs.com/quluqi
联系:496195435@qq.com QQ:496195435
本文版权归作者和博客园共有,欢迎转载,但必须保留此段声明,且在文章页面明显位置给出原文连接。如有问题或建议,请多多赐教,非常感谢。