Foxtable(狐表)用户栏目专家坐堂 → 请教 根据条件在另一表中查找符合条件的行,自动复制到需求表中


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

主题:请教 根据条件在另一表中查找符合条件的行,自动复制到需求表中

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/13 10:42:00 [显示全部帖子]

1、你用的是事件,结果代码中用的不是e.DataRow,而是Tables("生产任务单总表").Current,Current是选定行,不是触发事件的行,如果表中有10行,你这么处理,重置列就会针对选定行执行10次,而不是每行执行1次。

2、代码中,增加了一行,并保存在变量r中:

Dim r As Row=Tables("生产任务单总表.车间绩效记录").AddNew()

可是你后面的扶植用的不是r,是:

 Tables("车间绩效记录").rows(i)("级别") =Tables("物料编码").rows(i)("级别")

新增的行是r,不是 Tables("车间绩效记录").rows(i),除非巧合和,否则不会出现正确的结果。

3、你明明用for each语句遍历物料编码的行,还用find找什么?
4、综上所述,代码为:

 

If e.DataCol.Name = "XXX" AndAlso e.NewValue = True Then
    Dim dr5 As DataRow
    For i As Long = 0 To Tables("物料编码").count -1
        dr5 = Tables("物料编码").rows(i)
        If dr5("物料型号")=e.DataRow("物料型号") Then
            Dim r As Row=Tables("生产任务单总表.车间绩效记录").AddNew()
            r("级别") =dr5("级别")
            r("物料编码") =dr5("物料编码")
            r("物料型号") =dr5("物料型号")
            r("物料名称") =dr5("物料名称")
            r("加工工艺") =dr5("加工工艺")
            r("工艺内容") =dr5("工艺内容")
            r("物料类别") =dr5("类别")
            r("品质标准") =dr5("品质标准")
            r("产能") =dr5("产能")
            r("周期") =dr5("生产周期")
            r("单价") =dr5("价格")
            r("计量单位") =dr5("计量单位")
        End If
    Next
End If

[此贴子已经被作者于2011-5-13 10:46:18编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/13 10:47:00 [显示全部帖子]

更规范的代码是:

 

 

If e.DataCol.Name = "XXX" AndAlso e.NewValue = True Then
    For Each r1  As Row In Tables("物料编码").Rows
        If r1("物料型号") = e.DataRow("物料型号") Then
            Dim r2 As Row = Tables("生产任务单总表.车间绩效记录").AddNew()
            r2("级别") = r1("级别")
            r2("物料编码") = r1("物料编码")
            r2("物料型号") = r1("物料型号")
            r2("物料名称") = r1("物料名称")
            r2("加工工艺") = r1("加工工艺")
            r2("工艺内容") = r1("工艺内容")
            r2("物料类别") = r1("类别")
            r2("品质标准") = r1("品质标准")
            r2("产能") = r1("产能")
            r2("周期") = r1("生产周期")
            r2("单价") = r1("价格")
            r2("计量单位") = r1("计量单位")
        End If
    Next
End If

[此贴子已经被作者于2011-5-13 10:47:42编辑过]

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


加好友 发短信
等级:管理员 帖子:47480 积分:251289 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/13 15:10:00 [显示全部帖子]

呵呵,明白

 回到顶部