Foxtable(狐表)用户栏目专家坐堂 → 这段代码运行没有效果,如何改动?


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

主题:这段代码运行没有效果,如何改动?

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


加好友 发短信
等级:二尾狐 帖子:563 积分:4532 威望:0 精华:0 注册:2016/4/17 20:05:00
这段代码运行没有效果,如何改动?  发帖心情 Post By: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
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2180 积分:13816 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2019/8/28 15:25:00 [只看该作者]

Dim Filter As string

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


加好友 发短信
等级:九尾狐 帖子:2180 积分:13816 威望:0 精华:2 注册:2012/2/25 10:59:00
  发帖心情 Post By:2019/8/28 15:26:00 [只看该作者]

Filter1 又从哪里冒出来的?

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


加好友 发短信
等级:超级版主 帖子:107896 积分:548849 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:563 积分:4532 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By: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


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


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

全局表Datachanged开启了吗

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


加好友 发短信
等级:二尾狐 帖子:563 积分:4532 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By:2019/8/28 19:07:00 [只看该作者]

 默认的有效,不需要开启,即使要开启,我加入

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


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


加好友 发短信
等级:二尾狐 帖子:563 积分:4532 威望:0 精华:0 注册:2016/4/17 20:05:00
  发帖心情 Post By: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

 回到顶部