Foxtable(狐表)用户栏目专家坐堂 → 全局样式代码


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

主题:全局样式代码

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


加好友 发短信
等级:幼狐 帖子:160 积分:1044 威望:0 精华:0 注册:2013/12/27 0:27:00
全局样式代码  发帖心情 Post By:2014/1/13 19:26:00 [只看该作者]

表比较多,想在项目的全局表事件的   DrawCell事件中统一设置样式,用一个循环将所有是数字类型的进行判断,如果小于60,就设置为“不及格”样式,代码如下可是不执行,是不是全局表事件和一直表的事情的代码不同,如果不同该怎么改呢。


Dim tbnames() As String = {  "##成绩报表", "##成绩报表", "##成绩报表", "##成绩报表" }
 
For i As Integer = 1 To tbnames.Length - 1
    Dim f As New Filler
    
    '如果是数值型列,且不是组号列
    If f.IsNumeric AndAlso e.Col.Name <> "组号" Then
        If f.Row.IsNull(e.Col.Name) = False '且该列已经输入内容
            If f.Row(e.Col.Name) < 60 Then '如果该列的值小于60
                f.Style = "不及格" '那么用"不及格"样式绘制单元格
                
            End If
        End If
    End If
    
    
Next
这段代码错误比较多,高手可以 帮我改改吗?


这个事件是不是不能用循环呢,用当前表吗?



[此贴子已经被作者于2014-1-13 19:29:56编辑过]

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


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

Dim tbnames() As String = {  "##成绩报表", "##成绩报表", "##成绩报表", "##成绩报表" }

If Array.IndexOf(e.Table.name) > -1 Then
    e.Table.DataTable.AddUserStyle("不及格", Color.Red, Color.White)
    If e.Col.IsNumeric AndAlso e.Col.Name <> "组号" Then
        If e.Row.IsNull(e.Col.Name) = False '且该列已经输入内容
            If e.Row(e.Col.Name) < 60 Then '如果该列的值小于60
                e.Style = "不及格" '那么用"不及格"样式绘制单元格
            End If
        End If
    End If
End If

给某表添加样式,如下


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


加好友 发短信
等级:幼狐 帖子:160 积分:1044 威望:0 精华:0 注册:2013/12/27 0:27:00
  发帖心情 Post By:2014/1/13 19:44:00 [只看该作者]

谢谢了。

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


加好友 发短信
等级:幼狐 帖子:160 积分:1044 威望:0 精华:0 注册:2013/12/27 0:27:00
  发帖心情 Post By:2014/1/13 19:50:00 [只看该作者]

提示indexof出错,e。是局部还是全局呢,在命令窗口执行,提示e不能用在上下文

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


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

 改一下代码,代码放到drawcell事件里去,全局表事件或者表事件

Dim tbnames() As String = {  "##成绩报表", "##成绩报表", "##成绩报表", "##成绩报表" }

If Array.IndexOf(tbnames, e.Table.name) > -1 Then
    e.Table.DataTable.AddUserStyle("不及格", Color.Red, Color.White)
    If e.Col.IsNumeric AndAlso e.Col.Name <> "组号" Then
        If e.Row.IsNull(e.Col.Name) = False '且该列已经输入内容
            If e.Row(e.Col.Name) < 60 Then '如果该列的值小于60
                e.Style = "不及格" '那么用"不及格"样式绘制单元格
            End If
        End If
    End If
End If

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


加好友 发短信
等级:幼狐 帖子:160 积分:1044 威望:0 精华:0 注册:2013/12/27 0:27:00
  发帖心情 Post By:2014/1/13 20:11:00 [只看该作者]

放入表事件可以实现,放入全局表事件就不行了。在全局表事件可以实现吗

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


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

 全局表事件需要你在afteropenproject事件里开启一下的,参考


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


加好友 发短信
等级:幼狐 帖子:160 积分:1044 威望:0 精华:0 注册:2013/12/27 0:27:00
  发帖心情 Post By:2014/1/13 20:22:00 [只看该作者]

怎么开启呀,我看了你给的连接帮助我之前也看过了,可是不知道怎么说开启,是把这段代码也写到这个事件吗

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


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

  这样开启

DataTables("表A").GlobalHandler.DrawCell = True
DataTables("表B").GlobalHandler.DrawCell = True
DataTables("表C").GlobalHandler.DrawCell = True

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


加好友 发短信
等级:幼狐 帖子:160 积分:1044 威望:0 精华:0 注册:2013/12/27 0:27:00
  发帖心情 Post By:2014/1/13 20:33:00 [只看该作者]

成功了,谢谢啊,呵呵呵

 回到顶部
总数 19 1 2 下一页