以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  绘制颜色  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107535)

--  作者:zhangchi96
--  发布时间:2017/9/29 22:16:00
--  绘制颜色

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
在一个窗体中,插入两个表:表1  表2
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

计划目标:在表2中选择1行,如“职工04”,则表1中只要是有“”职工04“”的都显示为绿色,不知道该在哪个事件中写为好,代码又是如何写?这种情况和说明书里可大不相同。

敬请指教!
[此贴子已经被作者于2017/9/29 22:24:16编辑过]

--  作者:有点蓝
--  发布时间:2017/9/29 22:32:00
--  

表1,drawcell事件
Dim r As Row = Tables("表2").current
If e.Col.name.StartsWith("部门") AndAlso r IsNot Nothing Then
    If e.Row(e.Col.name) = r("姓名")
        e.Style = "样式1"
    End If
End If

--  作者:zhangchi96
--  发布时间:2017/9/30 6:29:00
--  
谢谢,原来我想复杂了。

运行时,在表2里选定某行后,表1里的颜色没动静,要鼠标在表1上飘过后才显示颜色,或者点一下表1旁边多滚动条后才会有颜色反映过来,请问怎么解决

Dim s1() As String = { "部门1","部门2","部门3","部门4","部门5"}
Dim r As Row = Tables("表2").current
For Each dc2  As String  In s1
    If e.Col.name.StartsWith( dc2 ) AndAlso r IsNot Nothing Then
        If e.Row(e.Col.name) = r("姓名")
            e.Style = "样式"
        End If
    End If
Next
[此贴子已经被作者于2017/9/30 6:34:57编辑过]

--  作者:有点蓝
--  发布时间:2017/9/30 8:45:00
--  
按2楼的代码即可,没有必要加循环,画蛇添足。

表2,CurrentChanged事件,加上代码

Tables("表1").Refresh