Foxtable(狐表)用户栏目专家坐堂 → 基础问题


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

主题:基础问题

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


加好友 发短信
等级:婴狐 帖子:32 积分:286 威望:0 精华:0 注册:2018/7/8 7:44:00
基础问题  发帖心情 Post By:2018/7/18 11:55:00 [只看该作者]

现在我每个表都用到如下统计代码,想用菜单代替,但对e参数不是很熟,如何将表事件代码转为标准按钮代码?

Dim skdt As DataTable
Dim skdc As DataCol
If e.DataCol.name = "lwg" Or e.DataCol.name = "Gyg"
  Dim sksumlwg As Double
  Dim sksumgyg As Double
  For Each skdc  In e.DataTable.DataCols
    Select Case skdc.name 
      Case "Lwg12","Lwg16","Lwg18","Lwg20","Lwg22","Lwg25","Lwg28","Lwg32"
        sksumlwg = sksumlwg + e.DataRow(skdc.name)
      Case "Gyg12","Gyg10","Gyg8","Gyg6"
         sksumgyg = sksumgyg + e.DataRow(skdc.name)
    End Select
  Next
    e.DataRow("Lwg") = sksumlwg
    e.DataRow("Gyg") = sksumgyg
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 12:30:00 [只看该作者]

Dim r As Row = Tables("表A").current
Dim skdt As DataTable = r.Table.DataTable
Dim sksumlwg As Double
Dim sksumgyg As Double
For Each skdc As DataCol In skdt.DataCols
    Select Case skdc.name
        Case "Lwg12","Lwg16","Lwg18","Lwg20","Lwg22","Lwg25","Lwg28","Lwg32"
            sksumlwg = sksumlwg + r(skdc.name)
        Case "Gyg12","Gyg10","Gyg8","Gyg6"
            sksumgyg = sksumgyg + r(skdc.name)
    End Select
Next
r("Lwg") = sksumlwg
r("Gyg") = sksumgyg

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


加好友 发短信
等级:婴狐 帖子:32 积分:286 威望:0 精华:0 注册:2018/7/8 7:44:00
  发帖心情 Post By:2018/7/18 14:17:00 [只看该作者]

Dim r As Row = Tables("表A").current
这一句是否有了局限,如果一个项目里有十个表需要用这个功能组件呢?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 14:29:00 [只看该作者]

Dim r As Row = Tables("表A").current

 

改成

 

Dim r As Row = currentTable.current


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


加好友 发短信
等级:婴狐 帖子:32 积分:286 威望:0 精华:0 注册:2018/7/8 7:44:00
  发帖心情 Post By:2018/7/18 14:48:00 [只看该作者]

如果需要列Lwg和列Gy一次性完成整列统计,不要一行一行的,可以实现吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 15:52:00 [只看该作者]

Dim skdt As DataTable = DataTables("表A")
For Each r As DataRow In skdt.Select("")
    Dim sksumlwg As Double = 0
    Dim sksumgyg As Double = 0
    For Each skdc As DataCol In skdt.DataCols
        Select Case skdc.name
            Case "Lwg12","Lwg16","Lwg18","Lwg20","Lwg22","Lwg25","Lwg28","Lwg32"
                sksumlwg = sksumlwg + r(skdc.name)
            Case "Gyg12","Gyg10","Gyg8","Gyg6"
                sksumgyg = sksumgyg + r(skdc.name)
        End Select
    Next
    r("Lwg") = sksumlwg
    r("Gyg") = sksumgyg
Next

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


加好友 发短信
等级:婴狐 帖子:32 积分:286 威望:0 精华:0 注册:2018/7/8 7:44:00
  发帖心情 Post By:2018/7/18 16:06:00 [只看该作者]

Dim skdt As DataTable = DataTables("表A")
这个表A是否又具有局限性了?

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


加好友 发短信
等级:婴狐 帖子:32 积分:286 威望:0 精华:0 注册:2018/7/8 7:44:00
  发帖心情 Post By:2018/7/18 16:54:00 [只看该作者]


Dim skdt As DataTable = DataTables("表A")改为


 Dim skdt As DataTable =currenttable.DataTable 
会有影响吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/18 17:33:00 [只看该作者]

如果多个表一起执行,改成下面,如果运算当前表,改成 Dim skdt As DataTable =currenttable.DataTable

 

Dim dts() As String = {"表A", "表B", "表C"}
For Each s As String In dts
    Dim skdt As DataTable = DataTables(s)
    For Each r As DataRow In skdt.Select("")
        Dim sksumlwg As Double = 0
        Dim sksumgyg As Double = 0
        For Each skdc As DataCol In skdt.DataCols
            Select Case skdc.name
                Case "Lwg12","Lwg16","Lwg18","Lwg20","Lwg22","Lwg25","Lwg28","Lwg32"
                    sksumlwg = sksumlwg + r(skdc.name)
                Case "Gyg12","Gyg10","Gyg8","Gyg6"
                    sksumgyg = sksumgyg + r(skdc.name)
            End Select
        Next
        r("Lwg") = sksumlwg
        r("Gyg") = sksumgyg
    Next
Next


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


加好友 发短信
等级:婴狐 帖子:32 积分:286 威望:0 精华:0 注册:2018/7/8 7:44:00
  发帖心情 Post By:2018/7/19 14:49:00 [只看该作者]

 如果要实现当右击Lwg或Gyg这两列中的任意一列的单元格时,显示快捷菜单,如何设置代码?

 回到顶部
总数 11 1 2 下一页