以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助][求助]为何调试过程中会出错?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=53504)

--  作者:瞩望星空
--  发布时间:2014/7/9 14:57:00
--  [求助][求助]为何调试过程中会出错?
先按“对账”,把所有“出库”表的记录标志为“已对账”,
再把“测试”窗口中的左下角中的“出库”表,逻辑列清空,再按“对账”按钮时,出错了。

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

--  作者:有点甜
--  发布时间:2014/7/9 14:59:00
--  
 报什么错。
--  作者:Bin
--  发布时间:2014/7/9 14:59:00
--  
文件呢?
--  作者:瞩望星空
--  发布时间:2014/7/9 15:03:00
--  

现在不能上传附件了。

我上传了好几次,都没有反应。

我这边电脑没有问题,我用QQ邮箱测试过,能很快上传附件。


--  作者:有点甜
--  发布时间:2014/7/9 15:04: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)
    r("已对账") = bms.Contains(r("领用部门"))
Next
SystemReady = True


--  作者:瞩望星空
--  发布时间:2014/7/9 15:11:00
--  

加了这二个语句后,正常了。

但不知道原来的项目文件中是哪个事件代码引起错误的?

 


--  作者:有点甜
--  发布时间:2014/7/9 15:17:00
--  
 CurrentChanged 的代码引发的错误
--  作者:瞩望星空
--  发布时间:2014/7/9 15:25:00
--  
哦,谢谢。我去加一些判断语句。

还有,能不能看一看原贴?
我这个处理过程还需要加入其他处理,所以再好能按我的执行过程来修改:
我用了"tables",而没有用“datatables”,我想记录多时,先筛选需要处理的数据,这样能少一些记录数。

Dim mcs As List(Of String)   \'领料部门集合
mcs = DataTables("领料部门").GetValues("部门名称","[是否对账] = true")  ‘根据领料部门表的“是否对账”,确定是否对出库主表进行标志
For Each mc As String In mcs    \'按名称循环
    Tables(e.form.name & "_出库明细表").StopRedraw
    Tables(e.form.name & "_出库明细表").Filter = "领用部门 = \'" & mc & "\' and 已对账 = false"
    
    If Tables(e.form.name & "_出库明细表").Rows.Count>0  \'有明细表记录才进行
        Tables(e.form.name & "_出库主表").Filter = "领用部门 = \'" & mc & "\' and 已对账 = false"
        \'Return
        For Each r As Row In Tables(e.form.name & "_出库主表").Rows
            r("已对账") = True
        Next
        \'Return
    End If
    Tables(e.form.name & "_出库明细表").ResumeRedraw
Next

--  作者:瞩望星空
--  发布时间:2014/7/9 15:39:00
--  
回复7楼贴,
 CurrentChanged 的代码已想到Tables(e.form.name & "_出库主表")的记录数为0,所以没有记录时,
右下方的Tables(e.form.name & "_出库明细表")应该为空的。

If Tables(e.form.name & "_出库主表").Rows.Count > 0 Then
    Tables(e.form.name & "_出库明细表").Filter = "出库单编号 = \'" & Tables(e.form.name & "_出库主表").Current("出库单编号") & "\'"
Else
    Tables(e.form.name & "_出库明细表").Filter = "2 = 1"
End  If

--  作者:有点甜
--  发布时间:2014/7/9 15:39:00
--  

 加入其他处理,也是这样写,有什么问题吗?你那样写代码不合规范。