zoukankan      html  css  js  c++  java
  • 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.快速开发平台)

  • 相关阅读:
    第一篇正式文章 随便聊聊吧
    CSS 28 块之间的空格
    CSS 27 贴在下方
    CSS 26 左右固定
    CSS 25 垂直居中
    CSS 24 左侧固定
    CSS 23 水平居中
    CSS 22 显示方式
    CSS 21 浮动
    CSS 20 相对定位
  • 原文地址:https://www.cnblogs.com/quluqi/p/HFun_Common_1.html
Copyright © 2011-2022 走看看