pb9.0组合查询!!!求助,顶着有分

linking20 2020-01-11 11:18:56
两个下拉列表控件,ddlb_1是类别,两个值,一个身高,一个体重,0:体重,1:身高,ddlb_2,是性别,一个男一个女,0:男 1:女。
数据窗口的字段是,lb = ddlb_1, xb = ddlb_2,两个字段都是decimal类型的,怎么做到组合查询呢,求助呀,大哥大嫂们,小弟在这里给大家拜个早年了。
...全文
147 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linking20 2020-01-11
好了哥,谢谢
  • 打赏
  • 举报
回复
aolixiaox 2020-01-11
不是string型就不用''号了
  • 打赏
  • 举报
回复
aolixiaox 2020-01-11
dw_1.setfilter("lb='"+ld_lb+"' and xb='"+ld_xb+"'")
改成
dw_1.setfilter("lb="+ld_lb+" and xb="+ld_xb)
  • 打赏
  • 举报
回复
linking20 2020-01-11
因为我的字段是decimal类型的,所以他一直说表达是不匹配,怎么能解决呢,我用了你写的这个,还是说表达式不匹配
引用 3 楼 aolixiaox 的回复:

string ld_lb
string ld_xb

Choose Case ddlb_1.Text
Case "体重"
ld_lb = "0"
Case "身高"
ld_lb = "1"
End Choose

Choose Case ddlb_2.Text
Case "男"
ld_xb = "0"
Case "女"
ld_xb = "1"
End Choose

dw_1.setfilter("lb='"+ld_lb+"' and xb='"+ld_xb+"'")
dw_1.filter()
  • 打赏
  • 举报
回复
aolixiaox 2020-01-11

string ld_lb
string ld_xb

Choose Case ddlb_1.Text
Case "体重"
ld_lb = "0"
Case "身高"
ld_lb = "1"
End Choose

Choose Case ddlb_2.Text
Case "男"
ld_xb = "0"
Case "女"
ld_xb = "1"
End Choose

dw_1.setfilter("lb='"+ld_lb+"' and xb='"+ld_xb+"'")
dw_1.filter()
  • 打赏
  • 举报
回复
linking20 2020-01-11
引用 1 楼 aolixiaox 的回复:
你这个具体情境描述不够清晰,查询是针对retrieve的拉取,还是已经检索到的数据,进行fliter。 1、retrieve的话,在DW设计中添加参数,然后获取ddlb的值传给retrieve函数就可以了

string ls_lb,ls_xb
ls_lb=ddlb_1.text
ls_xb=ddlb_2.text
dw_1.retrieve(ls,lb,ls_xb)
2、filter就拼接filter语句

string ls_lb,ls_xb
ls_lb=ddlb_1.text
ls_xb=ddlb_2.text
dw_1.setfilter("lb='"+ls_lb+"' and xb='"+ls_xb+"'")
dw_1.filter()
是获取到了,然后我拼接filter,说表达式类型要一样 string ld_lb string ld_xb Choose Case ddlb_1.Text Case "体重" ddlb_1.Text = "0" Case "身高" ddlb_1.Text = "1" End Choose Choose Case ddlb_2.Text Case "男" ddlb_2.Text = "0" Case "女" ddlb_2.Text = "1" End Choose ld_lb = ddlb_1.text ld_xb = ddlb_2.text dw_1.setfilter("lb='"+ld_lb+"' andxb='"+ld_xb+"'") if ddlb_1.Text = "0" THEN ddlb_1.Text = "体重" elseif ddlb_1.Text = "1" THEN ddlb_1.Text = "身高" end if if ddlb_2.Text = "0" THEN ddlb_2.Text = "男" elseif ddlb_2.Text = "1" THEN ddlb_2.Text = "女" end if dw_1.filter() 这是我写的
  • 打赏
  • 举报
回复
aolixiaox 2020-01-11
你这个具体情境描述不够清晰,查询是针对retrieve的拉取,还是已经检索到的数据,进行fliter。 1、retrieve的话,在DW设计中添加参数,然后获取ddlb的值传给retrieve函数就可以了

string ls_lb,ls_xb
ls_lb=ddlb_1.text
ls_xb=ddlb_2.text
dw_1.retrieve(ls,lb,ls_xb)
2、filter就拼接filter语句

string ls_lb,ls_xb
ls_lb=ddlb_1.text
ls_xb=ddlb_2.text
dw_1.setfilter("lb='"+ls_lb+"' and xb='"+ls_xb+"'")
dw_1.filter()
  • 打赏
  • 举报
回复
发帖
Web 应用

656

社区成员

PowerBuilder Web 应用
社区管理员
  • Web 应用社区
加入社区
帖子事件
创建了帖子
2020-01-11 11:18
社区公告
暂无公告