Foxtable(狐表)用户栏目专家坐堂 → 代码怎么写


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

主题:代码怎么写

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/6 16:26:00 [显示全部帖子]

DataColChanged事件

 

If e.DataCol.name = "第一列" Then
    Dim sum As Double = 0
    For Each s As String In e.DataRow("第一列")
        sum += val(s)
    Next
    e.DataRow("第二列") = sum
End If

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/6 17:22:00 [显示全部帖子]

以下是引用oyei在2018/4/6 16:49:00的发言:
甜老师,用

DataColChanged事件以前有数据的没有计算结果,有什么方法可以运算已有数值和新输入数值的方法吗?

 

重置列 http://www.foxtable.com/webhelp/scr/1469.htm

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/8 8:53:00 [显示全部帖子]

以下是引用oyei在2018/4/7 23:13:00的发言:
代码是这样的意思:如果第1列有数字,第1列第1个数字+第1列第2个数字+第1列第3个数字再加后面所有数字的和在第2列显示(类似字符功能)。如果第1列为空则不计算。如果这样的代码可写的话,那么只求第1列第1个数字+第1列第3个数字的和等变化的代码也实现的了。

 

为空不计算,参考

 

If e.DataCol.name = "第一列" Then   
    If e.DataRow("第一列") = Nothing Then       
        e.DataRow("第二列") = Nothing       
    Else
        Dim sum As Double = 0
        For Each s As String In e.DataRow("第一列")
            sum += val(s)
        Next
        e.DataRow("第二列") = sum       
    End If
End If

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/8 23:29:00 [显示全部帖子]

以下是引用oyei在2018/4/8 20:33:00的发言:
甜老师,如果计算第1列1行869950689的第1个数8加第3个数9再加第4个数9的和(8+9+9),结果显示在第2列,代码怎样写?谢谢

 

1、你每一行的逻辑都不同?

 

2、具体说明你最终要做什么?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/9 14:39:00 [显示全部帖子]

If e.DataCol.name = "第一列" Then
    If e.DataRow("第一列") = Nothing Then
        e.DataRow("第二列") = Nothing
    Else
        Dim sum As Double = 0
        Dim i As Integer = 1
        For Each s As String In e.DataRow("第一列")
            If i=1 OrElse i=3 OrElse i=4 Then
                sum += val(s)
            End If
            i = i+ 1
        Next
        e.DataRow("第二列") = sum
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/26 16:00:00 [显示全部帖子]

异常的逻辑是什么?连续出现3次以上的数据?还是说出现了3次的都统计?统计个数是连续还是不连续的?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/26 16:11:00 [显示全部帖子]

DataColChanged事件

 

If e.DataCol.name = "第一列" Then
    Dim t As Table = Tables("表B")
    Dim idx As Integer = t.FindRow(e.DataRow)
    Dim count As Integer = 0
    For i As Integer = idx To 0 Step -1
        If t.rows(i)("第一列") = e.DataRow("第一列") Then
            count += 1
        Else
            Exit For
        End If
    Next
    For i As Integer = idx+1 To t.rows.count-1
        If t.rows(i)("第一列") = e.DataRow("第一列") Then
            count += 1
        Else
            Exit For
        End If
    Next
msgbox(count)
    if count >= 5 then
        Dim ndr = DataTables("表C").AddNew
        ndr("第一列") = e.datarow("第一列")
        ndr("第二列") = count
    end if
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/26 16:50:00 [显示全部帖子]

以下是引用oyei在2018/4/26 16:38:00的发言:
老师
统计个数只统计连续的。相同的数据不连续也不转入数据表该怎样改?

 

不用改,如果有问题,具体项目发上来测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/26 17:54:00 [显示全部帖子]

If e.DataCol.name = "第一列" Then
    Dim t As Table = Tables("表B")
    Dim idx As Integer = t.FindRow(e.DataRow)
    Dim count As Integer = 0
    For i As Integer = idx To 0 Step -1
        If t.rows(i)("第一列") = e.DataRow("第一列") Then
            count += 1
        Else
            Exit For
        End If
    Next
    For i As Integer = idx+1 To t.rows.count-1
        If t.rows(i)("第一列") = e.DataRow("第一列") Then
            count += 1
        Else
            Exit For
        End If
    Next
    If count >= 5 Then
        Dim ndr = DataTables("表C").find("第一列 = '" & e.DataRow("第一列") & "'")
        If ndr Is Nothing Then ndr = DataTables("表C").addnew
        ndr("第一列") = e.DataRow("第一列")
        ndr("第二列") = count
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/26 20:49:00 [显示全部帖子]

代码一模一样


 回到顶部
总数 29 1 2 3 下一页