模块管理常规功能自定义系统的设计与实现(15--进一步完善"省份"模块)

“省份“模块的进一步完善

上面几节讲了一些导入数据,图表的功能,在说明导出功能之前,先把模块完善一下。可以完善的地方有:

1.给面积,人口,GDP加上单位;

2.GDP的文字写错了,写与GPD了,把他改正过来;

3.设置”所属区域“字段,可以进行分组;

4.设置”记录明细“中显示的字段,可以在右侧显示当前选中记录的明细。

由于本系统是全解释配置的,因此每一个模块的名称,权限,每个字段的字段名,单位(比如面积是万平方公里),是否可以修改等等属性全是自由设置。所有的grid列和form样式,图表,导航,可分组字段的定义,以后数据的多条记录导出和单条记录导出,都是自定义的。当前还只有一个模块,所有的定义都是比较简单的,等到模块一多,定义会更加复杂。还有综合查询,也是完全自定义的。设置的过程这里不贴图了,以前小节里面有过修改字段和截图了,哪些可以修改可以参考一下。

下面看一下修正结束后的模块的样子:

这样看起来作为一个单个模块的功能已经比较饱满了。还有什么需要改进的地方,请跟贴讨论,多谢。

加入了单位以后,form 窗口也需要重新展示一下。

数据筛选:在功能栏里有一个筛选的输入框,这个输入框中输入的筛选条件的作用范围是当前grid的所有字段。比如你输入一个“东”,查找到的记录如下图。

这里我贴一下sql语句中的where子句。

   where
        (
            _t7010.tf_provinceId like ‘%东%‘
            or  _t7010.tf_name like ‘%东%‘
            or  _t7010.tf_shortname like ‘%东%‘
            or  _t7010.tf_district like ‘%东%‘
        ) 

这里会判断筛先条件如果是字符,那么就对当前grid 的所有字符字段加上条件。

如果录入了一个2012,则会对所有的字符和数值,日期型的加上条件。sql 语句 where 子句如下

    where
        (
            _t7010.tf_provinceId like ‘%2012%‘
            or  _t7010.tf_name like ‘%2012%‘
            or  _t7010.tf_shortname like ‘%2012%‘
            or  _t7010.tf_district like ‘%2012%‘
            or  _t7010.tf_area=2012    //数值字段
            or  _t7010.tf_numberOfPeople=2012    //数值字段
            or  _t7010.tf_GDP=2012     //数值字段
            or  (    //因为输入了4位数,判断是年份,
                year(_t7010.tf_createDate)=2012
            )
        ) 

下面是一个输入了 ‘2012-07’的sql where 子句

    where
        (
            _t7010.tf_provinceId like ‘%2012-07%‘
            or  _t7010.tf_name like ‘%2012-07%‘
            or  _t7010.tf_shortname like ‘%2012-07%‘
            or  _t7010.tf_district like ‘%2012-07%‘
            or  _t7010.tf_GDP=2012-07          //这里不对了,发现了一个bug 要修正一下
            or  (
                year(_t7010.tf_createDate)=2012
                and month(_t7010.tf_createDate)=07      //这里比较年份和月份了
            )
        ) 

对于录入的数据作各种判断来生where 子句,可以根据用户的需求和业务需求来增加,比如说用 ‘,‘号分隔,可以并列的条件,用空格分隔二个必须满足的条件等等。查询的时候不允许输入单引号,要防止SQL注入还要做一些工作。

也可以对每个字段附加条件,这个我加在综合查询里面了,模块里没有加入。

下一节介绍数据导出的种种方式。

模块管理常规功能自定义系统的设计与实现(15--进一步完善"省份"模块),码迷,mamicode.com

时间: 2024-10-13 16:45:26

模块管理常规功能自定义系统的设计与实现(15--进一步完善"省份"模块)的相关文章

模块管理常规功能自定义系统的设计与实现(36--终级阶段 综合查询[3])

综合查询(3)--查询条件的设置2 不仅仅对于模块才有这样方便的条件选择方式,对模块的字段也可以设置.例如对于"省份"中有个字段是"所属区域",这个字段不是一个manyToOne字段,而是一个字符串字段,里面就是存着"东北地区"."华北地区"等等这样的具体的字符串值.对于这样的字段也很容易将其放在toolbar上供选择.在模块字段中找到"所属区域"这个字段,修改字段的属性,让这个字段可以加到综合查询的too

模块管理常规功能自定义系统的设计与实现(33--权限设计[3])

权限设计(3) 三.字段的只读权限.对于可以修改记录的操作员,可以进一步限制哪些字段对于他是不可修改的.这个功能很少用到,是用户提出来的,我就顺便加了进去.实现这个功能也很简单建立只读字段角色,然后加入模块的字段,最后再将角色加到操作员上即可.前台在解释生成edit form 的时候,将这个字段的只读属性置为true即可.后台Hibernate在新增或保存的时候,可以把只读字段过滤掉,不能保存或不能修改即可. 四.字段的可视权限.有时候某些字段你不希望被某些群组的操作员看到,那么就设置一个隐藏字

模块管理常规功能自定义系统的设计与实现(28--多个模块之间的关联[4])

多个模块之间的关联(4) 前面搭建了客户以及客户父模块的一个分支,另一个分支是产品线,还有一个是业务员,然后这三条线归并到订单之上. 前面我贴了我要搭建系统的一张图,现在贴一下数据库的表和其之间的关系情况. 上图中表和我设计的简易销售管理系统是完全一致的.再看一下的模块图,稍微记下下其中的关系,对于看懂下面的内容很有必要. 对于业务员,产品,订单三条分支我建立的过程就不介绍了.现在来看看架构好的菜单: 再看看加好的各个模块的页面: 1.部门和业务员: 2.商品类别 3.商品 4?订单 订单明细

模块管理常规功能自定义系统的设计与实现(52--功能更新[2] 对百分比字段的操作)

功能更新(2)  对百分比字段的操作 百分比数据,或者是比率数据是一个比较难处理的字段,难点并不在于单条记录之中,而是在于汇总和分类汇总的时候. 先来看看我系统中的一个模块中的一个比率字段: 上图中的  已支付比例,这个字段是  已支付金额 / 结算金额,这个字段在此合同模块中可以作为一个计算字段来保存在数据库中,甚至可以不保存在数据库中,直接在bean里作为一个计算的属性. 现在问题就来了,如果要计算所有合同的已支付比例,那么就不是简单加起来的问题了,要把分子和分母分别加起来再除才会得到总计的

模块管理常规功能自定义系统的设计与实现(29--多个模块之间的关联[5])

多个模块之间的关联(5) 系统全部架构好了,下面来看看一个很远的关系,"省份","订单"之间的关联.在省份模块里显示该省的订单的个数以及金额和收款情况.跟前面的设计一样,给省份增加"附加字段". 然后把选入的字段加入到 grid 当中. 再来看看子模块市下面的菜单: 下面显示一下选择了订单菜单项的界面. 其他导航 以上为模块间关系的一个例子.上面有个缺点就是,我要看某个省份2013年度的订单汇总,在省份模块里就没有办法做到,这个问题放到以后去解决

模块管理常规功能自定义系统的设计与实现(23--二个模块之间的关联[1])

"省"."市"二个模块之间的关联的操作(1) 一. "市"模块定义好了,我们先来新增1个市,看看和"省"的关联操作. 上面显示了"市"的模块界面,在导航栏中为省份的导航,我们看到只有"江苏省"一个,其他的在哪里呢. 一个模块的父模块的导航有一个选项,叫"显示无记录的项目",此选项默认不选中,也就是说省里面还没有市的话,那个省将不放在导航列表中,看下图. 二.记录拖放操

模块管理常规功能自定义系统的设计与实现(22--第二个模块的加入)

模块"市"的设计与加入 现在重复加入"省"模块的过程,来加入市的模块. 1.建立数据表City CREATE TABLE [dbo].[City]( [tf_cityId] [nvarchar](4) COLLATE Chinese_PRC_CI_AS NOT NULL, [tf_provinceId] [nvarchar](2) COLLATE Chinese_PRC_CI_AS NOT NULL, [tf_name] [nvarchar](50) COLLATE

模块管理常规功能自定义系统的设计与实现(37--终级阶段 综合查询[4])

综合查询(4)--查询条件的设置3 这节来看看日期字段如何设置查询条件.我对日期字段做了一个分类,使其可以按年,年季,年月,年月日的几种方式来设置条件.另外每一个模块可以设置一个日期字段,当该模块作为查询的基准模块时,在条件设置toolbar 上第一个菜单即是日期选择菜单,选择的值将会作为该日期字段的条件.例如对于"订单"模块,为其设置了日期字段为"tf_date". 在综合查询的模块中显示为以下: 上图是选中了基准模块为"订单"时,查询期间选择

模块管理常规功能自定义系统的设计与实现(24--二个模块之间的关联[2])

父子模块之间关联操作(2) 上一节介绍了子模块中对父模块的一些相关操作.这一节来看看父模块中对子模块可以进行什么样的操作. 一.进入子模块的时候,限定父模块值.选择一个"省"记录,查看省下面的所有市的记录. 在选择了"江苏省"记录之后,按toolbar上面的"市",会进入市模块的界面.(在前一节的基础上,我又给河北省和浙江省增加了市,在下面的界面中将会看不到) 二.加入子模块的记录和聚合字段.上节中介绍了可以将父模块中的字段加入到子模块的grid

模块管理常规功能自定义系统的设计与实现(21--第二阶段设计目标)

第二阶段设计目标 前面的章节讲了建立单个模块的各种功能,从现在开始要加入若干个具有关联的模块,使其协同工作.我设计了一个简易的销售管理系统,系统的结构如下图所示,从本节开始将逐步的搭建此系统. 在上图中,各模块之间都能通过一定的路径产生联系,而具有关联的二个模块具有直接的关系,例如省是市的父模块,市是省的子模块:客户单位是市的子模块也是省的子模块.这种上下级关系将会是处理的重点.各模块间的关系要明确,不能出现关系不明确或者循环引用的模块,那样权限的设置将会有问题. 例如有如下模块结构: 在上图中