关于动态实现自定义查询条件的方案

     

  A---双击打开,查询条件选择窗口(下图),本来考虑用DDW显示(再考虑)

  B---根据A选择类型,过滤语法,A改变后会自行改变。

  C---根据A类型过滤语法,取值方式不一样

  D---联结方式,目前以 AND OR为主。

    
  A---设计思路

  有系统表显示所有表及列名信息(A表,用来生成上图中双击打开TV视图的所有数据源)另有一张表保存指定查询查询类型(B表,即保存所有查询条件,如查询合同汇总执行情况、查询合同明细执行情况,查询订单执行情况等,可以用TV实现视图管理)将A表与B表组合,得到当前操作的查询可显现哪些列名信息,B表中有增加过滤语法字段,关联到系统语法生成器中,如果有语法过滤,则在输入值后DW区中会转化为正确的查询语句。如"u_dj_hts.nal > 200 " 为原语句,增加过滤语法生成器则显示成"u_dj_rkds.ihts_id in(select iid from u_dj_hts whereu_dj_hts.nsl > 200 )"这便是有语法过滤器的作用。

  这里面B表记录一定会多于A表,A表不会重复,但B表会重复。

  B---设计思路

    查询条件:

   1、日期型   >  <  <>  =

   2、数值型   >  <  <>  =

   3、字符型   = like

   4、下拉窗口选择型   列名 =  选择结果

    如果是下拉窗口选择,参考参数管理实现方法。

   5、特殊情况的过滤方式,即多条件过滤方式

     

   当类型为此类型时,双击打开此窗口,没有选择任何数据不能返回值!

   注:再考虑有没有单选情况,如果有,也考虑是不是出现如同5的实现方式。

  C---值

   根据A选择列名后类型不同,分别显示日期,数值,字符型(可输入)下拉结果显示(不可输入字符型)

  D---联结方式

   1、AND     上一行条件与下一行条件均满足 默认条件

   2、OR      上一行与本行只需一个满足

   注:最后一行不显示此方式,增加新一行条件才会显示。

  E---行判断语法(考虑语法正确显示白色底,不正确显示绿色底)

   ABCDLW输入是否正确,正确 = 0 ,不正确等于1

   例 AND 在最后行一定没有。

  F---行检索语法  自动生成加上系统的过滤语法。

  注:在DW区显示完成后,在条件查询窗口生成语法按钮则生成语法。

  1、控制总的语法长度

  2、每个自定义条件查询均有汇总生成语法,总的汇总语法与DW区语法汇总生成最终语法

  3、查询条件生成窗口可调试显示错误语法。

 

  后记:自定义查询条件为系统集成度很高的日常使用控件,设计非常复杂,可能需要增加多张表和系统存储过程,具体实现随开发进度会有所改变。

       来源:http://blog.163.com/jxy_joss/blog/static/4897530120079724355976/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值