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

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

综合查询(2)--查询条件的设置1

        上一节介绍了如何选择查询字段,这一节来看看如何设置查询条件。对于这个销售管理系统中的“订单”模块而言,可以设置的查询条件可以想到的有:需要按业务员查询、按产品查询、按产品分类查询,按年度、月度等的日期查询,再而可以按市、按省、按省的所属区域、按客户的所属行业和等级来查询。对于以上按照模块父模块相关信息来设置条件的方法,设计得也是非常简单。在上一节介绍中,在toolbar中有一个“部门”,是用来设置部门条件的。现在我们来看看如何加入一个模块,使其可直接设置条件。

        比如我现在要根据“客户单位”进行查询,需要在toolbar中将“客户单位”加进来,那么我只要在模块管理中,选中“客户单位”,修改一个属性即可。

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


        设置好以后,刷新网页,进入综合查询,界面如下:


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


        可以看到上图中在toolbar中加入了一个“客户单位”的按钮,按下之后,就可以选择客户单位。


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


        上图中每一个客户的条件是“or”,部门和客户之间的条件为and.


        看一下生成的sql 的where子句。

    where
        (
            _t9011.tf_departmentId like '001030%'   //部门
            or _t9011.tf_departmentId like '001020%'
        ) 
        and _t6010.tf_customerId in (
            '1','2','3','4','5'    //客户
        )

        “客户单位”的编码是不分级,再来看看行业这个模块,这个模块是分级的。先把“行业”加入到条件设置toolbar。


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


        按下行业按钮。


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


        综合查询的界面如下(下图中我又选了一个制造业)。


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


        上图可以看出,经过三个条件的约束,在此订单明细作为基准模块的时候,一共有2个订单,6条订单明细。


        再来看看条件grid中的“记录数”的相关信息,第一条“部门”的记录数为25,表示选中了这二个部门以后订单明细有25条。第二个客户单位后的记录数10表示,在上面的25条之中,再选择了5个客户单位后,订单明细为10条,第三个记录表示是在上面10条之中再选择了这些行业的单位,一共有6条订单明细记录。

        上述的三个条件记录是可以互换位置的,只要用鼠标选中一行,然后拖到另一行上面就可以了,现在我把三个条件的记录改为行业,客户单位,部门,来看看结果。


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


        再改变一下,再看看截图

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


        来看看现在的sql where 子句


    where
        _t6010.tf_customerId in (
            '1','2','3','4','5'   //客户
        ) 
        and (   //行业
            _t7016.tf_tradeId like '10%' 
            or _t7016.tf_tradeId like '1106%' 
            or _t7016.tf_tradeId like '1105%' 
            or _t7016.tf_tradeId like '1104%' 
            or _t7016.tf_tradeId like '1103%' 
            or _t7016.tf_tradeId like '1102%' 
            or _t7016.tf_tradeId like '12%'
        ) 
        and (
            _t9011.tf_departmentId like '001030%' //部门
            or _t9011.tf_departmentId like '001020%'
        )