问题出在
text1.lostFocus
PUBLIC C
OPEN DATABASE 餐饮数据
USE 就餐
SELECT 就餐
GO top
GO bottom
c=RECNO()
thisform.text1.Value=c+1
use
大概帮你整理一下:
1、把 form1.init的全部删除,并在 form1.load增加
&&do menu.MPR with this, .t.
CLOSE DATABASES
SET DEFAULT TO [G:\VF餐饮管理系统] &&我测试时的位置,你不要
OPEN DATABASE 餐饮数据
IF !USED("菜谱")
USE 菜谱 IN 0
ELSE
SELECT 菜谱
ENDIF
IF !USED("点菜")
USE 点菜 IN 0
ELSE
SELECT 点菜
ENDIF
IF !USED("帐单")
USE 帐单 IN 0
ELSE
SELECT 帐单
ENDIF
IF !USED("就餐")
USE 就餐 IN 0
ELSE
SELECT 就餐
ENDIF
replace ALL 菜谱.点菜标志 WITH .f.
2、在 command1.click,增加
thisform.list2.listindex = thisform.list2.ListCount &&默认选中新增加的行,没这个默认值,点“取消”按钮,会出错
3、修改 command2.click
IF thisform.list2.ListCount > 0 &&如果没这个判断,会出错
SELECT 菜谱
GO top
LOCATE FOR ALLTRIM(菜谱.菜名)=ALLTRIM(thisform.list2.value)
replace 菜谱.点菜标志 WITH .f.
CONTINUE
IF EOF()
GO top
ENDIF
thisform.list2.RemoveItem(thisform.list2.listindex)
thisform.list2.listindex = thisform.list2.ListCount &&默认选中,如果没这行,连续点“取消”按钮时,会出错
ENDIF
4、删除text1.lostfocus,改为放到text1.gotfocus
LOCAL n单号
SELECT 就餐
n单号 = RECCOUNT()
thisform.text1.Value=n单号+1
5、command5.click 改为
SELECT 点菜
ZAP
SELECT 菜谱
IF NOT EOF()
COPY to diancai FIELDS 菜编号,菜名,单价 FOR 点菜标志=.t.
ENDIF
SELECT 点菜
APPEND FROM diancai FIELDS 菜编号,菜名,单价
replace ALL 点菜.数量 WITH 1
replace ALL 点菜.金额 WITH 单价&&点菜.单价*点菜.数量
replace ALL 点菜.单号 WITH ALLTRIM(str(thisform.text1.Value))
SELECT 帐单
APPEND FROM 点菜 FIELDS 单号,菜编号,菜名,单价,数量,金额
SELECT 就餐
APPEND BLANK
replace 就餐.单号 WITH ALLTRIM(str(thisform.text1.Value))
replace 就餐.日期 WITH thisform.text2.Value
replace 就餐.桌号 with
replace 就餐.人数 with val()
replace 就餐.收银员 with
ERASE diancai
SELECT 菜谱
replace ALL 菜谱.点菜标志 WITH .f.
MESSAGEBOX("提交成功!",48+0+0,"信息提示")
6、在text1.init中,增加
LOCAL n单号
SELECT 就餐
n单号 = RECCOUNT()
thisform.text1.Value=n单号+1
[此贴子已经被作者于2016-12-15 14:37编辑过]