以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 全局样式代码 (http://foxtable.com/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 -- 成功了,谢谢啊,呵呵呵 |