Foxtable(狐表)用户栏目专家坐堂 → 窗体AfterClose事件代码【运行时导致系统一直在写数据,程序出现假死,怎么解决呢?】


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

主题:窗体AfterClose事件代码【运行时导致系统一直在写数据,程序出现假死,怎么解决呢?】

帅哥哟,离线,有人找我吗?
cnsjroom
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
窗体AfterClose事件代码【运行时导致系统一直在写数据,程序出现假死,怎么解决呢?】  发帖心情 Post By:2021/11/11 11:09:00 [只看该作者]

窗体AfterClose事件代码【运行时导致系统一直在写数据,程序出现假死,怎么解决呢?】
Tables("镜片物料").Filter = ""
Tables("镜片物料").DataTable.Save
Functions.Execute("遍历增加镜片到物料表")
Functions.Execute("遍历增加")
For Each r As Row In Tables("镜片物料").rows
    If r.Locked=False Then
        r.Locked=True
    End If
Next



Functions.Execute("遍历增加镜片到物料表")内部函数事件代码如下:
Dim dr1 As Table = Tables("物料表")
Dim dr As DataRow
Dim Products As List(Of String)
Products = DataTables("镜片物料").GetValues("uuid")
For Each Product As String In Products
    output.Show("库存uuid:"& Product)
    dr = DataTables("物料表").Find("uuid = '" & Product & "'")
    If dr IsNot Nothing Then '如果找到的话
        output.Show("镜架uuid:"& Product)
    Else
        output.Show("不存在的镜架uuid:"& Product)
        dr1.AddNew
        dr1.Current("uuid")= Product
        dr1.Current("类别")= "镜片"
        dr1.DataTable.Save
    End If
Next
DataTables("物料表").DataCols("uuid").RaiseDataColChanged()

遍历追加内部 函数代码如下:
Dim dr As DataRow
Dim dr1 As Table
Dim Products As List(Of String())
Products = DataTables("镜片物料").GetValues("uuid|产品名|初始库存")
For Each Product As String() In Products
    dr = DataTables("库存表").Find("uuid = '"&Product(0)&"'and 类别='镜片'")
    If dr IsNot Nothing Then '如果找到的话
        dr("入库")=Product(2)
    Else
        dr1 = Tables("库存表")
        dr1.AddNew
        dr1.Current("产品名")=Product(1)
        dr1.Current("入库")=Product(2)
        dr1.Current("日期")=now.today
        dr1.Current("类别")="镜片"
        dr1.Current("uuid")=Product(0)
        dr1.Save
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/11/11 11:38:00 [只看该作者]

在函数最后保存一次即可,没有必要每添加一行就保存一次。

一直在写数据】是否正常的写数据?如果行数比较多,程序在等待执行完毕,这个是正常的。

 回到顶部