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.快速开发平台)

  • 相关阅读:
    Codeforces 451A Game With Sticks
    POJ 3624 Charm Bracelet
    POJ 2127 Greatest Common Increasing Subsequence
    POJ 1458 Common Subsequence
    HDU 1087 Super Jumping! Jumping! Jumping!
    HDU 1698
    HDU 1754
    POJ 1724
    POJ 1201
    CSUOJ 1256
  • 原文地址:https://www.cnblogs.com/quluqi/p/HFun_Common_1.html
Copyright © 2011-2022 走看看