以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  DrawCell事件刷新有点问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=58965)

--  作者:jnletao
--  发布时间:2014/10/27 14:38:00
--  DrawCell事件刷新有点问题
关联子表DrawCell事件,
If e.Table.IsRelation Then
If e.Table.IsChild Then
If e.Row.IsGroup = False Then
\' 用于在单据窗口中将所有负值显示为正值
If Forms("单据窗口").Opened Then
Select Case e.Col.Name
Case "数量"
e.Text = Math.Abs(CDbl(e.Row(e.Col.Name)))
Case "金额"
e.Text = Format(Math.Abs(CDbl(e.Row(e.Col.Name))),"N")
End Select
End If
End If
End If
End If

放在窗体里执行时刷新显示。

每当单据窗体里的关联子表记录行被删除,克隆,数据被修改时,都会调用
Tables("单据子表").Refresh \'用于强制刷新子表DrawCell事件,以便子表的数量,金额列显示绝对值
现在问题来了。
每当删除,克隆子表记录行后,DrawCell不启动,只有当鼠标放在记录行上滑动一边,再会刷新。
图片点击可在新窗口打开查看
[此贴子已经被作者于2014-10-27 14:38:18编辑过]

--  作者:Bin
--  发布时间:2014/10/27 14:39:00
--  
在删除行事件也加入刷新代码
--  作者:有点甜
--  发布时间:2014/10/27 14:40:00
--  
 删除或者克隆的时候,可以执行Tables("xxx").Refresh试试
--  作者:jnletao
--  发布时间:2014/10/27 14:41:00
--  
加了。还是一样。
[此贴子已经被作者于2014-10-27 14:41:22编辑过]

--  作者:Bin
--  发布时间:2014/10/27 14:47:00
--  
上例子
--  作者:有点甜
--  发布时间:2014/10/27 14:49:00
--  
例子发上来
--  作者:jnletao
--  发布时间:2014/10/27 15:55:00
--  
老师,中间计算过程太复杂,我在【模拟简例】中测试到是没问题。估计与其他事件运算量有关系。

现在我在click事件里加了.Refresh。效果好了点。例子就不传了。