setfilter的问题?急!在线等候

YoziDream 2002-10-30 11:35:17

下面是我的代码:我想不通哪儿有错,可是执行时却报expression is not valid


//定义参数: 查询条件综合结果
string LookForCondition
//定义参数:要查询的列 
string lookforitem1,lookforitem2,lookforitem3
//定义参数: 要查询的符号
string lookforhow1,lookforhow2,lookforhow3
//定义参数: 要查询的内容
string lookforwhat1,lookforwhat2,lookforwhat3
//定义参数: 不同查询条件的组合操作符号
string lookforoperator1,lookforoperator2

//查询符号的选择
lookforhow1=ddlb_4.text
lookforhow2=ddlb_5.text
lookforhow3=ddlb_6.text

//综合条件1的选择
if ddlb_7.text="与" then
lookforoperator1="and"
elseif ddlb_7.text="或" then
lookforoperator1="or"
elseif ddlb_7.text="非" then
lookforoperator1="not"
end if

//综合条件2的选择
if ddlb_8.text="与" then
lookforoperator2="and"
elseif ddlb_8.text="或" then
lookforoperator2="or"
elseif ddlb_8.text="非" then
lookforoperator2="not"
end if

//查询子段1和查询内容的选择
if ddlb_1.text="出生年月" &
or ddlb_1.text="提职时间" &
or ddlb_1.text="职批时间" &
or ddlb_1.text="工作时间" &
or ddlb_1.text="进院时间" &
or ddlb_1.text="职称时间" &
or ddlb_1.text="工龄" &
or ddlb_1.text="原教龄" &
or ddlb_1.text="年龄" &
or ddlb_1.text="工资" then
lookforitem1=ddlb_1.text
lookforwhat1=sle_1.text
else
lookforitem1=ddlb_1.text
lookforwhat1=""+sle_1.text+""
end if

//查询子段2和查询内容的选择
if ddlb_2.text="出生年月" &
or ddlb_2.text="提职时间" &
or ddlb_2.text="职批时间" &
or ddlb_2.text="工作时间" &
or ddlb_2.text="进院时间" &
or ddlb_2.text="职称时间" &
or ddlb_2.text="工龄" &
or ddlb_2.text="原教龄" &
or ddlb_2.text="年龄" &
or ddlb_2.text="工资" then
lookforitem2=ddlb_2.text
lookforwhat2=sle_2.text
else
lookforitem2=ddlb_2.text
lookforwhat2=""+sle_2.text+""
end if

//查询子段3和查询内容的选择
if ddlb_3.text="出生年月" &
or ddlb_3.text="提职时间" &
or ddlb_3.text="职批时间" &
or ddlb_3.text="工作时间" &
or ddlb_3.text="进院时间" &
or ddlb_3.text="职称时间" &
or ddlb_3.text="工龄" &
or ddlb_3.text="原教龄" &
or ddlb_3.text="年龄" &
or ddlb_3.text="工资" then
lookforitem3=ddlb_3.text
lookforwhat3=sle_3.text
else
lookforitem3=ddlb_3.text
lookforwhat3=""+sle_3.text+""
end if

//查询条件的综合
if ddlb_1.text="" or ddlb_4.text="" then
//用户没有输入查询条件
messagebox("哈哈","请输入查询条件")
elseif ddlb_2.text="" or ddlb_5.text="" then
//用户输入1查询条件
lookforcondition=lookforitem1+lookforhow1+lookforwhat1
elseif ddlb_3.text="" or ddlb_6.text="" then
//用户输入2查询条件
lookforcondition=lookforitem1+lookforhow1+""+lookforwhat1+""+lookforoperator1 &
+" "+lookforitem2+lookforhow2+""+lookforwhat2+""

else
//用户输入3查询条件
lookforcondition=lookforitem1+lookforhow1+""+lookforwhat1+""+lookforoperator1 &
+" "+lookforitem2+lookforhow2+""+lookforwhat2+""+lookforoperator2 &
+" "+lookforitem3+lookforhow3+""+lookforwhat3+""
end if

//设置过滤器
//dw_1.setfilter(lookforcondition)
//过滤数据窗口
dw_1.filter()
//取得符合条件的记录
dw_1.retrieve()
...全文
56 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
YoziDream 2002-10-31
  • 打赏
  • 举报
回复
现在对字符类型的字段能够成功了
对于date、integer的还是有错误指教啊!!
prebill 2002-10-31
  • 打赏
  • 举报
回复
integer类型如下:
在该字段变量左边加" int(" 右边加") "
date 类型:
在该字段变量左边加" string(" 右边加") "

当然在做这之前你要有判断该字段是何种类型的条件语句:
ls_column_type=left(dw_n.describe("列名"+".coltype),3)
if ls_column_type='int' then
....
elseif ls_column_type='dat' then
....
end if


pufan 2002-10-30
  • 打赏
  • 举报
回复
你filter前messagebox一下表达式看看有什么毛病.

610

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧