回 帖 发 新 帖 刷新版面

主题:求教高手,我的代码哪里出错了!!!!!!!

if not empty(thisform.pageframe1.page1.expression1.value)
exprs=thisform.pageframe1.page1.expression1.value
select * from 表1 where &exprs into cursor temp5
else
wait window"没有指定任何条件!"nowait
wait window"将显示全部数据"nowait
endif
thisform.pageframe1.page2.grid1.recordsourcetype=1
thisform.pageframe1.page2.grid1.recordsource="temp5"
thisform.pageframe1.page2.grid1.columncount=14
thisform.pageframe1.page2.grid1.column1.header1.caption="学号"
thisform.pageframe1.page2.grid1.column2.header1.caption="姓名"
thisform.pageframe1.page2.grid1.column3.header1.caption="性别"
thisform.pageframe1.page2.grid1.column4.header1.caption="出生日期"
thisform.pageframe1.page2.grid1.column5.header1.caption="班号"
thisform.pageframe1.page2.grid1.column1.width=50
thisform.pageframe1.page2.grid1.column2.width=70
thisform.pageframe1.page2.grid1.column3.width=50
thisform.pageframe1.page2.grid1.column4.width=80
thisform.pageframe1.page2.grid1.column5.width=70

回复列表 (共5个回复)

沙发

你想没想一下exprs的值不是合法表达式时怎么办,我想错误就出在这里!

板凳

3 楼

with thisform.pageframe1
if empty(.page1.expression1.value)
  wait window"没有指定任何条件!所以将显示全部数据" timeout 2
  select * from 表1 into cursor temp5    &&这是我加的
else
  exprs=.page1.expression1.value
  select * from 表1 where &exprs into cursor temp5
endif
endwith
with thisform.pageframe1.page2.grid1
.recordsource=""
.recordsource="temp5"
……

4 楼


exprs的值-表达式可能有问题,能不能帮我看一下...控制五个文本匡生成的表达式

exps=".t."
IF not empty(thisform.pageframe1.page1.txtno.value)
    exps=exps+'and n="'+alltrim(thisform.pageframe1.page1.txtno.value)+'"'
ENDIF
IF not empty(thisform.pageframe1.page1.txtname.value)
    exps=exps+'.and."'+alltrim(thisform.pageframe1.page1.txtname.value)+'"$name'
ENDIF
IF not empty(thisform.pageframe1.page1.txtsex.value)
    exps=exps+'and s="'+alltrim(thisform.pageframe1.page1.txtsex.value)+'"'
ENDIF
IF not empty(thisform.pageframe1.page1.txtclass.value)
    exps=exps+'and c="'+alltrim(thisform.pageframe1.page1.txtclass.value)+'"'
ENDIF
IF not empty(thisform.pageframe1.page1.txtbirthday.value)
    exps=exps+'.and.b={'+alltrim(thisform.pageframe1.page1.txtbirthday.value)+'}'
ENDIF
IF len(exps)>10
    exps1=subs(exps,9)
    thisform.pageframe1.page1.expression1.value=exps1
ENDIF

5 楼

对你的表达式提点意见:
1)exps=".t."多余。因为你在后面的表达式中使用 and ...
2)生日部分的表达式有误,似乎类型不匹配,修改如下:(因为看起来txtbirthday的类型是字符型)

IF not empty(thisform.pageframe1.page1.txtbirthday.value)
    exps=“b=CTOD('”+alltrim(thisform.pageframe1.page1.txtbirthday.value)+“')”
ENDIF

我来回复

您尚未登录,请登录后再回复。点此登录或注册