回 帖 发 新 帖 刷新版面

主题:为什么修饰后程序运行结果不一样了

LOCAL FindStr1,find_s,find_g,find_f
find_g=THIS.find_g+'.refresh'
find_s=THIS.find_df


这是代码一(没修饰的):
If !Empty(This.Value)
    FindStr1 = "'"+Alltrim(Upper(This.Value))+"' $ "+This.find_d
    Set  Filter To &FindStr1                    &&  开始过滤条件
    Go Top
    If Not  Eof()                                &&  表找到一笔或一笔以上
        Skip
        If Eof()                                 &&  表只找到一笔
            Skip -1
            Thisform.is_all  = .F.
            This.Value = &find_s
        Else                                    &&  有多笔资料符合
            Go Top
            Thisform.is_all  = .T.
        Endif
    Else
        Thisform.is_all  = .F.
        Wait  Windows "没有相应的拼音简码,请重输入!"+Chr(13)+"确定拼音简码是否正确!" Nowait
        This.Value =''
    Endif
Else
    Set  Filter To
    Go Top
    Thisform.is_all  = .T.
Endif



这是代码二(修饰后的):
IF !EMPTY(THIS.VALUE)
    SELECT &find_f
    findstr1 = "'"+ALLTRIM(UPPER(THIS.VALUE))+"' $ "+THIS.find_df
    SET  FILTER TO &findstr1                    &&  开始过滤条件
    GO TOP
    IF .NOT. EOF()                                &&  表找到一笔或一笔以上
        SKIP
        IF EOF()                                 &&  表只找到一笔
            SKIP -1
            THISFORM.is_all  = .F.
            THIS.VALUE = &find_s
        ELSE                                    &&  有多笔资料符合
            GO TOP
            THISFORM.is_all  = .T.
        ENDIF
    ELSE
        THISFORM.is_all  = .F.
        WAIT  WINDOWS "没有相应的拼音简码,请重输入!"+CHR(13)+"确定拼音简码是否正确!" NOWAIT
        THIS.VALUE =''
    ENDIF
ELSE
    SET  FILTER TO
    GO TOP
    THISFORM.is_all  = .T.
ENDIF


用没修饰的运行正常,可以达到要求,修饰后无论输什么都说"没有相应的拼音简码,请重输入!"+CHR(13)+"确定拼音简码是否正确!"

回复列表 (共4个回复)

沙发

初学VFP希望那个大哥帮我解释一下,以前实在是没遇到过些类事情

板凳

这是代码一(没修饰的):
If !Empty(This.Value)
    FindStr1 = "'"+Alltrim(Upper(This.Value))+"' $ "+This.find_d
    Set  Filter To &FindStr1                    &&  开始过滤条件
    Go Top
    If Not  Eof()                                &&  表找到一笔或一笔以上
        Skip
        If Eof()                                 &&  表只找到一笔
            Skip -1
            Thisform.is_all  = .F.
            This.Value = &find_s
        Else                                    &&  有多笔资料符合
            Go Top
            Thisform.is_all  = .T.
        Endif
    Else
        Thisform.is_all  = .F.
        Wait  Windows "没有相应的拼音简码,请重输入!"+Chr(13)+"确定拼音简码是否正确!" Nowait
        This.Value =''
    Endif
Else
    Set  Filter To
    Go Top
    Thisform.is_all  = .T.
Endif



这是代码二(修饰后的):
IF !EMPTY(THIS.VALUE)
    SELECT &find_f
    findstr1 = "'"+ALLTRIM(UPPER(THIS.VALUE))+"' $ "+THIS.find_df  $$$$$是不是这儿多了一个F,太粗心了

3 楼

这不是你的错,是使用 修饰 的错.
请在修饰选项中选 不改变, 不要选 与第一次相匹配

4 楼

谢谢了,我想了半天就是想不通!
唉!少用修饰吧!

我来回复

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