Foxtable(狐表)用户栏目专家坐堂 → [求助]关于AddNew及跨表统计


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

主题:[求助]关于AddNew及跨表统计

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


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
[求助]关于AddNew及跨表统计  发帖心情 Post By:2017/10/17 14:34:00 [显示全部帖子]

For Each r1 As Row In Tables("入库导入_采购订单")
    If r1("本次交货") IsNot Nothing Or r1("本次交货") > 0
        Dim  r2 As Row = Tables("入库表").AddNew
        r2("编号") = r1("编号")
        r2("入库数量") = r1("本次交货")
        Else
    End If
Next
用这段代码在入库表里新增数据,入库表里的数据需要跨表统计,
入库表:
Select Case e.DataCol.Name
    Case "入库数量"
        Dim pr As DataRow
        pr = DataTables("库存").Find("编号 = '" & e.DataRow("编号") & "'")
        If pr IsNot Nothing Then
            DataTables("库存").DataCols("编号").RaiseDataColChanged(pr)
        End If
End Select
库存表:
If e.DataCol.Name = "编号" Then 
    Dim Filter As String = "[编号] = '" & e.NewValue & "'"
    e.DataRow("入库合计") = DataTables("入库表").Compute("Sum(入库数量)", Filter)    
End If

但是新增的数据并不直接进行计算,每次都需要重置列,重置列运行速度很慢,需要怎么优化


 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 14:45:00 [显示全部帖子]

另外问一下:
For Each r1 As Row In Tables("入库导入_采购订单")
        Dim  r2 As Row = Tables("入库表").AddNew
        r2("编号") = r1("编号")
        r2("入库数量") = r1("本次交货")
        Else
Next
Tables("入库表")里只合并Tables("入库导入_采购订单")里"本次交货"有数据的行,"本次交货"空值或者为0的行不AddNew,需要怎么优化


 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 15:09:00 [显示全部帖子]

第1条,我希望AddNew行后直接参与统计,而不是必须要重置列

第3条,我加了判断 没有值的行依然被Add上去了
[此贴子已经被作者于2017/10/17 15:37:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 15:19:00 [显示全部帖子]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:辅料管理 - 副本.rar


 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 15:20:00 [显示全部帖子]

密码 kf888

systemready = False
For Each r1 As Row In Tables("入库导入_采购订单")
    If r1("本次交货") IsNot Nothing Or r1("本次交货") > 0
        Dim  r2 As Row = Tables("入库表").AddNew
        r2("编号") = r1("编号")
        r2("入库数量") = r1("本次交货")
        r2("入库批次") = r1("辅料批次")
        r2("订单数量") = r1("订单数量")
        r2("订单批次") = r1("订单批次")
        r2("单价") = r1("单价")
        r2("入库时间") = Date.Now
        r2("部门") = "" & user.Name & ""
        r1("本次交货") = Nothing
    Else
    End If
Next
systemready =True
e.Form.close
用这段代码在入库导入窗口,作用:在入库表里新增数据,入库表里的数据需要跨表统计,

入库表表事件:
Select Case e.DataCol.Name
    Case "入库数量"
        Dim pr As DataRow
        pr = DataTables("辅料库存").Find("辅料部门 = '" & e.DataRow("辅料部门") & "'")
        If pr IsNot Nothing Then
            DataTables("辅料库存").DataCols("辅料部门").RaiseDataColChanged(pr)
        End If
End Select

辅料库存表表事件
If e.DataCol.Name = "辅料部门" Then 
    Dim Filter As String = "[辅料部门] = '" & e.NewValue & "'"
    e.DataRow("入库合计") = DataTables("入库表").Compute("Sum(入库数量)", Filter)    
End If

但是新增的数据并不直接进行计算,每次都需要重置列,重置列运行速度很慢,需要怎么优化

[此贴子已经被作者于2017/10/17 15:23:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 15:40:00 [显示全部帖子]

例子已上传,麻烦帮忙解决一下

 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 16:37:00 [显示全部帖子]

老师,在帮忙看一下第一个问题,新增行怎么直接进行计算统计,例子里必须要重置列,很不方便

 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/17 17:27:00 [显示全部帖子]

我测试一下,有其他问题再来请教

 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/18 10:18:00 [显示全部帖子]

二位老师好:
  我的问题解决不了
  用了新的代码,还是一样,入库导入那个窗口,新增行无法直接进行计算统计,必须要重置列,这个需要怎么修改?
  去掉systemready = False和systemready =True 还是一样的,无法直接进行计算统计,而且带来另外一个问题,入库导入的时候如果数据是多行,本次交货=订单数量时,只能导入第一行数据

  另外:我希望的Tables("入库表")里只合并Tables("入库导入_采购订单")里"本次交货"有数据的行,"本次交货"空值或者为0的行不AddNew 也没能实现
[此贴子已经被作者于2017/10/18 10:20:40编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
l1q2lq
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:422 积分:3430 威望:0 精华:0 注册:2015/5/20 8:44:00
  发帖心情 Post By:2017/10/18 11:30:00 [显示全部帖子]

录了GIF帮忙看下,本次交货为空,怎么不新增行呢

图片点击可在新窗口打开查看此主题相关图片如下:录像4_转.gif
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/10/18 11:30:44编辑过]

 回到顶部
总数 11 1 2 下一页