以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]后台控制单元格背景色及字体颜色  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=148986)

--  作者:miaoqingqing
--  发布时间:2020/4/20 20:20:00
--  [求助]后台控制单元格背景色及字体颜色
想实现通过后台表控制某表某列值等于xx时,该单元格背景色及xx字体颜色

表名  列名 单元格颜色  字体颜色  停用

--  作者:有点蓝
--  发布时间:2020/4/20 20:55:00
--  
参考:http://www.foxtable.com/webhelp/topics/0656.htm

比如:
dim dr as datarow = datatables("后台表").find("表名=\'" & e.table.name & "\' and 列名=\'" & e.col.name & "\' and 停用=false")
if dr isnot nothing then
 e.table.DataTable.AddUserStyle(e.table.name & e.col.nameColor.FromARGB(dr("单元格颜色"))Color.FromARGB(dr("字体颜色")))
e.style =e.table.name & e.col.name
end if

--  作者:miaoqingqing
--  发布时间:2020/4/21 11:43:00
--  

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

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

表A第一列值 等于 中国 美国 显示颜色后台控制,求助

.NET Framework 版本:4.0.30319.34209
Foxtable 版本:2020.4.10.8
错误所在事件:表,表A,DrawCell
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Integer”的转换无效。
输入字符串的格式不正确。



--  作者:有点蓝
--  发布时间:2020/4/21 12:01:00
--  
请把颜色值转换为整数存储:http://www.foxtable.com/webhelp/topics/0496.htm
--  作者:miaoqingqing
--  发布时间:2020/4/21 12:30:00
--  回复:(有点蓝)请把颜色值转换为整数存储:http://w...
坛主,颜色设置为整数,可以显示列颜色了,不过是整列一个颜色,不是想实现的效果
加一个列值相等后台表的条件才颜色突显,下面代码怎么修改,求助
是否要for each  循环查找

Dim dr As DataRow = DataTables("后台表").find("表名=\'" & e.Table.name & "\' and 列名=\'" & e.Col.name & "\' and 列值=\'" & e.Col.Value & "\' And 停用=false")
If dr IsNot Nothing Then
e.Table.DataTable.AddUserStyle(e.Table.name & e.Col.name, Color.FromARGB(dr("单元格颜色")), Color.FromARGB(dr("字体颜色")))
    e.style =e.Table.name & e.Col.name
End If
[此贴子已经被作者于2020/4/21 12:50:47编辑过]

--  作者:有点蓝
--  发布时间:2020/4/21 13:36:00
--  
If dr IsNot Nothing andalso e.Col.name = dr("列名") Then
--  作者:miaoqingqing
--  发布时间:2020/4/21 14:37:00
--  回复:(有点蓝)If dr IsNot Nothing andalso&n...

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


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

想只是
 中国 美国 单元格颜色突显
          美国 单元格颜色突显
Dim dr As DataRow = DataTables("后台表").find("表名=\'" & e.Table.name & "\' and 列名=\'" & e.Col.name & "\' and 停用=false")
If dr IsNot Nothing AndAlso e.Col.name = dr("列名") Then
\'If e.Col.name = dr("列名") Then
    If dr IsNot Nothing Then
        e.Table.DataTable.AddUserStyle(e.Table.name & e.Col.name, Color.FromARGB(dr("单元格颜色")), Color.FromARGB(dr("字体颜色")))
        e.style =e.Table.name & e.Col.name
    End If
End If



--  作者:有点蓝
--  发布时间:2020/4/21 14:53:00
--  
If dr IsNot Nothing AndAlso e.Col.name = dr("列名") andalso e.row(e.Col.name)  = dr("列值") Then
--  作者:miaoqingqing
--  发布时间:2020/4/21 15:16:00
--  回复:(有点蓝)If dr IsNot Nothing AndAlso e.Col....
坛主,上楼代码
第一列  中国 可以颜色突显
 第一列  美国 颜色突显不了,求助美国也颜色突显
[此贴子已经被作者于2020/4/21 15:16:42编辑过]

--  作者:有点蓝
--  发布时间:2020/4/21 15:34:00
--  
Dim dr As DataRow = DataTables("后台表").find("表名=\'" & e.Table.name & "\' and 列名=\'" & e.Col.name & "\'  and 列值=\'" & e.row(e.Col.name)  & "\' And  停用=false")