当前位置: 代码迷 >> PB >> 怎么保存多条记录
  详细解决方案

怎么保存多条记录

热度:17   发布时间:2016-04-29 06:58:03.0
如何保存多条记录
在入库窗口有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")
        
      //确定仓库中现有该设备的数量
  相关解决方案