以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [原创]跨表条件筛选引用  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=139289)

--  作者:ideaplayer
--  发布时间:2019/8/10 0:02:00
--  [原创]跨表条件筛选引用
老师好,还请帮忙看看如何实现下面功能的代码。谢谢

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


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

--  作者:有点蓝
--  发布时间:2019/8/10 8:34:00
--  
参考:http://www.foxtable.com/webhelp/topics/1451.htm
--  作者:ideaplayer
--  发布时间:2019/8/10 9:15:00
--  
你好老师,我算是个小白,帮助文件里的应用实例我可以看明白,同等条件的时候我可以自行修改使用,但是现在其中多了一个筛选条件,需要筛选出《项目跟进》表中,最新日期的跟进状态引用到《项目》主表。

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

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


--  作者:有点蓝
--  发布时间:2019/8/10 9:42:00
--  
参考:http://www.foxtable.com/webhelp/topics/0396.htm



--  作者:ideaplayer
--  发布时间: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\'"
请问我想修改为产品品名是随着行选择内容变化的变量,请问如何改写此处代码?多谢了

--  作者:有点蓝
--  发布时间:2019/8/10 10:38:00
--  
参考:http://www.foxtable.com/webhelp/topics/1284.htm

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

--  作者:ideaplayer
--  发布时间: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

--  作者:有点蓝
--  发布时间: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
--  发布时间:2019/8/10 12:02:00
--  
可以了,万分感谢!