以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]关联表输入数据时会闪烁 (http://foxtable.com/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 |
||||
-- 作者: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表总是闪烁,请问如何解决之?
|
||||
-- 作者: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编辑过]
|