以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关联表输入数据时会闪烁  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47128)

--  作者:chnfo
--  发布时间:2014/3/4 22:49:00
--  [求助]关联表输入数据时会闪烁
我今天忘了带加密狗回来,没法上传文件,先提一下问题。

我有两个表A和B。
A表里有PID,ID,V、IsTree(逻辑型)四 个字段,B表里有PID,AID,V三个字段。
AB通过PID-PID,以及ID-AID关联。关联方式为单向。

A表里的金额V要合计B表的V,但不是用表达式算的,因为A表中的V还有其它地方要引用。

A表的prepareedit事件中写的代码意思
tables("A.B").visiable = e.row("Istree") = true  \'意即如果当前行的istree=false时,关联表不显示

但我在A表中切换行时,A.B表会闪烁,不知一般情况下是什么原因?


--  作者:有点甜
--  发布时间:2014/3/4 23:13:00
--  

  看是不是这个问题?

 

If e.IsFocusCell Then
    Tables("A.B").visiable = e.Row("Istree") = True
End If


--  作者:chnfo
--  发布时间:2014/3/5 22:06:00
--  
我观察了一下,如果A.B没有数据行的时候,表A切换行时就会闪烁。

我去掉了A和B表所有的事件,就留下了表A的

表事件

 

A_PrepareEdit

 

\'If e.IsFocusCell Then

\'    Tables("A.B").Visible =  e.Row("Tree") = True

\'End If

 

If e.Table.Current IsNot Nothing Then

    Tables("A.B").Visible =   e.Row("Tree") = True

End If


不管用上面的哪一部分代码,仍然在表A切换行时闪烁。即使表A中的连续多行的 Tree = true



[此贴子已经被作者于2014-3-5 22:30:02编辑过]

--  作者:有点甜
--  发布时间:2014/3/5 22:30:00
--  

 不解你为什么一定要在这个事件些这个东西。

 

 你可以判断一下关联表是否有数据,在执行这句代码的  Tables("TbWPC.TbWL").Visible 


--  作者:chnfo
--  发布时间:2014/3/5 22:35:00
--  
Tables("A.B").Visible 是否 = true
并不取决于A.B是否有数据,而是取决于表A的row("tree") = true 

本意是:如果表A的row("tree") = true ,就可以在表A.B中增加行。

本来呢,可以让表A.B一直显示,但如果表A的row("tree") = 0,就不让用户在表A.B中增加行;否则就允许增加行

但这样做,还要多解释一番:既然不让增加行,就不显示出来不是更好。所以就整成这样子了。
[此贴子已经被作者于2014-3-5 22:37:05编辑过]

--  作者:有点甜
--  发布时间:2014/3/5 22:41:00
--  

 我测试了一个例子,发觉只是 false 和 true 切换的时候才会闪一下的。

 

 你可以停止重绘一下 http://www.foxtable.com/help/topics/0401.htm

 


--  作者:chnfo
--  发布时间:2014/3/6 0:17:00
--  
本意:A和B两个表单向关联。
当A表中增加行的时候,自动在B表中增加行。

当A表的tree = true时,显示出A.B表,但自动增加的行不显示出来(自动增加的行在其它地方有用)。
然后可以在A.B表中增加行。

试着做了一下之后,发现A行在切换时,A.B表总是闪烁,请问如何解决之?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:屏幕闪烁.rar


--  作者:Bin
--  发布时间:2014/3/6 8:29:00
--  
参考6楼的方法试试.
--  作者:lsy
--  发布时间:2014/3/6 8:58:00
--  

也许,关联表实际应该在一个窗口中,没法控制这个窗口停止绘制,恢复绘制。

所以就不停的闪啊闪。


--  作者:chnfo
--  发布时间:2014/3/6 10:09:00
--  
唉,各种方法都试了一遍,没法控制它不闪,还请各位不吝赐教,谢谢 再观察,这个闪好象是随机的,并无规律
[此贴子已经被作者于2014-3-6 10:33:47编辑过]