系统基础模块之通用字典项目管理

简介:

我们在很多系统中,往往需要维护很多字典项目,一般的字典项目包含有一个大类名称、字典项目名称、字典值、排序、编辑者、编辑时间等字段,这些内容往往大同小异,如在车辆管理中,我们可能需要维护:车辆类型、车辆品牌、车辆用途、路途类别、用车评价、车辆状态等等信息,这些是很简单的数据,用来给业务功能使用的,是一个下拉列表形的数据,如果我们为每个这样的简单类型都创建一个表的话,那么有以下坏处:

 

1)  如果业务模块很多,就会产生很多这样的表,看起来不雅,维护也不方便,增加工作量。

2)  会产生很多页面代码(你需要维护界面内容展示和录入),也是看起来不雅,不方便维护,增加工作量。

3)   代码中调用处理也不好,记不住哪个是具体的字典信息了,太多。

以上总结一句话,就是做重复工作,就算有一键生成代码的工具,也是不好的。

如果采用一个公用的字典管理模块能够解决以上问题,那么整个世界就清净了,一句话,简单。

好,那我们看看如何实现以上功能的。首先看看表的设计。

字典大类DictType表(就是按业务分类的意思,如上面的车辆管理是一类,可能还有飞机管理之类的,呵呵)

 

 字典数据项目DictData表,就是指定业务下有多少个字典项目,每个项目下面的名称和对应的值是什么,排序是什么等信息。

 

对这两个表生成相应的处理页面如下所示。(第一个图是大类管理、当点击字典类型名称进行指定类型的字典项目管理,也就是下面第二个图。

 完成了这个字典大类和字典明细项目的基本信息管理后,今后只要有新的需要,之需要增加项目的大类和具体的业务字典项目即可。之前我的文章有介绍,整个平台的菜单是动态配置的,因此,我们在业务子菜单中增加相应的菜单管理具体的项目即可。


 上面我们看到,具体字典大类下的明细字典项目,我们只需要给出相应的连接即可,连接有一个TypeID就是具体的类型ID,根据这个ID,我们就知道目前的管理类别是什么了。

 

 这样页面的字典信息管理完成了,那么我们在具体的项目中如何使用它呢,看了下面的代码就会觉得很简单了。

 其实字典项目的使用无非有两个,一个是根据大类获取对应的下拉列表项目,一个根据制定的项目获取对应的字典值。如下面两个函数就是典型的应用。

         ///   <summary>
        
///  获得选择处理人
        
///   </summary>
        
///   <returns> ListItem[] </returns>
         public   static  ListItem[] GetListItem_MaySelProc()
        {
            
return  SystemCommon.GetDictByDictType( " 选择处理人 " );
        }

        
///   <summary>
        
///  转换选择处理人的名称
        
///   </summary>
        
///   <returns></returns>
         public   static   string  GetMaySelProcString( string  intSelectProc)
        {
            
return  BLLFactory < DictData > .Instance.GetDictName( " 选择处理人 " , intSelectProc);
        }

 具体调用的业务类部分代码如下所示:

         ///   <summary>
        
///  根据字典类型名称获取所有该类型的字典列表集合(Key为名称,Value为值)
        
///   </summary>
        
///   <param name="dictType"> 字典类型名称 </param>
        
///   <returns></returns>
         public  Dictionary < string string >  GetDictByDictType( string  dictTypeName)
        {
            IDictData dal 
=  baseDal  as  IDictData;
            
return  dal.GetDictByDictType(dictTypeName);
        }
                
        
///   <summary>
        
///  根据字典类型名称和字典Value值(即字典编码),解析成字典对应的名称
        
///   </summary>
        
///   <param name="dictTypeName"> 字典类型名称 </param>
        
///   <param name="dictValue"> 字典Value值,即字典编码 </param>
        
///   <returns> 字典对应的名称 </returns>
         public   string  GetDictName( string  dictTypeName,  string  dictValue)
        {
            IDictData dal 
=  baseDal  as  IDictData;
            
return  dal.GetDictName(dictTypeName, dictValue);
        }

剩下的部分就是框架代码的部分了,根据一定的条件拿到对应的列表数据操作。这里不再赘述。 如果需要了解业务层和数据访问层的具体代码,可以和我联系,或者自己实现也不是难事。

本文只是提供了一个解决的思路,相信各位大牛如要实现上面的功能也是小Case的了。 

本文转自博客园伍华聪的博客,原文链接:系统基础模块之通用字典项目管理,如需转载请自行联系原博主。



目录
相关文章
|
10月前
|
项目管理
解析PMP项目组合管理
项目管理专业人士都知道,PMP(项目管理专业人员)认证是一个广泛认可的资格,它强调了在项目管理中的最佳实践和标准。然而,PMP涉及的不仅仅是独立项目的管理,还包括了项目组合的管理。在本文中,我们将深入探讨PMP项目组合管理的重要性、原则和关键概念。
|
2月前
|
存储
平台设计-字典管理
先定义两个概念:字典类和字典项。
|
2月前
|
测试技术 API 数据格式
5、软件产品集成过程——所有表集合
5、软件产品集成过程——所有表集合
36 0
|
2月前
【突破常规:让函数规范成为注目的亮点】(上)
【突破常规:让函数规范成为注目的亮点】
|
2月前
【突破常规:让函数规范成为注目的亮点】(下)
【突破常规:让函数规范成为注目的亮点】
|
11月前
|
机器学习/深度学习 监控 算法
转:蝶形算法在文档管理软件中的运用包含哪些具体优势
蝶形算法,也称为快速傅里叶变换(FFT),是一种用于计算序列的离散傅里叶变换的数学算法,它在信号处理、图像处理和控制系统中有着广泛的应用。
82 0
|
监控 架构师 安全
「应用组合管理」应用程序投资组合管理的权威指南
「应用组合管理」应用程序投资组合管理的权威指南
|
数据采集 存储 缓存
字典服务的设计与管理
在字典服务中提供的枚举值,根本目的是为了确保数据值的统一性,尽可能的避免同一个信息用两种方式描述。
601 0
字典服务的设计与管理
|
前端开发 测试技术
|
机器人 开发工具 Python
阿里云RPA(机器人流程自动化)干货系列之十一:编码开发模块初探
导读:本文是阿里云RPA(机器人流程自动化)干货系列之十一,从本篇开始我们介绍采用编码模式开发一个简单的RPA应用,编码模式适用于有代码开发基础的同学,可以大大提高RPA流程的开发效率。 一、 编码开发介绍 阿里云RPA开发模式有可视化开发和编码开发两种模式,在《阿里云RPA(机器人流程自动化)干货系列之七:编写第一个RPA应用(可视化模式)》,编码开发模式采用Python语言,在客户端新
3846 0

热门文章

最新文章