|
本帖最后由 liangyongfei 于 2013-8-8 15:57 编辑
1,如果用录入数据进行查询:效果如图:
首先,在w文件拖入一个静态的data组件,设置它的属性columns,为它添加列,‘TName'表示对应您需要过滤的那个列的字段。点击确定。如图:
注意:store-type:simple。auto-new:true.
然后在w文件的一个位置拖入一个input输入框,设置其ref,选择data中对应的列名。如图
然后在w文件中拖入一个trigger按钮,在它的点击事件中写如下代码:- //找到要被过滤数据的data组件
- var data = justep.xbl("dataMain");
- //找到去过滤其他数据的data组件
- var data2 = justep.xbl("filterData");
- // 定义要过滤的ksql的条件语句
- var filter = "";
- //判断是否有需要过滤的数据
- if (data2.getValue('TName').trim() != '') { //模糊过滤字段‘fCGMC’
- filter += " KJ_Reward.fCGMC like '%" + data2.getValue('TName') + "%' and";
- }
- filter += " 1=1";
- //为被过滤数据设置过滤条件
- data.setFilter("filter", filter);
- // 刷新就可以生成过滤后的结果了。
- data.refreshData();
复制代码 2,查询时间段内的数据,效果图如下:
操作过程和上边相似,还是在那个静态data组件属性columns上添加列‘startTime’和‘stopTime’。然后拖入两个input组件,以次设置其ref为
data中对应的列名:
因为我的时间是DataTime类型的,所以要给data添加规则。右击data组件,选择“编辑规则”。选择‘startTime’和‘stopTime’,确定,点级规则设置它的type类型为dataTime。如图:
然后在查询按钮上点击事件添加代码如下:- if(data2.getValue('startTime').trim() != ''){
- var d1 = data2.getValue('startTime');
- d1 = d1.substr(0, 22);
- d1 = d1.replace("T", " ");
- filter += " KJ_Reward.fRewardDate >= stringToDateTime('" + d1 + "') and" ;
- }
-
- if(data2.getValue('stopTime').trim() != ''){
- var d2 = data2.getValue('stopTime');
- d2 = d2.substr(0, 22);
- d2 = d2.replace("T", " ");
- filter += " KJ_Reward.fRewardDate <= stringToDateTime('" + d2 + "') and";
- }
复制代码 可以给它设定默认时间,选择model,在onload事件中添加如下代码
:
//还是找到那个静态的data组件- var data = justep.xbl("filterData");
- var nowDateTimeStr = justep.Date.toString(new Date(),'yyyy-MM-ddThh:mm:ss.000Z');// 今天的时间
-
- var yDate = justep.Date.decrease(new Date(), 1, 'd');
- var yDateStr = justep.Date.toString(yDate, 'yyyy-MM-ddThh:mm:ss.000Z');// 昨天的时间
- data.setValue('stopTime', nowDateTimeStr);
- data.setValue('startTime', yDateStr);
复制代码 3,下拉框实现如图:
流程和上边相似,还是在那个静态data组件属性columns上添加列‘JLType’。然后拖入gridSelect组件,以次设置其ref为data中对应的列名,label-ref也一样设置。data-ref选择下拉框所在的数据集,auto-load-data:true , 如果有别的组件共用这个数据集,那么把independence也设置为true。如图:
点击columns的属性值,添加要在下拉框中显示的列,列名要和bizData2中的要显示列名一致。然后设置value和label的属性值:
然后在查询的点击时间中添加如下代码:- if (data2.getValue('JLType').trim() != '') {
- filter += " KJ_Reward.fJLLB='" + data2.getValue('JLType') + "' and";
- }
复制代码 ,然后就可以过滤查询数据了
最后总的代码为:- //找到要被过滤数据的data组件
- var data = justep.xbl("dataMain");
- //找到去过滤其他数据的data组件
- var data2 = justep.xbl("filterData");
- // 定义要过滤的ksql的条件语句
- var filter = "";
- //判断是否有需要过滤的数据
- if (data2.getValue('TName').trim() != '') { //模糊过滤字段‘fCGMC’
- filter += " KJ_Reward.fCGMC like '%" + data2.getValue('TName') + "%' and";
- }
- // 先判断,在静态data中拿出开始时间,并修改成数据库中的存储格式,然后加到ksql上。
- if(data2.getValue('startTime').trim() != ''){
- var d1 = data2.getValue('startTime');
- d1 = d1.substr(0, 22);
- d1 = d1.replace("T", " ");
- filter += " KJ_Reward.fRewardDate >= stringToDateTime('" + d1 + "') and" ;
- }
- if(data2.getValue('stopTime').trim() != ''){
- var d2 = data2.getValue('stopTime');
- d2 = d2.substr(0, 22);
- d2 = d2.replace("T", " ");
- filter += " KJ_Reward.fRewardDate <= stringToDateTime('" + d2 + "') and";
- }
- if (data2.getValue('JLType').trim() != '') {
- filter += " KJ_Reward.fJLLB='" + data2.getValue('JLType') + "' and";
- }
- filter += " 1=1";
- //为被过滤数据设置过滤条件
- data.setFilter("filter", filter);
- // 刷新就可以生成过滤后的结果了。
- data.refreshData();<div></div>
复制代码 |
|