Foxtable(狐表)用户栏目专家坐堂 → 分组查询


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

主题:分组查询

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
分组查询  发帖心情 Post By:2019/5/4 14:06:00 [只看该作者]

原数据如图

图片点击可在新窗口打开查看此主题相关图片如下:原数据.png
图片点击可在新窗口打开查看
希望在本数据表上实现:当B行的厂家单号与表中的A行的厂家单号相同时,B行的备注列自动复制A行的备注列内容

图片点击可在新窗口打开查看此主题相关图片如下:本表实现.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/5/4 14:14:40编辑过]

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2019/5/4 14:20:00 [只看该作者]

或者通过查询实现下图

图片点击可在新窗口打开查看此主题相关图片如下:查询实现.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/5/4 14:19:57编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/5/4 15:32:00 [只看该作者]

Dim pr As DataRow = Nothing
For Each r As DataRow In DataTables("表A").Select("", "第一列")
    If pr IsNot Nothing AndAlso pr("第一列") = r("第一列") Then
        r("第二列") = pr("第二列")
    End If
    pr = r
Next

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


加好友 发短信
等级:幼狐 帖子:136 积分:1427 威望:0 精华:0 注册:2013/8/7 18:14:00
  发帖心情 Post By:2019/5/6 19:07:00 [只看该作者]

老师,需求:只有第1列有变动且变动结果为IsNot Nothing,才复制第2列的数据
           目前:第1列有变动就复制第2列的数据(第1列内容删除且第2列因之前代码执行后有数据A的话,会导致第1列所有行内容为IsNot Nothing的第2列内容自动复制为A
代码如下

Dim dr As DataRow = e.DataRow

Select Case e.DataCol.Name

  Case "本单日期"

If dr.IsNull("厂家单号"Then

    e.DataRow("厂家日期") = e.DataRow("本单日期")

End If

 

  Case "供应商名称"

Dim pr As DataRow = e.DataRow.GetParentRow("应付科目")

If pr IsNot Nothing Then

    e.DataRow("供应商") = pr("龙域名称")

End If

 

If dr.IsNull("供应商"Then

    e.DataRow("供应商") = e.DataRow("供应商名称")

End If

 

  Case "厂家单号"

Dim pr1 As DataRow = Nothing

For Each r As DataRow In DataTables("应付单据复核").Select("", "厂家单号")

    If r("厂家单号") IsNot Nothing AndAlso pr1 IsNot Nothing AndAlso pr1("厂家单号") = r("厂家单号"Then

        r("备注") = pr1("备注")

    End If

    pr1 = r

Next

End Select

[此贴子已经被作者于2019/5/6 19:12:06编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/6 20:12:00 [只看该作者]

Case "厂家单号"
    If e.newvalue > ""
        Dim t As Table = Tables(e.DataTable.Name)
        Dim idx As Integer = t.FindRow(e.DataRow)
        If idx > 0 Then
            Dim r As Row = t.Rows(idx-1)
            If r("厂家单号") = e.newvalue Then
                e.DataRow("备注") = r("备注")
            End If
        End If
    End If

 回到顶部