需求是这样的,多个查询条件为空时,帆软是默认查询全部数据的,但是数据量太庞大,会给数据库服务器造成负载过高,资源浪费的情况;
如图所示,四个查询条件,当四个文本框内容为空时,做个alert提示,不让查,至少有一个条件的情况下才让查;
然后绞尽脑汁,后来也百度了一大堆,最终找到两种解决方式:
①SQL定义;
②用JS在查询按钮上写个点击事件;
先介绍第一种:SQL定义
select t.vin, t.keypart_type, t.orignal_label,t.keypart_no
from pk_imes_his_user.tm_qas_keypart_track t
where 1 = 1 ${if(len(vin) != null,
" and t.vin in ('" + replace(vin, "\n", "','") + "')",
"") }
where后面跟 1 = 1 ${if(len(vin) != null,
" and t.vin in ('" + replace(vin, "\n", "','") + "')",
"") }
vin号(第一个文本框)不为空时,执行换行多条件查询,vin号为空时,不查询
下图是点击查询时的效果,有数据就会查,没数据就查不到。不会查询全部;
第二种方式:按钮上的JS点击事件
给“查询”按钮设置个点击事件,JS代码
function check(name){
var val=_g().parameterEl.getWidgetByName(name).getValue();
return val.length>0;
}
if(check('vin')||check('gjjlx')||check('ljh')||check('edua'))
return true;
else
{ alert('至少填写一条内容进行查询');return false;}
这里用到帆软自带的分页函数与控件名称函数
点击查询,数据为空时,会有alert提示;具体情况看需求选择吧。