回 帖 发 新 帖 刷新版面

主题:问题7

Form1表单的load事件的代码
public  getzgh1,getxm1,getrq1,s
 getzgh1=’’
getxm1=’’
getrq1={//}
text1,text2.text3控件的interactivechage事件代码:
getzgh1=alltrim(thisfrom.pageframe1.page1.text1.value)   
getxm1=alltrim(thisfrom.pageframe1.page1.text2.value  )
getrq1= thisfrom.pageframe1.page1.text3.value
s='' 
 if len(getzgh1)>0
s=s+'职工号=getzgh1' 
endif
if  len(getxm1)>0
s=s+’.and.’+’姓名=getxm1’
endif

if getrq1<>{//} 
 s=s+'.and.'+'DTOC(日期)=DTOC(getrq1)' 
 endif

do while left(s,5)=’.And.’.or.left(s,5)=’.AND.’

s=substr(s,6)
enddo

请问 if len(getzgh1)>0
s=s+'职工号=getzgh1' 
endif
中的S分别表示什么意思?    2. do while left(s,5)=’.And.’.or.left(s,5)=’.AND.’
中,那两个ande 有什么区别?谢谢

回复列表 (共5个回复)

沙发


1、中的S分别表示什么意思?
是个赋了值的函数啊,其中就可能包含有“And”,“AND”之类的
2、 do while left(s,5)=’.And.’.or.left(s,5)=’.AND.’
中,那两个ande 有什么区别?
因为比较要区分大小写,所以为了能保证
包含有“And”,“AND”的多能达到表达式为真,所以就出现了这两个“And”,“AND”了。
如:S中的是“and”根据此表达式:
do while left(s,5)=’.And.’.or.left(s,5)=’.AND.’
结果就是否了

板凳

if len(getzgh1)>0
s=s+'职工号=getzgh1' 
endif
这个程序中,第二个S我认为可以去掉,因为它的初始值是S='',对吗?

2.do while left(s,5)=’.And.’.or.left(s,5)=’.AND.’
  为什么取数值5,难道不可以取其它数值吗,退一步,即使取了数值5,但是从句子S的第5位开始,它也不是And 啊,应该是"号=......=dtoc {//}"才对啊,谢谢

3 楼


Form1表单的load事件的代码
。。。。。
text1,text2.text3控件的interactivechage事件代码:
。。。。
。。。
看了你发的源代码
1、我的理解是这些源代码不是连续的,是分段、分开执行的
所以:
  如是分开的,那这个就需要“s=s+'职工号=getzgh1' ”;
  如是连续的,即:
s=''
后面就是 
 if len(getzgh1)>0
s=s+'职工号=getzgh1' 
endif
你的说法“这个程序中,第二个S我认为可以去掉,因为它的初始值是S='',对吗?
”应该对的没问题。

2、关于这个我认为同上面也是一样,如是连续的好像这段代码写的没啥意思
所以应该是好几段源代码,是分开的执行的,那就不是你说的结果了,因为中间应该还有给那个‘s’其他的赋值过程,所以“,应该是"号=......=dtoc {//}"才对啊”就不一定对啦。

4 楼

非常感谢你,

5 楼

元旦快乐

我来回复

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