以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  符合条件的列背景颜色如何用代码设置  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=7148)

--  作者:唐尸三摆手
--  发布时间:2010/5/20 10:43:00
--  符合条件的列背景颜色如何用代码设置

 

列标题为2010-05-10 00:00:00格式

希望实现以下效果:如果此日期是星期日,那么用蓝颜色设置当前列内容的背景

老大请看这样写代码对吗,如果对,那么符合条件列的背景颜色如何用代码设置(*号部分)?

 

 

for each ca as col in CurrentTable.Cols
    if left(ca.caption,10).DayOfWeek=0 then
        *****************
    end if
next


--  作者:狐狸爸爸
--  发布时间:2010/5/20 10:43:00
--  
参考DrawCell事件
--  作者:唐尸三摆手
--  发布时间:2010/5/20 11:04:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:snap1.jpg
图片点击可在新窗口打开查看

 

 

报错,老大看一下哪错了。看提示6月3日没什么问题啊!

\'窗口加载时的代码
DataTables("mail_table1").AddUserStyle("a", Color.blue, Color.yellow)

 

以下是窗口中table表的drawcell事件


\'如果是数值型列,且不是分类码列
If e.Col.IsNumeric AndAlso e.Col.caption <> "分类码" AndAlso e.Col.caption <> "分类名称" Then
    If e.Row.IsNull(e.Col.Name) = False \'且该列已经输入内容
dim ca as string
dim cb as integer
dim cc as date
ca=left(e.Row(e.Col.caption),10)
cc=ca
cb=cc.DayOfWeek
        If cb=0 Then \'如果该列的值等于0
            e.Style = "a" \'那么用"不及格"样式绘制单元格
        End If
    End If
End If

[此贴子已经被作者于2010-5-20 11:04:08编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/5/20 11:09:00
--  

你根据错误提示分析一下吧,错误提示的意思是,你将“2010-06-03  00:00:00”这样的字符当做列名使用了。

[此贴子已经被作者于2010-5-20 11:09:07编辑过]

--  作者:唐尸三摆手
--  发布时间:2010/5/20 11:17:00
--  

老大,帮帮忙吧,真没找出问题来呀

 

left(e.Row(e.Col.caption),10)

已经设置显示成“2010-06-03”样式了

[此贴子已经被作者于2010-5-20 11:18:56编辑过]

--  作者:狐狸爸爸
--  发布时间:2010/5/20 11:25:00
--  
你要搞清楚Caption和Name是不同的
--  作者:唐尸三摆手
--  发布时间:2010/5/20 13:40:00
--  
显示的标题caption是2010-06-03  00:00:00,但是列名称name是"plannum_1","plannum_2""plannum_3",这些都是交叉表生成的结果
--  作者:狐狸爸爸
--  发布时间:2010/5/20 14:28:00
--  

没有这样的用法:

 

e.Row(e.Col.caption)

 

只有这样的用法:

 

e.Row(e.Col.Name)

 

图片点击可在新窗口打开查看

 


--  作者:唐尸三摆手
--  发布时间:2010/5/20 16:19:00
--  
麻烦老大给出答案好吗,实在是想不出来了
--  作者:狐狸爸爸
--  发布时间:2010/5/20 16:22:00
--  

我已经告诉你了啊

 

ca=left(e.Row(e.Col.caption),10)

 

应该改为:

 

ca=left(e.Row(e.Col.Name),10)

 

因为要引用某行某列的值,应该通过列名(Name),而不是标题(Caption)