Foxtable(狐表)用户栏目专家坐堂 → 用事务逐行处理数据


  共有2204人关注过本帖树形打印复制链接

主题:用事务逐行处理数据

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108861 积分:553848 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/20 20:22:00 [显示全部帖子]

除非使用sql操作,否则没有办法使用事务:http://www.foxtable.com/webhelp/scr/2933.htm

上面代码优化一下,可以这样,可以有效提高运行速度

DataTables("库存").StopRedraw
DataTables("库存").Load
DataTables("出入库明细").StopRedraw
For Each dr As DataRow In DataTables("预记帐").DataRows '预记帐表是事先添加的要出库的明细
    Dim cr As DataRow = DataTables("出入库明细").AddNew
    cr("商品类别")=dr("商品类别")
    cr("日期")=dr("日期")
    cr("业务类型")="出库"
    cr("商品编号")=dr("商品编号")
    cr("商品名称")=dr("商品名称")
    cr("会计帐务流水号")=kjz("帐务流水号")
    cr("数量")=dr("销售数量")
    cr("商品成本")=dr("贷方发生额")
    cr("销售额")=dr("销售额")
    cr("客户_名称")=dr("客户名称")
    cr("客户_编号")=dr("客户编号")
    cr("客户_客户经理")=dr("客户经理")
    cr("流水号")="C" & Format(dr("日期"),"yyyyMMdd") & format(sz("库房流水号"),"00000")
    cr("经办人")=user.Name
    Dim kc As DataRow = DataTables("库存").Find("商品编号='" & dr("商品编号") & "'")
    If kc IsNot Nothing Then
        kc("商品库存金额")=kc("商品库存金额")-dr("贷方发生额")
        kc("累计出库金额")=kc("累计出库金额") + dr("贷方发生额")
        kc("商品库存")=kc("商品库存")-dr("销售数量")
        kc("累计出库数量")=kc("累计出库数量") + dr("销售数量")
        kc("平均进货价格")=format(kc("商品库存金额") / kc("商品库存"),"0.00")
    End If
Next
DataTables("出入库明细").Save
DataTables("出入库明细").ResumeRedraw
DataTables("库存").Save
DataTables("库存").ResumeRedraw

另外再优化还可以看看:http://www.foxtable.com/webhelp/scr/2225.htm

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108861 积分:553848 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/20 20:59:00 [显示全部帖子]

上传项目和数据库,否则没有办法改

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:108861 积分:553848 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/10/20 21:25:00 [显示全部帖子]

没有办法大概,看不到业务逻辑和数据结构,做出来的东西有害无益。

就是把代码操作改为sql的update/insert等等,自己研究一下sql:http://www.foxtable.com/webhelp/scr/1827.htm

 回到顶部