Foxtable(狐表)用户栏目专家坐堂 → 从第一个表的两个多值字段的值 拆分成多个明细表 当前党风廉政意见回复表中一条数据:身份证号有三个 对应回复关联人有三个 结果新增到明细中 就写成了九条数据麻烦老师帮忙看看 怎么只生成三条数据!


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

主题:从第一个表的两个多值字段的值 拆分成多个明细表 当前党风廉政意见回复表中一条数据:身份证号有三个 对应回复关联人有三个 结果新增到明细中 就写成了九条数据麻烦老师帮忙看看 怎么只生成三条数据!

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
从第一个表的两个多值字段的值 拆分成多个明细表 当前党风廉政意见回复表中一条数据:身份证号有三个 对应回复关联人有三个 结果新增到明细中 就写成了九条数据麻烦老师帮忙看看 怎么只生成三条数据!  发帖心情 Post By:2022/3/29 18:37:00 [只看该作者]

从第一个表的两个多值字段的值  拆分成多个明细表 

当前党风廉政意见回复表中一条数据:身份证号有三个  对应回复关联人有三个  

结果新增到明细中  就写成了九条数据

麻烦老师帮忙看看  怎么只生成三条数据!

 

当前代码如下:【红色部分代码怎么修正呢?】

DataTables("党风廉政意见回复明细").DeleteFor("")
Dim uuids As List(Of String())
uuids = DataTables("党风廉政意见回复").sqlGetValues("uuid|身份证号|回复关联人")
For Each uuid As String() In uuids
    'Output.Show(uuid(0))
    'Output.Show(uuid(1))
    'Output.Show(uuid(2))
    Dim ssxm As String =uuid(1).Trim()
    Dim Values12() As String
    Values12 = ssxm.split(",")
   
    Dim hfglr As String =uuid(2).Trim()
    Dim Values() As String
    Values = hfglr.split(",")

    For Index12 As Integer = 0 To Values12.Length -1
        output.show(Values12(Index12))  '输出得到三个身份证号1,2,3'
        For Index As Integer = 0 To Values.Length -1
            Dim rr As Table=Tables("党风廉政意见回复明细")
            rr.AddNew
            For Each c As DataCol In DataTables("党风廉政意见回复").DataCols
                Dim r As DataRow=DataTables("党风廉政意见回复").Find("uuid='" & uuid(0) & "'")
                If r IsNot Nothing Then
                    If c.name.Contains("身份证号") Then
                        rr.Current("身份证号")=Values12(Index12)
                    Else  If c.name.Contains("回复关联人") Then
                        rr.Current("回复关联人")=Values(Index)
                    Else If c.name.Contains("uuid") Then   
                        rr.Current("uuid")=uuid(0)
                    Else
                        rr.Current(c.name)=r(c.name)
                    End If
                End If
            Next
        Next
    Next
Next


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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/29 20:08:00 [只看该作者]

去掉红色的循环

rr.Current("回复关联人")=Values(Index12)

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)去掉红色的循环rr.Current("回复关联...  发帖心情 Post By:2022/3/29 22:10:00 [只看该作者]

老师    去掉遍历之后

出现了张冠李戴的情况

原表数据是

1   王五

2   张三

3   李四

 

结果成了

1  张三

2  李四

3  王五

 

有没有办法确保顺序不变呢?


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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/29 22:14:00 [只看该作者]

录入的时候就是这个顺序。截图说明一下

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)录入的时候就是这个顺序。截图说明一...  发帖心情 Post By:2022/3/29 22:58:00 [只看该作者]

老师  我该用了利用身份证号去查询获取名字  问题得以解决

当前我想进一步实现   回复明细表中如果有对应的UUID值的话  就不再新增明细数据了  下述红色部分代码要怎么修正才能实现呢?

当前明细表里面没有任何数据   代码不弹出10这个提示

 

当前代码如下:

 

'DataTables("党风廉政意见回复明细").DeleteFor("")
Dim uuids As List(Of String())
Dim bb1,bb11 As String
Dim rr1 As Table=Tables("党风廉政意见回复明细")
rr1.StopRedraw
DataTables("党风廉政意见回复明细").DataCols("更新时间").SetDateTimeFormat(DateTimeFormatEnum.DateLongTime)
uuids = DataTables("党风廉政意见回复").sqlGetValues("uuid|身份证号")
For Each uuid As String() In uuids
    Dim ssxm As String =uuid(1).Trim()
    output.show(uuid(0))
    Dim Values12() As String
    Values12 = ssxm.split(",")
    For Index12 As Integer = 0 To Values12.Length -1
        MessageBox.Show(111)
        Dim drs1 As List(Of DataRow)
        drs1 =  DataTables("党风廉政意见回复明细").Select("uuid='" & uuid(0) & "'")
        MessageBox.Show(11)
        For Each dr As DataRow In drs1
            MessageBox.Show(10)
            If dr Is Nothing Then
                MessageBox.Show(1)
                'output.show(Values12(Index12))  '输出得到三个身份证号1,2,3'
                rr1.AddNew
                For Each c As DataCol In DataTables("党风廉政意见回复").DataCols
                    Dim r As DataRow=DataTables("党风廉政意见回复").Find("uuid='" & uuid(0) & "'")
                    If r IsNot Nothing Then
                        If c.name.Contains("身份证号") Then
                            rr1.Current("身份证号")=Values12(Index12)
                            'Else  If c.name.Contains("回复关联人") Then
                            'rr.Current("回复关联人")=Values(Index12)
                        Else If c.name.Contains("uuid") Then
                            rr1.Current("uuid")=uuid(0)
                        Else
                            rr1.Current(c.name)=r(c.name)
                        End If
                    End

[此贴子已经被作者于2022/3/29 22:59:11编辑过]

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


加好友 发短信
等级:超级版主 帖子:107147 积分:544978 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/29 23:14:00 [只看该作者]

    For Index12 As Integer = 0 To Values12.Length -1
        MessageBox.Show(111)
        if  DataTables("党风廉政意见回复明细").find("uuid='" & uuid(0) & "'") is nothing
                MessageBox.Show(1)
                'output.show(Values12(Index12))  '输出得到三个身份证号1,2,3'
                rr1.AddNew

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)    For Index12 As Integ...  发帖心情 Post By:2022/3/30 0:43:00 [只看该作者]

谢谢老师

 回到顶部