以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  这段代码运行没有效果,如何改动?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140052)

--  作者:scofields
--  发布时间:2019/8/28 15:24:00
--  这段代码运行没有效果,如何改动?
 跨表引用数据没有用。如何修改

If e.DataCol.Name = "沙月度计划" OrElse e.DataCol.Name = "石月度计划"
    Dim Filter As Double = "[沙月度计划] = \'" & e.DataRow("沙月度计划") & "\'And [石月度计划] = \'" & e.DataRow("石月度计划") & "\'"
    DataTables("日报").ReplaceFor("沙月度计划", e.NewValue, Filter1)
    DataTables("日报").ReplaceFor("石月度计划", e.NewValue, Filter1)
End If

--  作者:sloyy
--  发布时间:2019/8/28 15:25:00
--  
Dim Filter As string
--  作者:sloyy
--  发布时间:2019/8/28 15:26:00
--  
Filter1 又从哪里冒出来的?
--  作者:有点蓝
--  发布时间:2019/8/28 15:55:00
--  
If e.DataCol.Name = "沙月度计划" OrElse e.DataCol.Name = "石月度计划" 
    Dim Filter As string = "[沙月度计划] = \'" & e.DataRow("沙月度计划") & "\' And [石月度计划] = \'" & e.DataRow("石月度计划") & "\'"
    DataTables("日报").ReplaceFor("沙月度计划", e.NewValue, Filter )
    DataTables("日报").ReplaceFor("石月度计划", e.NewValue, Filter )
End If
--  作者:scofields
--  发布时间:2019/8/28 16:47:00
--  
 还是不行,现在我把事件稍微改了一下,放在项目的全局表Datachanged属性里,还是不行,真是头大。蓝老师,看看到底哪出了问题,销售单位、市场部列是都有重复值的
Dim dr As DataRow
Select Case e.DataTable.Name
    Case "日报"
        If e.DataCol.Name= "销售单位" OrElse e.DataCol.Name = "市场部"
            dr=DataTables("月度计划").Find("销售单位= \'"& e.DataRow("销售单位") & "\' and 市场部 = \'"& e.DataRow("市场部") & "\'")
            If dr IsNot Nothing Then
                e.DataRow("沙月度计划")= dr("沙月度计划")
                e.DataRow("石月度计划")= dr("石月度计划")
            End If
        End If
End Select


--  作者:有点蓝
--  发布时间:2019/8/28 17:43:00
--  
全局表Datachanged开启了吗
--  作者:scofields
--  发布时间:2019/8/28 19:07:00
--  
 默认的有效,不需要开启,即使要开启,我加入

DataTables("日报").GlobalHandler.AfterEdit = True也无效。


--  作者:scofields
--  发布时间:2019/8/28 19:12:00
--  
 找到问题所在了,原来是这里出问题了,把and 改成 OrElse就行了。
Dim dr As DataRow
Select Case e.DataTable.Name
    Case "日报"

        If e.DataCol.Name= "销售单位" and e.DataCol.Name = "市场部"  --把 and 改成 OrElse
            dr=DataTables("月度计划").Find("销售单位= \'"& e.DataRow("销售单位") & "\' and 市场部 = \'"& e.DataRow("市场部") & "\'")
            If dr IsNot Nothing Then
                e.DataRow("沙月度计划")= dr("沙月度计划")
                e.DataRow("石月度计划")= dr("石月度计划")
            End If
        End If
End Select