Foxtable(狐表)用户栏目专家坐堂 → [求助][求助]为何调试过程中会出错?


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

主题:[求助][求助]为何调试过程中会出错?

帅哥哟,离线,有人找我吗?
瞩望星空
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4727 威望:0 精华:0 注册:2013/4/20 20:08:00
  发帖心情 Post By:2014/7/9 22:34:00 [只看该作者]

甜总,还是请留心再看一下,你在7楼说“CurrentChanged”事件代码有问题,所以我在9楼

把这些代码贴出来,原认为是Tables(e.form.name & "_出库明细表").Filter = "2 = 1"

用错了。那么我的“CurrentChanged”代码到底是哪里错了呢?是不是当窗口表记录数为空时,

不应该执行“CurrentChanged”,或者说如何避免这个错误?


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


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

 在清空的时候,就不应触发currentChanged代码,会有冲突。所有关闭了事件触发。

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


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

不是代码错,是执行某项操作的时候,不去触发对应事件。

 回到顶部
帅哥哟,离线,有人找我吗?
瞩望星空
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4727 威望:0 精华:0 注册:2013/4/20 20:08:00
  发帖心情 Post By:2014/7/9 23:14:00 [只看该作者]

哦,这样搞清楚了。

 

另外,你给的一段代码能执行,但执行时,没有按“领用部门”为一组去执行,而是按“出库主表”的记录去执行的,

与我原来的要求不一样,原来是这样的:

1、先得出“领料部门”

'Dim bms As List(Of String)   '领料部门集合
'bms = DataTables("领料部门").GetValues("部门名称","[是否对账] = true")

2、按领料部门进行循环

For Each bm As String In bms    '按名称循环
Next

3、在这个循环中,做二件事:

(1)得到“出库明细表”中当前“领用部门”的“已对账”为false的记录

'Tables(e.form.name & "_出库明细表").Filter = "领用部门 = '" & bm & "' and 已对账 = false"
       只要这个表的记录数不为0,则拷贝至一个临时表(这步省略了),并且做下面这件事。

 (2)把“出库主表”中当前“领用部门”的“已对账”设为true。

 

请问如何改原来的代码:

Dim bms As List(Of String)   '领料部门集合
bms = DataTables("领料部门").GetValues("部门名称","[是否对账] = true")
For Each bm As String In bms    '按名称循环
    Tables(e.form.name & "_出库明细表").StopRedraw
    Tables(e.form.name & "_出库明细表").Filter = "领用部门 = '" & bm & "' and 已对账 = false"
    If Tables(e.form.name & "_出库明细表").Rows.Count>0  '有明细表记录才进行
        '省略拷贝至临时表操作
        Tables(e.form.name & "_出库主表").Filter = "领用部门 = '" & bm & "' and 已对账 = false"
        For Each r As Row In Tables(e.form.name & "_出库主表").Rows
            r("已对账") = True
        Next
    End If
    Tables(e.form.name & "_出库明细表").ResumeRedraw
Next

 

(附件又不能上传了)

[此贴子已经被作者于2014-7-9 23:14:44编辑过]

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


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

 代码改一下,你改一下对应的表名即可

 

SystemReady = False
Dim bms As List(Of String)   '领料部门集合
bms = DataTables("领料部门").GetValues("部门名称","[是否对账] = true")
For Each r As DataRow In DataTables("出库").Select(Tables(e.form.name & "_出库主表").Filter)
    If r("已对账") = False AndAlso bms.Contains(r("领用部门")) Then
        For Each dr As DataRow In DataTables("出库明细").Select("出库编号 = '" & r("出库编号") & "'")
            '拷贝到临时表
        Next
        r("已对账") = True
    End If
Next
SystemReady = True

 回到顶部
帅哥哟,离线,有人找我吗?
瞩望星空
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:531 积分:4727 威望:0 精华:0 注册:2013/4/20 20:08:00
  发帖心情 Post By:2014/7/10 10:50:00 [只看该作者]

嗯,谢谢甜总!

 回到顶部
总数 26 上一页 1 2 3