以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 用户样式在QueryBuilder临时表中设定无效 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108430) |
-- 作者:zhutangxin -- 发布时间:2017/10/23 1:06:00 -- 用户样式在QueryBuilder临时表中设定无效 老师,你好。 我想用在窗口表中自定义样式。除了建立临时表的方式不一样,其它代码都一样,一种能显示用户样式,一种不能。具体情况如下: 1. 不能显示的窗口用的是querybuilder建的临时表 test_无颜色_Table1_DrawCell If
e.Col.Name = "moplanQty" Then If e.Row("moplanQty") >= 10000
Then e.Style = "b" End If End
If \'用代码建立查询表 Dim q As new QueryBuilder q.C q.TableName = "v_mo" q.SelectString = "sele ct * f rom v_mo" q.Build 2. 能显示的窗口用的是cmd.ExecuteReader()建的临时表 test_有颜色_Table1_DrawCell If
e.Col.Name = "moplanQty" Then If e.Row("moplanQty") >= 10000
Then e.Style = "b" End If End
If \'用代码建立查询表 Dim dt1 As DataTable cmd.C cmd.CommandText = frmsqlstr dt1=cmd.ExecuteReader() 具体见附件。麻烦指点一下。 |
-- 作者:zhutangxin -- 发布时间:2017/10/23 1:07:00 -- 刚才附件上传不了,补发一下 |
-- 作者:zhutangxin -- 发布时间:2017/10/23 1:14:00 -- ![]() |
-- 作者:zhutangxin -- 发布时间:2017/10/23 1:15:00 -- 搞不懂,看不到附件 |
-- 作者:有点甜 -- 发布时间:2017/10/23 8:47:00 -- 如果是窗口表,你为什么不直接fill进来?参考 http://www.foxtable.com/webhelp/scr/1777.htm
如果用querybuilder,你需要编写的是全局表事件 http://www.foxtable.com/webhelp/scr/0671.htm
|
-- 作者:zhutangxin -- 发布时间:2017/10/23 9:36:00 -- 谢谢及时回复。没有用Fill方式是因为帮助里说: 重要提示 其实Fill并不常用,只有需要从不同的表中加载数据时,才使用Fill语句,从同一个表中动态加载数据,应该使用LoadFilter和Load来实现。 现在项目里已经用querybuilder写了,全局表事件怎么写? 谢谢! |
-- 作者:有点甜 -- 发布时间:2017/10/23 9:52:00 -- 全局表 drawcell 事件
If e.Table.Name = "表A" Then
ElseIf e.Table.name = "窗口1_Table1" Then e.Table.AddUserStyle("a", Color.Red, Color.White) e.Style = "a" End If |
-- 作者:zhutangxin -- 发布时间:2017/10/23 10:23:00 -- 在全局表drawcell事件中写了下面的代码: If e.Table.Name = "v_mo" Then If e.Col.Name = "moPlanQty" Then e.Style = "a" ElseIf e.Table.name = "test_无颜色_Table1" Then e.Table.AddUserStyle("a", Color.Red, Color.White) If e.Col.Name = "moPlanQty" Then e.Style = "a" End If 但会有下面的报错 --------------------------- 错误 --------------------------- 编译错误:“AddUserStyle”不是“Table”的成员。 错误代码:e.Table.AddUserStyle("a", Color.Red, Color.White) --------------------------- 确定 --------------------------- 把代码改成下面,则无报错,
但依然没有显示颜色: If e.Table.Name = "v_mo" Then If e.Col.Name = "moPlanQty" Then e.Style = "a" ElseIf e.Table.name = "test_无颜色_Table1" Then e.Table.DataTable.AddUserStyle("a", Color.Red, Color.White) If e.Col.Name = "moPlanQty" Then e.Style = "a" End If |
-- 作者:有点甜 -- 发布时间:2017/10/23 11:13:00 -- 全局代码你要开启一下的。你build出对应的表后,执行
DataTables("v_mo").GlobalHandler.DrawCell = true |
-- 作者:zhutangxin -- 发布时间:2017/10/23 19:23:00 -- 好了,谢谢! |