Foxtable(狐表)用户栏目专家坐堂 → [求助]drawcell问题


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

主题:[求助]drawcell问题

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


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
[求助]drawcell问题  发帖心情 Post By:2016/4/20 11:23:00 [只看该作者]

For Each r As Row In Tables("请假单").Rows

    For i As Integer = 15 To Tables("请假单").Cols.Count - 1

        If Tables("请假单").Cols(i).Isstring Then

            If r(Tables("请假单").Cols(i).name) = _username Then

                If r(Tables("请假单").Cols(i-1).name) = True AndAlso r(Tables("请假单").Cols(i+2).name) = False Then

                    e.Style = "审批"

                End If

            End If

        End If

    Next

Next

代码说明,判断当前审批人是不是登录用户,是登录用户,并且前一级审批结果是1,表示已审批,本级审批结果是false表示本级未审批,该当前登录人审批当前行,然后本行就变色为“审批”


我写在drawcell里面的   起作用,没报错。。。整个表的被加了颜色了。。。    我想问下  e.style  怎么用  我怎么 e 知道他指的啥东西?

我只想当前行加颜色啊。。。。为什么整个表都被加了颜色?



以下内容是专门发给大红袍浏览



[此贴子已经被作者于2016/4/20 11:39:35编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/20 11:34:00 [只看该作者]

 

[此贴子已经被作者于2016/4/20 11:58:31编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/20 11:36:00 [只看该作者]

 

[此贴子已经被作者于2016/4/20 11:58:38编辑过]

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


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/4/20 11:41:00 [只看该作者]

以下是引用大红袍在2016/4/20 11:36:00的发言:

If e.Row.Index = e.Table.Current.Index Then
    If e.Col.Index >= 15 AndAlso e.Col.IsString AndAlso e.Col.Name = _UserName Then
        If e.Row(e.Table.Cols(i-1).Name) = True AndAlso e.Row(e.Table.(i+2).Name) = False Then
            e.Style = "审批"
        End If
    End If
End If


例子上传了,  但是i的值没有啊。。。。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/20 11:44:00 [只看该作者]

 

[此贴子已经被作者于2016/4/20 12:01:50编辑过]

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


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/4/20 11:48:00 [只看该作者]

以下是引用大红袍在2016/4/20 11:44:00的发言:

If e.Col.Index >= 15 AndAlso e.Col.IsString AndAlso e.Col.Name = _UserName Then

    If e.Row(e.Table.Cols(e.Col.Index-1).Name) = True AndAlso e.Row(e.Table.Cols(e.Col.Index+2).Name) = False Then

         e.Style = "审批"

    End If

End If

[此贴子已经被作者于2016/4/20 11:44:34编辑过]

放进去了 ,没有效果。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
我结合你的代码,下面的代码效果正常了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
'For Each r As Row In Tables("请假单").Rows
    'For i As Integer = 15 To Tables("请假单").Cols.Count - 1
        'If Tables("请假单").Cols(i).Isstring Then
            'If r(Tables("请假单").Cols(i).name) = _username Then
                'If r(Tables("请假单").Cols(i-1).name) = True AndAlso r(Tables("请假单").Cols(i+2).name) = False Then
                    'If e.Row.Index = r.Index Then
                        'e.Style = "审批"
                    'End If
                'End If
            'End If
        'End If
    'Next
'Next
加了一行If e.Row.Index = r.Index Then..........................................好像这样就能识别e.style,但是我没明白原理。。。。。

[此贴子已经被作者于2016/4/20 11:48:26编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/20 11:52:00 [只看该作者]

2、3、5楼代码都没问题

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


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/4/20 11:55:00 [只看该作者]

以下是引用大红袍在2016/4/20 11:52:00的发言:
2、3、5楼代码都没问题
我想问下那个e.style的 e  怎么去判断他代表什么?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/20 12:12:00 [只看该作者]

If e.Table.Current.Index = e.Row.Index Then
    For i As Integer = 15 To e.Table.Cols.Count - 1
        Dim c As Col = e.Table.Cols(i)
        If c.name Like "*审批人*" AndAlso e.Row(c.name) = _UserName Then
           
            If e.Row(e.Table.Cols(c.Index-1).Name) = True AndAlso e.Row(e.Table.Cols(c.Index+2).Name) = False Then
               
                e.Style = "审批"
               
            End If
           
        End If
    Next
End If

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


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2016/4/20 12:25:00 [只看该作者]

以下是引用大红袍在2016/4/20 12:12:00的发言:
If e.Table.Current.Index = e.Row.Index Then
    For i As Integer = 15 To e.Table.Cols.Count - 1
        Dim c As Col = e.Table.Cols(i)
        If c.name Like "*审批人*" AndAlso e.Row(c.name) = _UserName Then
           
            If e.Row(e.Table.Cols(c.Index-1).Name) = True AndAlso e.Row(e.Table.Cols(c.Index+2).Name) = False Then
               
                e.Style = "审批"
               
            End If
           
        End If
    Next
End If

非常感谢   可以了。。。


 回到顶部