Foxtable(狐表)用户栏目专家坐堂 → 多记录问题


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

主题:多记录问题

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
多记录问题  发帖心情 Post By:2021/6/3 13:48:00 [显示全部帖子]

AA(主表)和AB(明细)是关联表, DA(主表)和DB(明细)是关联表,


需求是:
   当“DA(主表)”录入“产品编号”,并以“产品编号”从”AB(明细)“找到相同“产品编号”,
将其对应记录,赋值到”DB(明细)“,不要单击按键一条条新增行。

If e.DataCol.Name = "产品编号" Then
    Dim nms() As String = {"品名","料号","料名","数量"}
    If e.NewValue Is Nothing Then
        For Each nm As String In nms
            e.DataRow(nm) = Nothing
        Next
    Else
        Dim dr As DataRow
        dr = DataTables("AB").Find("[产品编号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If

上面代码实现单条记录复制重复同一条记录,并是"产品编号"相应记录,比如:"产品编号" PD01有二记录,
而上面是在”DB(明细)“新增一行只复制”AB(明细)“其第一条 ,如何解决?谢谢


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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 15:04:00 [显示全部帖子]

在AB表放下面代码:
Select Case e.DataCol.Name
    Case "品名","料号","料名","数量"
        Dim Filter As String = "[产品编号] = '" & e.DataRow("产品编号") & "'"
        Dim drs As List(Of DataRow) = DataTables("DB").Select(Filter)
        For Each dr As DataRow In drs
            dr(e.DataCol.Name) = e.NewValue
        Next
End Select

'Select Case e.DataCol.Name
    'Case "品名","料号","料名","数量"
        'Dim drs As List(Of DataRow) = e.DataRow.GetChildRows("DB"))
        'For Each dr As DataRow In drs
            'dr(e.DataCol.Name) = e.NewValue
        'Next
'End Select

使用注掉的代码,红字有问题,报错,应为结束语句,是从帮助复制过改


在DB表

If e.DataCol.Name = "产品编号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("品名") = Nothing
        e.DataRow("料号") = Nothing
        e.DataRow("料号") = Nothing
        e.DataRow("数量") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("DB").Find("[产品编号] = '" & e.NewValue & "'")
        If dr IsNot Nothing
            e.DataRow("品名") = dr("品名")
            e.DataRow("料号") = dr("料号")
            e.DataRow("料名") = dr("料名")
            e.DataRow("数量") = dr("数量")
        End If
    End If
End If

上面代码,在DA表新增“产品编号”没执行,从AB表对应产品编号的记录复制到DB表。




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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 15:29:00 [显示全部帖子]

老师,效果跟最早那一种一样,并没实现在DA表新增“产品编号”没执行,从AB表对应产品编号的所有记录复制到DB表。还是只有第一条

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 15:52:00 [显示全部帖子]

AA(主表)和AB(明细)是关联表, DA(主表)和DB(明细)是关联表,

AB表和DB表,2个表数据 有相同字段“产品编号,品名,料号,料名,数量”,以“产品编号”为关键点


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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 15:54:00 [显示全部帖子]

采用1楼和4楼结果如下:

图片点击可在新窗口打开查看此主题相关图片如下:多记录.jpg
图片点击可在新窗口打开查看



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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 16:47:00 [显示全部帖子]

AB表和DB表,2个表数据通过哪些列关联对应?产品编号”列数据一样才能对应即可。

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 17:36:00 [显示全部帖子]

已知条件:
1,AA(主表)和AB(明细)是关联表,也是已知的有数据;而 DA(主表)和DB(明细)是关联表,是要编辑;
2,
需求是:
   当“DA(主表)”的“产品编号”字段录入后,以“产品编号”从”AB(明细)“找到对应的“产品编号”的所有对应记录,赋值到”DB(明细)“。不要单击按键一条条新增行。

比如:
1.  AB(明细表)已有记录如下

产品编号    品名        料号           料名        数量
PD01        GM01     LH-01A       LH-01     2
PD01        GM01     LH-02B       LH-01     2

2, “DA(主表)”的“产品编号“录入 ”PD01 “后,”DB(明细)“的数据从 AB(明细表)取值如下

DB表
产品编号    品名        料号           料名        数量   销量
PD01        GM01     LH-01A       LH-01     2
PD01        GM01     LH-02B       LH-01     2

DB表红字体是按”产品编号“从AB”找到对应数据赋值过来的。这才是需求功能。
从前面代码,只实现“DA(主表)”的“产品编号“录入 ”PD01 “后,还要在DB表新增行才只找一条记录过,以需求产品编号录入后,自动从AB表找对应数据赋值给DB



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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/3 21:31:00 [显示全部帖子]

老师,我这边测试效果跟之前是一样,没有把AB的对应的数据赋值到DB表,都是只有第一条记录

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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/4 8:47:00 [显示全部帖子]

 当“DA(主表)”的“产品编号”字段录入后,以“产品编号”从”AB(明细)“找到对应的“产品编号”的所有对应记录,赋值到”DB(明细)“。不要单击按键一条条新增行。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多记录 - 1 - 副本.foxdb



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


加好友 发短信
等级:五尾狐 帖子:1145 积分:7566 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2021/6/4 9:36:00 [显示全部帖子]

老师,基本实现,但关联表不行,我把注释改为红字关联表,报错如图,本实例是关联表
'dr1 = DataTables("DB").addnew
dr1 = DataTables("DA.DB").addnew

图片点击可在新窗口打开查看此主题相关图片如下:多记录-1.jpg
图片点击可在新窗口打开查看



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