如何保存多条记录
在入库窗口有dw_1、cb_1(新增)和cb_2(保存)按钮。保存时,要入库表与库存表(stock)都有记录,但现在新增一条记录,入库表与库存表是没有问题,都有记录,但新增多条记录时,库存表就只有一条记录。可见保存少了循环语句,但我不知怎么在以下代码加入循环语句,请高手帮帮忙。。。谢谢
integer number,putin_number,sl
string product_no,save_code
string ls_fieldname//主键名称
long ll_rc //数据窗口中总的数据行数
ls_fieldname = 'rkdbh'
dw_1.SetFilter("1=1")
dw_1.Filter()
ll_rc = dw_1.RowCount()
dw_1.SetSort(ls_fieldname + " A")
dw_1.Sort()
dw_1.SetFilter(ls_fieldname + " <> " + ls_fieldname + "[-1] or GetRow() =1")
dw_1.Filter()
if dw_1.RowCount() < ll_rc then
MessageBox("提示","编号存在重复的数据!",StopSign!)
else
save_code=dw_1.GetItemString(dw_1.getrow(),"lbbh")
product_no=dw_1.GetItemString(dw_1.getrow(),"xhbh")
//确定仓库中现有该设备的数量
SELECT max(stock.kcsl) INTO :number FROM stock
WHERE (stock.xhbh=:product_no) and (stock.lbbh=:save_code)
using sqlca;
///取得入货数目
if isnull(number) then
sl=dw_1.getitemnumber(dw_1.getrow(),"rksl")
insert into "stock" ("lbbh","xhbh","kcsl") values(:save_code,:product_no,:sl);
commit;
else
putin_number= integer(dw_1.object.rksl[dw_1.getrow()])
number = number + putin_number
//增加库存
UPDATE stock SET kcsl =:number
WHERE (stock.xhbh=:product_no) and (stock.lbbh=:save_code);
//保存数据到进库表格中
commit;
end if
dw_1.update()
messagebox("提示","保存成功")
end if
[解决办法]
无法测试
在入库窗口有dw_1、cb_1(新增)和cb_2(保存)按钮。保存时,要入库表与库存表(stock)都有记录,但现在新增一条记录,入库表与库存表是没有问题,都有记录,但新增多条记录时,库存表就只有一条记录。可见保存少了循环语句,但我不知怎么在以下代码加入循环语句,请高手帮帮忙。。。谢谢
integer number,putin_number,sl
string product_no,save_code
string ls_fieldname//主键名称
long ll_rc //数据窗口中总的数据行数
long ll_i
ls_fieldname = 'rkdbh'
dw_1.SetFilter("1=1")
dw_1.Filter()
ll_rc = dw_1.RowCount()
dw_1.SetSort(ls_fieldname + " A")
dw_1.Sort()
dw_1.SetFilter(ls_fieldname + " <> " + ls_fieldname + "[-1] or GetRow() =1")
dw_1.Filter()
if dw_1.RowCount() < ll_rc then
MessageBox("提示","编号存在重复的数据!",StopSign!)
else
for ll_i = 1 to ll_rc
if dw_1.GetItemStatus(ll_i,0,Primary!) = NotModified!then continue
save_code=dw_1.GetItemString(ll_i,"lbbh")
product_no=dw_1.GetItemString(ll_i,"xhbh")
//确定仓库中现有该设备的数量
SELECT max(stock.kcsl) INTO :number FROM stock
WHERE (stock.xhbh=:product_no) and (stock.lbbh=:save_code)
using sqlca;
///取得入货数目
if isnull(number) then
sl=dw_1.getitemnumber(ll_i,"rksl")
insert into "stock" ("lbbh","xhbh","kcsl") values(:save_code,:product_no,:sl);
commit;
else
putin_number= integer(dw_1.object.rksl[ll_i])
number = number + putin_number
//增加库存
UPDATE stock SET kcsl =:number
WHERE (stock.xhbh=:product_no) and (stock.lbbh=:save_code);
//保存数据到进库表格中
commit;
end if
next
dw_1.update()
messagebox("提示","保存成功")
end if