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个开发人员,这开发工作很容易乱套,我们需要有效的管理维护所有团队的开发工作.把数据结构.通用的组 ...
随机推荐
- Excel导出采用mvc的ExcelResult继承遇到的问题
ExcelResult继承:ViewResult(只支持excel版本2003及兼容2003的版本)通过视图模板生成excel /// <summary> /// ms-excel视图 / ...
- Linux (麒麟)系统 重启后无法登陆进图形界面
登录图形化界面的时候,会显示GNOME电源管理器没启动等提示信息,会一直卡在登录界面 在启动的时候按ESC或者在登录界面crtl+alt +f3 进入字符终端界面 查看物理存储空间占用信息,可能会有一 ...
- 浏览器输入URL后,HTTP请求返回的完整过程
1.Redirect,跳转 浏览器记录里这个地址永久跳转的新地址,浏览器先去判断需不需要跳转 2.Application cache ,应用缓存 浏览器看请求的资源是否有缓存 3.DNS解 ...
- JavaScript形而上的For循环中的Break
break相当于循环中的GOTO,需避免使用. 下面是一个break使用例子. 找出第一个months小于7的项目. const cats = [ { name: 'Mojo', months: 84 ...
- hadoop搭建笔记(一)
环境:mac/linux hadoop版本:3.1.1 安装特性:非HA 准备: 1. jdk8以上 2. ssh 3. 下载hadoop安装包 配置文件,这里都只有简易配置: 1. core-sit ...
- 【centos7】 Failed to start LSB Bring up/down
今天碰到几个问题: 1. Failed to start LSB Bring up/down 归结一下 百度 的答案: 1). 90% 修改MAC 地址 2).10% 重启 networkmanage ...
- 自身使用的springboot项目中比较全的pom.xml
在学习的时候常建新的项目,mark下商用的jar <dependency> <groupId>org.mybatis</groupId> <artifactI ...
- Unity --- 设置选择的图片的格式
static void Setting(string assetPath, int maxSize, TextureImporterFormat androidFormat, TextureImpor ...
- Apache Hadoop学习笔记一
官网:http://hadoop.apache.org/ 1 什么是Hadoop? Apache™Hadoop®项目开发了用于可靠,可扩展的分布式计算的开源软件. Apache Hadoop软件库是一 ...
- python 学习笔记 5 ----> dive into python 3
字符串 文本:屏幕上显示的字符或者其他的记号 计算机认识的东西:位(bit)和字节(byte) 文本的本质:某种字符编码方式保存的内容. 字符编码:一种映射(显示的内容 ----> 内存.磁盘 ...