Foxtable(狐表)用户栏目专家坐堂 → 表中的代码怎么转换为按钮中的代码


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

主题:表中的代码怎么转换为按钮中的代码

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
表中的代码怎么转换为按钮中的代码  发帖心情 Post By:2016/7/31 13:01:00 [只看该作者]

以下代码只能处理当前行的数据,如果处理几万行,该怎么办?

Dim er As Row = Tables("表A").current
Dim dr As DataRow = er.table.datatable.Find("[_SortKey] < " & er("_SortKey"), "[_SortKey] Desc") '找出上一行
If dr Is Nothing Then
    er("借贷方") = "贷"
Else
    If er("余额") > dr("余额")
        er("借贷方") = "贷"
    Else
        er("借贷方") = "借"
    End If
End If

If er("借贷方") = "贷" Then
    er("贷方金额") = er("交易金额")
Else
    er("借方金额") = er("交易金额")
End If

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16.zip


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/7/31 13:01:00 [只看该作者]

例子中的银行转换窗口

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/31 15:08:00 [只看该作者]

Dim dr As DataRow = Nothing
For Each er As DataRow In DataTables("银行明细").Select("", "_sortkey")
    If dr Is Nothing Then
        er("借贷方") = "贷"
    Else
        If er("余额") > dr("余额")
            er("借贷方") = "贷"
        Else
            er("借贷方") = "借"
        End If
    End If
   
    If er("借贷方") = "贷" Then
        er("贷方金额") = er("交易金额")
    Else
        er("借方金额") = er("交易金额")
    End If
    dr = er
   
Next

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/7/31 17:43:00 [只看该作者]

这个代码是否有办法改进,效率太低了,5000行的数据至少得半个小时

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/31 18:15:00 [只看该作者]

 不可能。如果慢,说明你datacolchanged事件有问题。可以加上屏蔽的代码

 

SystemReady = False

 

代码

 

SystemReady = True


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15278 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2016/8/2 12:23:00 [只看该作者]

以下代码那里错了,只能计算表第一行的,怎么样修改?

Dim v2 As Double

Dim v1 As Double
Dim dr As DataRow = Nothing
For Each er As DataRow In DataTables("银行现金汇总").Select("", "_sortkey")
    If dr Is Nothing Then
        If er.IsNull("交易户名") = False AndAlso er.IsNull("涉及人员") = False Then
            Dim nms1() As String = er("交易户名").Split(",") '将工号列内容拆分成数组
            Dim nms2() As String = er("涉及人员").Split(",") '将工号列内容拆分成数组
            For Each nm1 As String In nms1 '遍历参与加工此产品的每个工号
                For Each nm2 As String In nms2 '遍历参与加工此产品的每个工号
                    v1 = v1 + DataTables("银行明细").sqlCompute("sum(借方金额)","对方户名 = '"& nm1 & "'and 交易户名 = '" & nm2 & "'and 交易日期 >= '" & er("开始日期") &"'and 交易日期 <= '" & er("截止日期") &"'")
                    v2 = v2 + DataTables("银行明细").sqlCompute("sum(贷方金额)","对方户名 = '"& nm1 & "'and 交易户名 = '" & nm2 & "'and 交易日期 >= '" & er("开始日期") &"'and 交易日期 <= '" & er("截止日期") &"'")
                Next
            Next
            er("银行交易_借方金额") = v1
            er("银行交易_贷方金额") = v2
        End If
    End If
    dr = er
Next


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/8/2 12:35:00 [只看该作者]

 代码看不出问题,你可以用MessageBox跟踪调试一下。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/2 18:51:00 [只看该作者]

 回复6楼,代码没有问题的。上传实例测试。

 回到顶部