HFun.快速开发平台(五)=》自定义系统数据选择
本篇介绍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.快速开发平台(五)=》自定义系统数据选择的更多相关文章
- HFun.快速开发平台(二)=》自定义列表实例(请求参数的处理)
上编描述了自定义列表的基本实现功能,本此记录列表的请求过程. 个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码: /************************************ ...
- HFun.快速开发平台(四)=》自定义列表实例(请求参数的处理)
上编自定义列表描述了自定义列表的基本实现功能,本此记录列表的请求过程. 个人比较喜欢对参数进行对象化,方便后续人维护及查看,先上代码: /******************************* ...
- HFun.快速开发平台(三)=》通用系统用户选择
系统中用户的选择使用特别多,将该功能统一实现可提升系统效率. 用户的选择实现相对简单,系统中基本都会提供,HFun.快速开发平台中的实现特点主要有: 1.用户的选择分为单用户选择和多用户选择. 2.用 ...
- HFun.快速开发平台(二)=》自定义列表实例
应用系统中数据列表的展现是开发内容之一,实现的方式基本是通过编号具体的访问列表页实现,通过检索条件进行数据源的获取,列字段的描述,还可能会有检索条件的实现,列表数据的导出等功能. 为了将重复工作进行简 ...
- HFun.快速开发平台(一)=》简述
[——使用成熟的技术实现了解的业务,关注面向对象,关注业务领域] 偶然的机会又回到了园子,看到上次的文章已是N年前,洽巧近期正在开发一个小程序,标题定为“快速开发平台”有点夸张,算是给自己定个小目标. ...
- 如何提高码农产量,基于java的web快速开发平台之自定义表单开发随笔
老板 :下班前一定写完? 程序猿:可以,下班前能一定给! 第二天早上上班~~~ 老板:这都第二天了,怎么没写完? 程序猿:我还没有下班呢! 哎!程序猿的痛啊 公司上线的项目有不少销售记录表,又是报价单 ...
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 数据权限增强、范围权限增强
并不是不想做B\S的管理工具,只是精力实在不够,由于用户权限管理组件是基础组件.所以C\S的也无妨,不会有几个人在乎Oracle,SQLServer是否不b\s的,注重的是功能性能,请大家不要纠结与是 ...
- jeesite快速开发平台(五)----用户-角色-部门-区域-菜单-权限表关系
转自: https://blog.csdn.net/u011781521/article/details/78994904
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 树形选择项目的标准例子
用成套的现成的方法引导大家开发程序,整个团队的开发效率会很高.例如我们现在有30多个开发人员,若有300个开发人员,这开发工作很容易乱套,我们需要有效的管理维护所有团队的开发工作.把数据结构.通用的组 ...
随机推荐
- 搭建Flutter-iOS开发环境
https://www.jianshu.com/p/b50a92afbef1 1.获取Flutter工程 git clone -b beta https://github.com/flutter/fl ...
- Summary on deep learning framework --- Theano && Lasagne
Summary on deep learning framework --- Theano && Lasagne 2017-03-23 1. theano.function outp ...
- Predict Referendum by sklearn package
Background Last day we talk about Python Basics in Chinese. Today, we will do data analysis with pyt ...
- Unity 根据手机陀螺仪,实现流动UI效果
Unity 根据手机陀螺仪,实现流动UI效果 设置Canvas 模式设置为 Screen Space - Camera 指定Camera 挂载脚本 挂载Target using System; usi ...
- 4.3 thymeleaf模板引擎的使用
参考说明:以下笔记参考来自尚硅谷springboot教学中的笔记! thymeleaf官网docs: https://www.thymeleaf.org/documentation.html 模板引擎 ...
- 雷林鹏分享:url中加号引发的错误
刚发现了博客的一个bug,标签页中一些标签带有空格,在url输出中使用了 urlencode 函数进行处理,导致空格被转换成了加号(+),这时通过url访问时会出现错误: 临时解决方法是在urlcod ...
- UML与软件建模:第一次作业(用例图绘制)
一.小结 用例图是UML用于描述软件功能的图形.用例图包括用例.参与者及其关系,用例图也可以包括注释和结束. 用例图的要素: (1)参与者,即与用例存在交互关系的系统外部实体; (2)用例,用来描述个 ...
- python实现汉诺塔问题
汉诺塔问题可以简单描述成为将a柱子上的圆盘按一定规则借助b柱子完美地复制到c柱子上.现假设有a,b,c三根柱子,a柱子上的圆盘从上到下依次标号为1,2,3,……,n,且为递增状态.规则:每次移动一个盘 ...
- vue父子组件的传值总结
久违的博客园我又回来了.此篇文章写得是vue父子组件的传值,虽然网上已经有很多了.写此文章的目的就是记录下个人学习的一部分.接下来我们就进入主题吧! 在开发vue项目中,父子组件的传值是避免不掉的. ...
- 多组图自动无限循环(swiper轮播)
前两天的一个项目中遇到多组图片无限轮播,当时采用了swiper 但是没有解决让它无限轮播.今天再次尝试了一下发现是自己的样式写错了.今天在这里写一下,为了给自己一个警醒不要犯同样的错误 首先先引入一下 ...