[求助]关于数据更新的问题 困惑 表单已上传
做了一个售货表单,通过选择商品编号,显示出商品名称,商品单价,计算商品金额然后售货
现在功能都可以实现,在计算金额完,售货也成功了。但是在售货表(outrec),库存表(storeinfo)更新后,在从新售货选择刚才的商品时,商品单价却为0,我看了一下商品信息表(proinfo)里面的单价也成0了,不知道为什么????
这是主要代码:
表单init:
SET CENTURY ON
SET DATE YMD
*——使用当前日期生成进货编号前6位
*——使用当前日期生成进货编号前6位
sYear=ALLTRIM(STR(YEAR(DATE())))
sMonth=ALLTRIM(STR(MONTH(DATE())))
sDay=ALLTRIM(STR(DAY(DATE())))
IF LEN(sMonth)=1
sMonth="0"+sMonth
ENDIF
IF LEN(sDay)=1
sDay="0"+sDay
ENDIF
LeftNo=sYear+sMonth+sDay
*——从“出货信息”中生成进货编号后4位
SELECT OutRec
SET ORDER TO 销售编号
SET FILTER TO
SET FILTER TO OutRec.销售日期==DATE()
GO BOTTOM
IF ALLTRIM(OutRec.销售编号)==""
RightNo="0000"
ELSE
RightNo=Substr(OutRec.销售编号,9)
ENDIF
*——对后4位增1
RightNo=AutoAdd(RightNo)
*——完整编号
FullNo=LeftNo+RightNo
*——在表单中显示
THISFORM.txt销售编号.Value=FullNo
THISFORM.txt销售日期.Value=DATE()
THISFORM.txt销售数量.Value=0
THISFORM.txt商品单价.Value=0
THISFORM.txt金额.Value=0
THISFORM.txt库存数量.Value=""
THISFORM.txt经手人.Value=""
THISFORM.txt商品编号.Value=""
*——刷新表单
THISFORM.Refresh
“选择“按钮click:
*——调用“选择商品”表单获取“商品编号”
DO FORM ProSelect TO sProNum
*——如果选择了商品
IF sProNum <> "0000000000"
THISFORM.txt商品编号.Value=sProNum
Select StoreInfo
Count For 商品编号=sProNum TO nNum
*——如果没有库存
IF nNum=0
Messagebox("该商品没有库存",48,"超市管理系统")
THISFORM.txt商品编号.Value=""
THISFORM.txt商品编号.SetFocus
Return
ENDIF
SELECT StoreInfo
LOCATE FOR 商品编号=sProNum
IF FOUND()
THISFORM.txt库存数量.Value=StoreInfo.库存数量
ENDIF
SET FILTER TO
THISFORM.Refresh
ENDIF
计算按钮:
g_id=alltrim(thisform.txt商品编号.value)
num=thisform.txt销售数量.value
_price=thisform.txt商品单价.value
if (empty(g_id) or empty(num) or empty(_price))
messagebox("请输入完整信息",0,"输入不正确")
else
select proinfo
set talk off
locate for 商品编号=g_id
if found()=.t.
_price=proinfo.商品单价
_sum=_price*num
thisform.txt金额.value=_sum
thisform.refresh
else
messagebox("商品不存在",0,"错误信息")
endif
endif
"确定"按钮click:
*——获取表单中的数据
OutNo=ALLTRIM(THISFORM.txt销售编号.Value)
PNo=ALLTRIM(THISFORM.txt商品编号.Value)
OutCount=THISFORM.txt销售数量.Value
OutPrice=THISFORM.txt商品单价.Value
Outsum=THISFORM.txt金额.Value
OutDate=THISFORM.txt销售日期.Value
OutPerson=ALLTRIM(THISFORM.txt经手人.Value)
*——如果商品编号为空
IF PNo==""
MESSAGEBOX("商品编号为空或者错误",48,"超市管理系统")
THISFORM.cmb商品编号.SetFocus
Return
ENDIF
*——检查商品编号合法性
DIMENSION RecNum(1)
RecNum=2
SELECT COUNT(*) FROM ProInfo WHERE 商品编号=PNo INTO ARRAY RecNum
IF RecNum<1
MESSAGEBOX("商品编号错误",48,"超市管理系统")
THISFORM.cmb商品编号.SetFocus
Return
ENDIF
*——如果没有库存
IF THISFORM.txt库存数量.Value<=0
MESSAGEBOX("该商品没有库存",48,"超市管理系统")
THISFORM.txt库存数量.SetFocus
Return
ENDIF
*——如果销售数量小于0或者大于库存数量
IF OutCount<=0 .OR. OutCount>THISFORM.txt库存数量.Value
MESSAGEBOX("销售数量错误",48,"超市管理系统")
THISFORM.txt销售数量.SetFocus
Return
ENDIF
*——如果经手人为空
IF OutPerson==""
MESSAGEBOX("经手人不能为空",48,"超市管理系统")
THISFORM.txt经手人.SetFocus
Return
ENDIF
*——在出货信息表中插入记录
BEGIN TRANS
INSERT INTO OutRec VALUES(OutNo,PNo,OutPrice,;
OutCount,Outsum,OutDate,OutPerson)
*——更新库存信息表
UPDATE StoreInfo SET 库存数量=库存数量-OutCount ;
WHERE 商品编号=PNo
END TRANS
*——如果选中了复选框
IF THISFORM.Check1.Value=1
REPORT FORM OutView FOR 销售编号=THISFORM.txt销售编号.Value PREVIEW
ENDIF
*——对话框
MESSAGEBOX("出货成功",64,"超市管理系统")
*----初始化表单
THISFORM.INit
THISFORM.REFRESH
不知道错在哪里了~~~大家帮忙看看 谢谢了
[此贴子已经被作者于2007-4-17 16:16:26编辑过]