自己封装的Extjs组件GroupGrid的代码(8) FormatWhere.js

FormatWhere.js 作用是自动生成数据库查询条件


function whereRelation(_fieldName,_fieldValue,_dataType,_relationValue,_operate,_like)
{
   this.fieldName = null;          //字段名称
   this.fieldValue = null;         //字段值
   this.dataType = "string";       //数据类型(默认是字符串型)
   this.relationValue = null;      //关系值
   this.operate = "=";             //运算符(>,<)-------------------------对数值行有效 
   this.like =true;                //是否是模糊查找(默认模糊)------------对字符串有效
  
   if (arguments.length !=0)
   {
      this.fieldName=_fieldName;
      this.fieldValue=_fieldValue;
      this.dataType=_dataType;
      this.relationValue=_relationValue;
      this.operate=_operate;
      this.like=_like;
   }
}

var WhereDataType={
     String : "string",
     Int : "int",
     Decimal : "decimal",
     Float: "float",
     Datatime : "datatime"
}

//whereRelation 数组对象
function FormatWhere(whereRelationArry)
{
    //whereRelation  wr
    this.Like=function(wr){
       if(wr.like)
           return   wr.fieldName + " like '%" + wr.fieldValue + "%'";   
       else
           return   wr.fieldName + " = '" + wr.fieldValue + "'";   
    }
 
    //whereRelation wr
    this.Equal=function(wr){
       return wr.fieldName + wr.operate + wr.fieldValue;
    }
    
    //whereRelation wr
    this.CompareTo=function(wr){
        if (wr.dataType == WhereDataType.String || wr.dataType == WhereDataType.Datatime){
            if (wr.fieldValue != "" && wr.relationValue != "")
                return wr.fieldName + " >='" + wr.fieldValue + "' and  " + wr.fieldName + " <='" + wr.relationValue + "'";
            else if (wr.fieldValue != "")
                return wr.fieldName + " >='" + wr.fieldValue + "'";
            else if (wr.relationValue != "")
                return wr.fieldName + " <='" + wr.relationValue + "'";
            else
                return "";
        }
        else{
            if (wr.fieldValue != "" && wr.relationValue != "")
                return wr.fieldName + " >=" + wr.fieldValue + " and  " + wr.fieldName + " <=" + wr.relationValue;
            else if (wr.fieldValue != "")
                return wr.fieldName + " >=" + wr.fieldValue + "";
            else if (wr.relationValue != "")
                return wr.fieldName + " <=" + wr.relationValue + "";
            else
                return "";
        }
    }
   
    this.getWhereSql=function(){
        var _self=this;
       
        var sb = "";

        var index = whereRelationArry.length;

        var str = "";

        //$.each(whereRelationArry,function(i,wr){      //JQuery    
        Ext.each(whereRelationArry,function(wr,i){      //Ext 
                index--;
                if (wr.fieldValue == ""&&wr.relationValue==null&&wr.like) 
                {          
                    return true;
                }
                if (wr.dataType == WhereDataType.String || wr.dataType == WhereDataType.Datatime)
                {
                    if (wr.relationValue == null)
                        str = _self.Like(wr);
                    else
                        str = _self.CompareTo(wr);
                }
                else if (wr.dataType == WhereDataType.Int || wr.dataType == WhereDataType.Decimal|| wr.dataType == WhereDataType.Float)
                {
                    if (wr.relationValue == null)
                    {
                        str = _self.Equal(wr);
                    }
                    else
                    {
                        str = _self.CompareTo(wr);
                    }
                }
                if (str.trim() == ""&&sb.length!=0)
                          sb=sb.substring(0,sb.length-4);
                else
                          sb=sb+str;
                if (index!= 0)
                {
                   if(sb.trim()!="") 
                          sb=sb+" and ";
                }           
         });
         if (sb.trim().length != 0)
         {
             var stt = sb.split("and");
             if (stt[stt.length - 1].trim() == "")
                  sb=sb.substring(0,sb.length-4);
             if (stt[0].trim() == "")
                   sb=sb.substring(4);
             stt = null;
         }
         else
             return "null";
         return sb;       
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值