以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  全局样式代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45007)

--  作者:wang1988sen
--  发布时间: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编辑过]

--  作者:有点甜
--  发布时间: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
--  发布时间:2014/1/13 19:44:00
--  
谢谢了。
--  作者:wang1988sen
--  发布时间:2014/1/13 19:50:00
--  
提示indexof出错,e。是局部还是全局呢,在命令窗口执行,提示e不能用在上下文
--  作者:有点甜
--  发布时间: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
--  发布时间:2014/1/13 20:11:00
--  
放入表事件可以实现,放入全局表事件就不行了。在全局表事件可以实现吗
--  作者:有点甜
--  发布时间:2014/1/13 20:15:00
--  
 全局表事件需要你在afteropenproject事件里开启一下的,参考


--  作者:wang1988sen
--  发布时间:2014/1/13 20:22:00
--  
怎么开启呀,我看了你给的连接帮助我之前也看过了,可是不知道怎么说开启,是把这段代码也写到这个事件吗
--  作者:有点甜
--  发布时间:2014/1/13 20:28:00
--  
  这样开启

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

--  作者:wang1988sen
--  发布时间:2014/1/13 20:33:00
--  
成功了,谢谢啊,呵呵呵