本篇介绍HFun.快速开发平台的另一项系统常用功能:系统数据或参数选择,主要应用在表单录入中信息的选择,如类别,编号等。先贴出本系统实现的页面效果:

如上图所示,系统中将参数的选择统一展现为该方式,开发人员可通过后台的配置添加自己想要实现的数据选择对象,系统中该功能主要实现的功能有:

  1、开发人员或系统运维人员可通过系统配置工具调整数据选项参数,可增、删、改选择对象,实现0编码即可创建数据选择对象,并对配置信息进行有效性验证。

  2、通过系统配置工具可定义待选项数据,也可定义默认的已选项数据。

  3、已选项的数据来源扩展为系统设置默认或由URL传递实现默认选项。

  4、全程的异步数据处理,对系统参数进行有效性的判断。

  5、可对已选项进行前后排序操作。

  6、确定选项后可自定义保存方法,可自定义主、从表的数据保存,也可定义将选项value及name返回,自定义回调方法实现业务功能。

  7、同一配置选项可用于多个客户程序。

系统的配置界面如下:

程序部分代码:

1、客户端的数据请求:

 //初始化数据
function InitData(_isDefaultItem, _isInitSelected) {
var _selID = "";
if (_isDefaultItem == "Y") {
$("#DrpSelect option").each(function () {
_selID += $(this).val() + ",";
});
}
AjaxJson("/Common/CommonSelect/ajax_GetSelectData.ashx",
{
FriendID: $('#P_FriendID').val(),
IsSelectItem: _isDefaultItem,
Param: $('#P_Param').val(),
SelectCode: $('#P_SelectCode').val(),
SelectItem: _selID,
SearchKey: $('#txt_Search').val()
},
function (data) {
if (data._BackState == "1") {//加载成功
//初始化待选项
$("#DrpSupply").empty();
$.each(data._BackData.H_SupplyData, function (i) {
var _item = data._BackData.H_SupplyData[i];
$("#DrpSupply").append("<option value='" + _item.D_Value + "'>" + _item.D_Name + "</option>");
});
//初始化已选项,参数指定加载时才加载,兼容查询模式,查询时不加载已选项
if (_isInitSelected == true) {
$("#DrpSelect").empty();
$.each(data._BackData.H_SelectedData, function (i) {
var _item = data._BackData.H_SelectedData[i];
$("#DrpSelect").append("<option value='" + _item.D_Value + "'>" + _item.D_Name + "</option>");
});
}
} else {//加载失败
ShowError(data._BackMessage);
return;
}
});
};

2、待选项的数据处理:

 /// <summary>
/// 获取已选项
/// </summary>
/// <returns></returns>
public List<ParamData.HfKeyValueItem> GetSelectedData()
{
//已选项
List<ParamData.HfKeyValueItem> _SelectedData = new List<ParamData.HfKeyValueItem>();
string sqlSelect = string.Format("select * from ({0})T where 1=1 ", _Base_TcCommonSelectROR.MCS_SupplySQL);
if (_Base_TcCommonSelectROR.MCS_SelectSource == "Param" || _Criteria.IsSelectItem == "Y")
{//来源于参数,可能为系统设置来源参数,也可能是数据请求时指定使用传递参数
string _selectItem = GetSelectedItems();
if (!string.IsNullOrEmpty(_selectItem))
{
sqlSelect += string.Format(" and {0} in({1})", _Base_TcCommonSelectROR.MCS_ValueField, _selectItem);
}
else
{
//传递参数为空时说明没有选择数据,清空SQL
sqlSelect = "";
}
}
else if (_Base_TcCommonSelectROR.MCS_SelectSource == "SQL")
{//已选项来源于SQL语句
if (!string.IsNullOrEmpty(_Base_TcCommonSelectROR.MCS_SelectSQL))
{
sqlSelect += string.Format(" and {0} in({1})", _Base_TcCommonSelectROR.MCS_ValueField, _Base_TcCommonSelectROR.MCS_SelectSQL);
}
else
{
throw new HfSystemPlatException("id:81003,系统缺少已选项数据源配置,请联系管理员!");
}
}
else
{
//无已选项,清空SQL
sqlSelect = "";
} //添加排序
if (!string.IsNullOrEmpty(_Base_TcCommonSelectROR.MCS_OrderBy))
{
sqlSelect += string.Format(" order by {0}", _Base_TcCommonSelectROR.MCS_OrderBy);
} //URL参数替换
sqlSelect = HfSystemFrame.ParamData.HfParamReplace.ReplaceKey(sqlSelect, true, true);
if (!string.IsNullOrEmpty(sqlSelect))
{
DataSet dsSelect = HfUtilityFrame.DbUtility.DbHelperSQL.Query(sqlSelect);
if (dsSelect != null && dsSelect.Tables[].Rows.Count > )
{
foreach (DataRow item in dsSelect.Tables[].Rows)
{
_SelectedData.Add(new ParamData.HfKeyValueItem(
Convert.ToString(item[_Base_TcCommonSelectROR.MCS_ValueField]), Convert.ToString(item[_Base_TcCommonSelectROR.MCS_NameField])));
}
}
} return _SelectedData;
}

【文章待续】

(欢迎转载,转载请注明:HFun.快速开发平台)

HFun.快速开发平台(五)=》自定义系统数据选择的更多相关文章

  1. HFun.快速开发平台(二)=》自定义列表实例(请求参数的处理)

    上编描述了自定义列表的基本实现功能,本此记录列表的请求过程. 个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码: /************************************ ...

  2. HFun.快速开发平台(四)=》自定义列表实例(请求参数的处理)

    上编自定义列表描述了自定义列表的基本实现功能,本此记录列表的请求过程. 个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码: /******************************* ...

  3. HFun.快速开发平台(三)=》通用系统用户选择

    系统中用户的选择使用特别多,将该功能统一实现可提升系统效率. 用户的选择实现相对简单,系统中基本都会提供,HFun.快速开发平台中的实现特点主要有: 1.用户的选择分为单用户选择和多用户选择. 2.用 ...

  4. HFun.快速开发平台(二)=》自定义列表实例

    应用系统中数据列表的展现是开发内容之一,实现的方式基本是通过编号具体的访问列表页实现,通过检索条件进行数据源的获取,列字段的描述,还可能会有检索条件的实现,列表数据的导出等功能. 为了将重复工作进行简 ...

  5. HFun.快速开发平台(一)=》简述

    [——使用成熟的技术实现了解的业务,关注面向对象,关注业务领域] 偶然的机会又回到了园子,看到上次的文章已是N年前,洽巧近期正在开发一个小程序,标题定为“快速开发平台”有点夸张,算是给自己定个小目标. ...

  6. 如何提高码农产量,基于java的web快速开发平台之自定义表单开发随笔

    老板 :下班前一定写完? 程序猿:可以,下班前能一定给! 第二天早上上班~~~ 老板:这都第二天了,怎么没写完? 程序猿:我还没有下班呢! 哎!程序猿的痛啊 公司上线的项目有不少销售记录表,又是报价单 ...

  7. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 数据权限增强、范围权限增强

    并不是不想做B\S的管理工具,只是精力实在不够,由于用户权限管理组件是基础组件.所以C\S的也无妨,不会有几个人在乎Oracle,SQLServer是否不b\s的,注重的是功能性能,请大家不要纠结与是 ...

  8. jeesite快速开发平台(五)----用户-角色-部门-区域-菜单-权限表关系

    转自: https://blog.csdn.net/u011781521/article/details/78994904

  9. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 树形选择项目的标准例子

    用成套的现成的方法引导大家开发程序,整个团队的开发效率会很高.例如我们现在有30多个开发人员,若有300个开发人员,这开发工作很容易乱套,我们需要有效的管理维护所有团队的开发工作.把数据结构.通用的组 ...

随机推荐

  1. 搭建Flutter-iOS开发环境

    https://www.jianshu.com/p/b50a92afbef1 1.获取Flutter工程 git clone -b beta https://github.com/flutter/fl ...

  2. Summary on deep learning framework --- Theano && Lasagne

     Summary on deep learning framework --- Theano && Lasagne 2017-03-23 1. theano.function outp ...

  3. Predict Referendum by sklearn package

    Background Last day we talk about Python Basics in Chinese. Today, we will do data analysis with pyt ...

  4. Unity 根据手机陀螺仪,实现流动UI效果

    Unity 根据手机陀螺仪,实现流动UI效果 设置Canvas 模式设置为 Screen Space - Camera 指定Camera 挂载脚本 挂载Target using System; usi ...

  5. 4.3 thymeleaf模板引擎的使用

    参考说明:以下笔记参考来自尚硅谷springboot教学中的笔记! thymeleaf官网docs: https://www.thymeleaf.org/documentation.html 模板引擎 ...

  6. 雷林鹏分享:url中加号引发的错误

    刚发现了博客的一个bug,标签页中一些标签带有空格,在url输出中使用了 urlencode 函数进行处理,导致空格被转换成了加号(+),这时通过url访问时会出现错误: 临时解决方法是在urlcod ...

  7. UML与软件建模:第一次作业(用例图绘制)

    一.小结 用例图是UML用于描述软件功能的图形.用例图包括用例.参与者及其关系,用例图也可以包括注释和结束. 用例图的要素: (1)参与者,即与用例存在交互关系的系统外部实体; (2)用例,用来描述个 ...

  8. python实现汉诺塔问题

    汉诺塔问题可以简单描述成为将a柱子上的圆盘按一定规则借助b柱子完美地复制到c柱子上.现假设有a,b,c三根柱子,a柱子上的圆盘从上到下依次标号为1,2,3,……,n,且为递增状态.规则:每次移动一个盘 ...

  9. vue父子组件的传值总结

    久违的博客园我又回来了.此篇文章写得是vue父子组件的传值,虽然网上已经有很多了.写此文章的目的就是记录下个人学习的一部分.接下来我们就进入主题吧! 在开发vue项目中,父子组件的传值是避免不掉的. ...

  10. 多组图自动无限循环(swiper轮播)

    前两天的一个项目中遇到多组图片无限轮播,当时采用了swiper 但是没有解决让它无限轮播.今天再次尝试了一下发现是自己的样式写错了.今天在这里写一下,为了给自己一个警醒不要犯同样的错误 首先先引入一下 ...