标题:关于VF表单中 LOCATE FOR 的问题
只看楼主
唐赵郡王孝恭
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2019-12-25
结帖率:100%
已结贴  问题点数:20 回复次数:21 
关于VF表单中 LOCATE FOR 的问题
设计一个包装软件  以 TEXT1 为数据输入框 首先输入员工号赋予其权限,权限赋予完毕之后输入箱号,然后根据提示一步一步往下输入 ,我用了locate for 语句,运行结果是这样的  ,
text1 数据还没有输入员工号 点击查询就直接 在text2在显示了名字
错在哪?


public xt,bzlx,SWR
xt=allt(thisform.text3.value)
thisform.text3.readonly=.t.
thisform.text3.lostfocus
bzlx=
SWR=
SELECT 员工表
LOCAL  czy,xx1
czy=thisform.text1.valuE
locate for allt(工号)=allt(czy)
if found ()
thisform.labeL1.caption="员工号正确,请输入箱号"
thisform.labeL1.backcolor=RGB(0,255,64)
thisform.text2.value=allt(姓名)
czy=thisform.text2.value
ELSE
thisform.labeL1.Caption="该员工没有权限"
thisform.labeL1.BackColor=RGB(255,0,0)
endif
select 箱号单
LOCAL  xh
xh=thisform.text1.value
locate FOR  ALLT(箱号)=allt(xh)
if found()
thisform.label1.caption="箱号正确,请输入料号"
thisform.label1.backcolor=rgb(0,255,64)
thisform.text8.value=ALLT(箱号)
thisform.text8.readonly=.t.
THISFORM.TEXT10.VALUE=240
THISFORM.TEXT10.readonly=.t.
ELSE
thisform.label1.caption="箱号错误"
thisform.labeL1.BackColor=RGB(255,0,0)
ENDIF
SELECT 料号
LOCAL liaohao
liaohao=thisform.text1.value
locate for allt(料号)=allt(liaohao)
if found()
thisform.label1.caption="料号正确,请"
thisform.label1.backcolor=rgb(0,255,64)
thisform.text6.value=ALLT(料号)
thisform.text6.readonly=.t.

else
thisform.label1.caption="料号错误,请确认"
thisform.labeL1.BackColor=RGB(255,0,0)
endif

搜索更多相关主题的帖子: value FOR thisform LOCATE 输入 
2020-01-05 06:42
唐赵郡王孝恭
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2019-12-25
得分:0 
SELECT 员工表
LOCAL  czy,xx1
czy=thisform.text1.valuE
locate for allt(工号)=allt(czy)
if found ()
thisform.labeL1.caption="员工号正确,请选择园区"
thisform.labeL1.backcolor=RGB(0,255,64)
thisform.text2.value=allt(姓名)
czy=thisform.text2.value
ELSE
thisform.labeL1.Caption="该员工没有权限"
thisform.labeL1.BackColor=RGB(255,0,0)
endif
select 箱号单
LOCAL  xh
xh=thisform.text1.value
locate FOR  ALLT(箱号)=allt(xh)
if found()
thisform.label1.caption="箱号正确,请输入料号"
thisform.label1.backcolor=rgb(0,255,64)
thisform.text8.value=ALLT(箱号)
thisform.text8.readonly=.t.
THISFORM.TEXT10.VALUE=240
THISFORM.TEXT10.readonly=.t.
ELSE
thisform.label1.caption="箱号错误"
thisform.labeL1.BackColor=RGB(255,0,0)
ENDIF
SELECT 料号
LOCAL liaohao
liaohao=thisform.text1.value
locate for allt(料号)=allt(liaohao)
if found()
thisform.label1.caption="料号正确,请"
thisform.label1.backcolor=rgb(0,255,64)
thisform.text6.value=ALLT(料号)
thisform.text6.readonly=.t.
else
thisform.label1.caption="料号错误,请确认"
thisform.labeL1.BackColor=RGB(255,0,0)
endif

请跟这段错在哪里
还没有输入工号,运行程序的时候 text1空格状态点击查询就是这个结果
我需要根据提示一步一步输入数据

[此贴子已经被作者于2020-1-5 06:46编辑过]

2020-01-05 06:43
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:7 
ELSE
thisform.label1.caption="箱号错误"
thisform.labeL1.BackColor=RGB(255,0,0)
    return
ENDIF

else
thisform.label1.caption="料号错误,请确认"
thisform.labeL1.BackColor=RGB(255,0,0)
    return
ENDIF

试试

坚守VFP最后的阵地
2020-01-05 09:35
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:7 
thisform.labeL1.Caption="该员工没有权限"
thisform.labeL1.BackColor=RGB(255,0,0)
*这之后也要加
 return

dBase有人接盘了。
2020-01-05 10:36
唐赵郡王孝恭
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2019-12-25
得分:0 
第一步没有输入工号,直接点击查询也能在text2中显示姓名,这一步怎么处理!
我的意思是说要先输入工号。上面才显示名字。
2020-01-06 00:45
唐赵郡王孝恭
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2019-12-25
得分:0 
第一步没有输入工号,直接点击查询也能在text2中显示姓名,这一步怎么处理!
我的意思是说要先输入工号。上面才显示名字。也就是处理失去焦点问题不知道怎么处理
2020-01-06 00:49
唐赵郡王孝恭
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2019-12-25
得分:0 
输入工号显示姓名之后,我输入箱号提示该员工无权限,
2020-01-06 08:18
xuminxz
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:40
帖 子:749
专家分:2475
注 册:2011-5-8
得分:0 
如果是我写,整个程序结构一般是这样的,前面是各种判断,后面是数据处理,不要再判断了,这样程序主体部分的改进方便的多。一般如下:
xh= alltr(thisform.text1.value)&&建议alltrim() 函数放在这用,箱号本来就应该不含空格
 if empty(xh)
    =messagebox(' 请输入箱号' )
    return
endif
select 箱号单
locate FOR  ALLT(箱号)==xh &&建议用恒等号。
if !found()
 =messagebox(' 输入的箱号不存在!' )
    return
endif
其它各项类似处理。

dBase有人接盘了。
2020-01-06 11:43
唐赵郡王孝恭
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2019-12-25
得分:0 
上面兄弟如我QQ:156564356
2020-01-06 16:58
wcx_cc
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:52
帖 子:352
专家分:1152
注 册:2015-10-2
得分:7 
显示操作员的 text 框的值 czy,必须提前赋值为空。只有查到有关人员后赋非空值,查不到也要再次赋空值。czy 的值要设为独立值,不要与数据表的字段值建立直接关联,否则,刷新表单会自动显示出关联的字段值。      
2020-01-06 19:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-498814-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.226431 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved