Foxtable(狐表)用户栏目专家坐堂 → [求助]代码求助


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

主题:[求助]代码求助

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


加好友 发短信
等级:三尾狐 帖子:683 积分:5399 威望:0 精华:0 注册:2015/1/23 0:31:00
[求助]代码求助  发帖心情 Post By:2020/2/21 13:15:00 [只看该作者]

我将最下面这个代码写入全局表事件DrawCell中,并在AfterOpenProject中启用全局表事件,没有执行,是什么回事

'对所有外部表启用绘制全局表事件
For Each dt As DataTable In DataTables
    dt.GlobalHandler.DrawCell = True
Next


Dim dt As DataTable = CurrentTable.DataTable '获取当前表
Dim tb As Table = CurrentTable '获取当前表
CurrentTable.DataTable.AddUserStyle("灰色",Color.Gray, Color.White)
CurrentTable.DataTable.AddUserStyle("蓝色",Color.Blue, Color.White)

'If  CurrentTable.DataTable.Type = 3
Dim jh1 As new List(of String)  '当前用户角色
Dim jh2 As new List(of String) '可访问表
Dim jh3 As new List(of String) '当前表允许编辑的列
Dim jh4 As new List(of String) '过程中-当前行可编辑列的拆分为集合
jh1.AddRange(_UserGroup.Split("|")) '将角色添加到集合
If jh1.Contains("管理员")
    Return
ElseIf jh1.Count > 0 '角色中不包含管理员
    '设置当前用户中所有角色所能编辑当前表的列名
    For Each j1 As String In jh1
        Dim dr As DataRow = DataTables("用户权限_表权限").Find("角色 = '"& j1 &"' and 可编辑表名 = '"& tb.Name &"'")
        If dr IsNot Nothing
            jh4.AddRange(dr("可编辑列名").Split(","))
            For Each j4 As String In jh4
                If jh3.Contains(j4) = False
                    jh3.Add(j4)
                End If
            Next
        End If
    Next
    
    '对当前表所能编辑的列名进行颜色设置
    For Each c As Col In tb.Cols
        For Each j3 As String In jh3
            If c.Name = j3
                e.Style = "蓝色"
            Else
                e.Style = "灰色"
            End If
        Next
    Next
Else
    For Each c As Col In tb.Cols
        e.Style = "灰色"
    Next
End If
'End If

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


加好友 发短信
等级:超级版主 帖子:110809 积分:563983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/21 14:10:00 [只看该作者]

首先,在事件里应该使用e.table,而不是CurrentTable

其次如果窗口表是sqltable,sqlquery,启用绘制全局表事件要放到窗口afterload执行;如果使用了fill、DataSource,需要在fill、DataSource之后启用绘制全局表事件。

 回到顶部