Foxtable(狐表)用户栏目专家坐堂 → [原创]跨表条件筛选引用


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

主题:[原创]跨表条件筛选引用

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


加好友 发短信
等级:幼狐 帖子:51 积分:674 威望:0 精华:0 注册:2019/4/3 21:28:00
[原创]跨表条件筛选引用  发帖心情 Post By:2019/8/10 0:02:00 [只看该作者]

老师好,还请帮忙看看如何实现下面功能的代码。谢谢

图片点击可在新窗口打开查看此主题相关图片如下:项目状态填写.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/8/10 0:09:56编辑过]

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


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


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


加好友 发短信
等级:幼狐 帖子:51 积分:674 威望:0 精华:0 注册:2019/4/3 21:28:00
  发帖心情 Post By:2019/8/10 9:15:00 [只看该作者]

你好老师,我算是个小白,帮助文件里的应用实例我可以看明白,同等条件的时候我可以自行修改使用,但是现在其中多了一个筛选条件,需要筛选出《项目跟进》表中,最新日期的跟进状态引用到《项目》主表。

所以实在不会此处筛选。也不知如何修改示例程序。

还望能帮帮忙直接给出完整的程序段,万分感谢。


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


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


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


加好友 发短信
等级:幼狐 帖子:51 积分:674 威望:0 精华:0 注册:2019/4/3 21:28:00
  发帖心情 Post By:2019/8/10 10:32:00 [只看该作者]

Dim dr As DataRow
With DataTables("订单")
    dr
 = .Find("产品 = 'PD01'","日期 Desc"
'找出最后一次订购PD01产品的记录
    
dr = .Find("产品 = 'PD01'","日期 Desc",1'找出倒数第二次订购PD01产品的记录
End With


你好老师,上述示例是固定了订单表中产品品名的,"产品 = 'PD01'"
请问我想修改为产品品名是随着行选择内容变化的变量,请问如何改写此处代码?多谢了

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


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

参考:http://www.foxtable.com/webhelp/topics/1284.htm

dim s as string = "PD01"
dr = .Find("产品 = '" & s & "'","日期 Desc")

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


加好友 发短信
等级:幼狐 帖子:51 积分:674 威望:0 精华:0 注册:2019/4/3 21:28:00
  发帖心情 Post By:2019/8/10 10:58:00 [只看该作者]

表《项目》的 Datecolchanged 事件如下:(还请帮看看哪里出了问题,多谢了)


Dim dr1 As DataRow
Dim s As String = "项目编号"
With DataTables("项目跟进")
    dr1 = .Find(" 项目编号 = '" & s & "'","跟进日期 Desc") '找出最后一次订购PD01产品的记录
End With
 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("项目跟进").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

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/10 11:19:00 [只看该作者]

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("项目跟进").Find("[项目编号] = '" & e.NewValue & "'","跟进日期 Desc")
        If dr IsNot Nothing
            For Each nm As String In nms
                e.DataRow(nm) = dr(nm)
            Next
        End If
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:51 积分:674 威望:0 精华:0 注册:2019/4/3 21:28:00
  发帖心情 Post By:2019/8/10 12:02:00 [只看该作者]

可以了,万分感谢!

 回到顶部