起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2555|回复: 12

[结贴] baasdata的filter过滤表达式格式是什么?

[复制链接]

16

主题

118

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
QQ
发表于 2016-4-7 12:23:50 | 显示全部楼层 |阅读模式
或者说那种语言,我可以去查。比如我现在要表达的含义是:val('orderID') =if($model.orderData.val('grID')=Val(this.userID)){$model.orderData.val('orderID')}那么这里的if是用(表达式,真值,假值)还是(表达式?真值,假值)
发表于 2016-4-8 14:15:29 | 显示全部楼层
如果是写一行代码解决,直接复制的方式,就是三目表达式
你是写在什么位置的??
如果是动态设置filter,
那就是data.setFilter('filter',"orderID='"+$model.orderData.val('grID')=data.val('userID') ? $model.orderData.val('orderID'):''+"'")

不知道你是想实现什么逻辑!麻烦说清楚些!!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

16

主题

118

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
QQ
 楼主| 发表于 2016-4-8 14:42:36 | 显示全部楼层
liangyongfei 发表于 2016-4-8 14:15
如果是写一行代码解决,直接复制的方式,就是三目表达式
你是写在什么位置的??
如果是动态设置filter,

我的问题,我不知道怎么了,我甚至照抄外卖的格式,都不对.
我知道我问题,出在表达式格式上面了.
上面的逻辑,调用两个表格,订单表格和评价表格.现在上面的问题已经没有了,因为我把数据库给改了.
可是到了详细页面,不是list,传参进去了吗?
我根据传进来的参数需要过滤。
如果我在BAASDATA,那里添加filter,写的是,userID=:this,userID,不行。
再之后我用setfilter,也不行,代码已经被我删了。
所以我在网上查找KSQL代码格式,如果有给一份。
另外我LIST那块还有问题呢,搜索内容传参,肯定传过来了,但是就是不能筛选。我另外一个帖子写着代码呢,而且我要是用FILTER,端口有就问题了,就jave断点了
回复 支持 反对

使用道具 举报

发表于 2016-4-8 20:06:28 | 显示全部楼层
1697380236 发表于 2016-4-8 14:42
我的问题,我不知道怎么了,我甚至照抄外卖的格式,都不对.
我知道我问题,出在表达式格式上面了.
上面的逻辑 ...

ksql是BeX5 中bizData才会使用的,你不能参考
你就吧setFilter 中生成的字符串当成是 sql语句的 where条件后面的字符串就行可
你想实现什么逻辑  ,sql语句 where条件怎么写,setfilter就怎么写就行!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

16

主题

118

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
QQ
 楼主| 发表于 2016-4-8 21:19:16 | 显示全部楼层
liangyongfei 发表于 2016-4-8 20:06
ksql是BeX5 中bizData才会使用的,你不能参考
你就吧setFilter 中生成的字符串当成是 sql语句的 where条 ...

userID = :this.userID

辛苦了
回复 支持 反对

使用道具 举报

16

主题

118

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
QQ
 楼主| 发表于 2016-4-8 21:27:41 | 显示全部楼层
liangyongfei 发表于 2016-4-8 20:06
ksql是BeX5 中bizData才会使用的,你不能参考
你就吧setFilter 中生成的字符串当成是 sql语句的 where条 ...

我想实现的语句就是过滤和查找。我打细节页点击list页,传参给detail页,我试着用BAASDATA,里面的filter,对数据过滤不行,我现在setfilter也不行,到细节页就谷歌死机。语法应该没有错,因为我的list的setfilter已经实现查找功能了。
  1. Model.prototype.modelParamsReceive = function(event){
  2.             if (this.params != undefined) {
  3.                    this.userID = this.params.userID;
  4.                 }
  5.                 this.comp('gongrenData').setFilter("filter1","gongren.userID = '%" + this.userID + "%'");
  6.                 this.comp('gongrenData').refreshData();
  7.         };       
复制代码


这个语法没有显示错误,但是到谷歌浏览器就死机。

  1. Model.prototype.modelParamsReceive = function(event){
  2.             if (this.params != undefined) {
  3.                    var userID = this.params.userID;
  4.                 }
  5.                 this.comp('gongrenData').setFilter("filter1","gongren.userID = '%" + userID + "%'");
  6.                 this.comp('gongrenData').refreshData();
  7.         };       
复制代码


这个代码给我报的是,userID 超范围了
回复 支持 反对

使用道具 举报

发表于 2016-4-11 11:20:52 | 显示全部楼层
1697380236 发表于 2016-4-8 21:27
我想实现的语句就是过滤和查找。我打细节页点击list页,传参给detail页,我试着用BAASDATA,里面的filter ...

首先你debugger 调试看看   this.userID 是否有值

如果是使用“=”  就表示这两个值是绝对相等的!!我看你又使用了%  应该就是匹配查下吧
其次,代买应该这样写的!
var data = this.comp('gongrenData');
data..setFilter("filter1","userID  like  '%" + this.userID + "%'");
data.refreshData();

或者是
var data = this.comp('gongrenData');
data..setFilter("filter1","userID  = '" + this.userID + "'");
data.refreshData();
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

16

主题

118

帖子

265

积分

中级会员

Rank: 3Rank: 3

积分
265
QQ
 楼主| 发表于 2016-4-11 11:35:18 | 显示全部楼层
liangyongfei 发表于 2016-4-11 11:20
首先你debugger 调试看看   this.userID 是否有值

如果是使用“=”  就表示这两个值是绝对相等的!!我 ...

两个我都用了,代码应该没有错,因为在列表页查找,实现了。关键是到详细页,谷歌浏览器就崩溃。方法一样。

所以我现在想的办法是,列表页用动态数据,详细页用的是,静态数据。没有死机。但是toJson不是一个函数。所以我又变成单独一个一个的赋值,想尽办法,传参到细节页的静态数据,结果现在谷歌浏览器又崩溃了。
回复 支持 反对

使用道具 举报

56

主题

370

帖子

963

积分

高级会员

Rank: 4

积分
963
QQ
发表于 2016-4-11 13:38:50 | 显示全部楼层
liangyongfei 发表于 2016-4-11 11:20
首先你debugger 调试看看   this.userID 是否有值

如果是使用“=”  就表示这两个值是绝对相等的!!我 ...

关于过滤条件,我有个问题想请教版主。
查了一下,给data加过滤好像有两种方法:
1、
userData.filters.setVar("fPhoneNumber", phoneInput);
userData.filters.setVar("fPassWord", passwordInput);

2、
userData.setFilter("Idfilter", "fPhoneNumber='"+phoneInput+"' and fPassWord = '"+passwordInput+"'");

但是我运行的结果是,第一种方法没有生效,第二种方法是好的。为啥?
回复 支持 反对

使用道具 举报

发表于 2016-4-11 19:31:34 | 显示全部楼层
负暄 发表于 2016-4-11 13:38
关于过滤条件,我有个问题想请教版主。
查了一下,给data加过滤好像有两种方法:
1、

请参考API 文档,搜下 setFilter

data.setFilter('filter2',"SA_OPPerson.sCode = peratorCode() or SA_OPPerson.sCode = :code");
    //给变参code赋值
    data.filters.setStringVar("code","code_abc");

这个应该属于 预处理过滤!

你就直接使用第二种方式就行了!!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-24 00:57 , Processed in 0.059189 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表