Foxtable(狐表)用户栏目专家坐堂 → 能不能把datacolchanged事件里的代码放在按键上去实现


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

主题:能不能把datacolchanged事件里的代码放在按键上去实现

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/18 14:36:00 [显示全部帖子]

比如代码

 

DataTables("员工").DataCols("司机").RaiseDataColChanged("司机 = '" & e.node.Text & "'")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/18 15:55:00 [显示全部帖子]

Dim dt As DataTable = DataTables("表a")
For Each ary() As String In dt.GetValues("司机|车牌|出车日期")
    Dim filter As String = "司机 = '" & ary(0) & "' and 车牌 = '" & ary(1) & "' and 出车日期 = #" & ary(2) & "#"
    Dim drs As List(of DataRow) = dt.Select(filter)
    For Each dr As DataRow In drs
        If DataTables("价目表").DataCols.Contains("车型_" & dr("车型")) Then
            Dim jdrs As List(of DataRow) = DataTables("价目表").Select("项目 like '%" & dr("项目") & "%' and 城市 like '%" & dr("城市") & "%'")
            For Each jdr As DataRow In jdrs
                If dr("地点") Like "*" & jdr("地点") & "*" Then
                    dr("运费") = jdr("车型_" & dr("车型"))
                    Exit For
                End If
            Next
        End If
    Next
    drs = dt.Select(filter, "运费 desc")
    For i As Integer = 0 To drs.Count - 1
       
        Select Case drs(i)("车型")
            Case "9M6"
                drs(i)("点费") = 80
            Case "6M2","6M8","7M6"
                drs(i)("点费") = 60
            Case "4M5","4M2"
                drs(i)("点费") = 30
        End Select
       
        If i = 0 Then
            drs(i)("点费") = Nothing
        Else
            drs(i)("运费") = Nothing
        End If
    Next
    For Each str As String In dt.GetValues("送货地址", filter)
        drs = dt.Select(filter & " and 送货地址 = '" & str & "'")
        For i As Integer = 0 To drs.Count - 1
            If i > 0 Then
                drs(i)("点费") = Nothing
            End If
        Next
    Next
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/18 17:41:00 [显示全部帖子]

那你重置列是否可以计算?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/18 18:08:00 [显示全部帖子]

以下是引用sf020cf在2015/11/18 18:01:00的发言:

datacolchanged事件里只剩下 客户列变化之后跨表引用的代码了 计算的代码都在按键上了

 

 

代码应该是没有问题的,无法计算运费,就是没有找到对应的地点。

 

单独导出一几个对应表的数据,做个小例发上来测试。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/19 10:53:00 [显示全部帖子]

这样写

 

Dim filter As String = Tables("应付款项").Filter
Dim arys As List(of String()) = DataTables("应付款项").GetValues( "司机|车牌|出车日期", "出车日期 is not null and 运费 is null and 点费 is null and " & iif(filter>"", filter, "1=1"))


 回到顶部