Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口表格中的颜色标记问题


  共有2551人关注过本帖树形打印复制链接

主题:[求助]窗口表格中的颜色标记问题

帅哥哟,离线,有人找我吗?
81538475
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1302 积分:10502 威望:0 精华:1 注册:2018/1/20 12:40:00
[求助]窗口表格中的颜色标记问题  发帖心情 Post By:2018/9/14 0:06:00 [只看该作者]

窗口表格中的drawcell 中添加下面代码,但是窗口表没有_identify 列。应该如何处理呢。。

If e.Row.IsNull("第一列") = False Then
    Dim n As String = "样式" & e.Row("_Identify") & "_" & e.Col.name
    Dim ary() As String = e.Row("第一列").split("|")
    For Each s As String In ary
        Dim a() As String = s.split(":")
        If a(0) = e.Col.name Then
            e.Table.DataTable.AddUserStyle(n, Color.FromARGB(a(1)), Color.black)
            e.Table.DataTable.Styles(n).BackColor = Color.FromARGB(a(1))
            e.style = n
            Exit For
        End If
    Next
End If

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/14 9:11:00 [只看该作者]

把 _Identify 列改成你表格里面的某一列即可(但此列必须唯一),也可以几列一起组合成一个唯一的字符串。

 回到顶部
帅哥哟,离线,有人找我吗?
81538475
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1302 积分:10502 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/9/14 9:55:00 [只看该作者]

哦。好的。另外。我在颜色记录列的记录是这样的  职务:-1015680|数量:-65536。那我想做一个功能,就是还原颜色,如何把    
某一个去掉呢,用 trim 好像不行。
[此贴子已经被作者于2018/9/14 9:58:21编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/14 10:06:00 [只看该作者]

参考

 

Dim str As String = "职务:-1015680|数量:-65536"
Dim ss As String = "职务"
Dim nstr As String = ""
For Each s As String In str.split("|")
    If s.StartsWith(ss) = False Then
        nstr &= s & "|"
    End If
Next
msgbox(nstr.trim("|"))


 回到顶部
帅哥哟,离线,有人找我吗?
81538475
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1302 积分:10502 威望:0 精华:1 注册:2018/1/20 12:40:00
  发帖心情 Post By:2018/9/14 10:58:00 [只看该作者]

好的,多谢了。
Dim t As Table = CurrentTable
        Dim str As String = CurrentTable.Current("颜色记录")
        Dim ss As String = t.cols(t.ColSel).name
        Dim nstr As String = ""
        For Each s As String In str.split("|")
            
            If s.StartsWith(ss) = False Then
                nstr &= s & "|"
            End If
        Next
        t.Current("颜色记录") = NSTR

那我要是希望框选的所有单元格的颜色都还原呢。。这个应该如何处理呀。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/14 11:28:00 [只看该作者]

Dim t As Table = CurrentTable
Dim ls As new List(Of String)
For j As Integer = t.LeftCol To t.RightCol
    Dim ss As String = t.cols(j).name
    ls.add(ss)
Next
For i As Integer = t.TopPosition To t.BottomPosition
    Dim r As Row = t.rows(i)
    Dim str As String = r("颜色记录")
    Dim nstr As String = ""
    For Each s As String In str.split("|")
        Dim name = s.Split(":")(0)
        If ls.Contains(name) = False Then
            nstr &= s & "|"
        End If
    Next
    r("颜色记录") = NSTR
Next

 回到顶部