以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何列内组交替色自动填充?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91114)

--  作者:lublinvisa
--  发布时间:2016/9/29 17:38:00
--  如何列内组交替色自动填充?

如下图,如何做到列内不同姓名组交替色自动填充,但又不影响其它列?


图片点击可在新窗口打开查看此主题相关图片如下:列内交替色自动填充.png
图片点击可在新窗口打开查看

 

目前找到的是以某列排列为依据,来实现行组交替色自动填充的,比较贴近要求,但是它的是整行全表填充,在drawCell时非常吃力,几乎死机,所以想只做某一列内级交替颜色,如何实现?

 

附上行组交替色自动填充代码案例如下:

e.Table.DataTable.AddUserStyle("按编号交替背景色奇",Color.MediumPurple,Color.Black)
e.Table.DataTable.AddUserStyle("按编号交替背景色偶",Color.SkyBlue,Color.Black)
Dim vals As List(Of String) = e.Table.DataTable.GetValues("第二列","第二列 Is Not Null")

For i As Integer = 0 To vals.Count - 1
    If e.Row("第二列") = vals(i) AndAlso i Mod 2 = 1 Then
        e.Style = "按编号交替背景色奇"
    ElseIf e.Row("第二列") = vals(i) AndAlso i Mod 2 = 0 Then
        e.Style = "按编号交替背景色偶"
    End If
Next


 


--  作者:有点蓝
--  发布时间:2016/9/29 18:03:00
--  
e.Table.DataTable.AddUserStyle("按编号交替背景色奇",Color.MediumPurple,Color.Black)
e.Table.DataTable.AddUserStyle("按编号交替背景色偶",Color.SkyBlue,Color.Black)
如果是窗口表,上面代码改改放到afterload事件,不然就放到afteropenproject事件

drawcell

if e.col.name = "第二列" then 

Dim vals As List(Of String) = e.Table.DataTable.GetValues("第二列","第二列 Is Not Null")

For i As Integer = 0 To vals.Count - 1
    If e.Row("第二列") = vals(i) AndAlso i Mod 2 = 1 Then
        e.Style = "按编号交替背景色奇"
    ElseIf e.Row("第二列") = vals(i) AndAlso i Mod 2 = 0 Then
        e.Style = "按编号交替背景色偶"
    End If
Next

end if