以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]用QueryBuilder生成的报表的单元格样式问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=28891)

--  作者:fox0001
--  发布时间:2013/2/21 16:47:00
--  [求助]用QueryBuilder生成的报表的单元格样式问题
问题:用QueryBuilder生成的报表,要怎样才能设置单元格的样式?

如下图:
红框1是菜单,点击相应的菜单就会动态生成table(用 new QueryBuilder 实现),即红框2的表格。
红框3是红框2的停靠窗口,只要红框2显示,红框3窗口就会显示。
红框3窗口中有个“查询”按钮,点击后,才开始查询数据(用 DataTables("成品盘点表").fill(……) 实现)。

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

现在是怎样设置红框2表格的单元格样式?

目前已经在红框3窗口的AfterLoad事件中加入代码:
DataTables("成品盘点表").AddUserStyle("样式", Color.LightSalmon, Color.Black)

然后设计全局表事件的DrawCell事件:
Dim tableName As String = "成品盘点表"
If e.Table.name <> tableName Then
    Return
End If

e.Style = "样式"

但是红框2表格的样式没有变化!

[此贴子已经被作者于2013-2-21 16:48:35编辑过]

--  作者:fox0001
--  发布时间:2013/2/21 17:04:00
--  
貌似找到解决方法了,先试试
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=28773

--  作者:lin_hailun
--  发布时间:2013/2/21 17:54:00
--  
 你需要把全局表事件开启一下。

这些属性都是逻辑型,如果要使某个对该DataTable有效,只需将对应的属性设为True即可。
这些属性中,
只有CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange的默认值为True,这也就是为什么默认只有这四个有效的原因。

例如要使AfterEditA有效,只需:

DataTables("A").GlobalHandler.AfterEdit = True

要使AfterEdit对所有有效,只需:

For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit
= True
Nex


[此贴子已经被作者于2013-2-21 17:53:51编辑过]

--  作者:fox0001
--  发布时间:2013/2/22 8:22:00
--  
以下是引用lin_hailun在2013-2-21 17:54:00的发言:
 你需要把全局表事件开启一下。

这些属性都是逻辑型,如果要使某个对该DataTable有效,只需将对应的属性设为True即可。
这些属性中,
只有CurrentChanged、PositionChanged、AfterSelChange、AfterSelRangeChange的默认值为True,这也就是为什么默认只有这四个有效的原因。

例如要使AfterEditA有效,只需:

DataTables("A").GlobalHandler.AfterEdit = True

要使AfterEdit对所有有效,只需:

For Each dt As DataTable In DataTables
    dt.GlobalHandler.AfterEdit
= True
Nex


[此贴子已经被作者于2013-2-21 17:53:51编辑过]

谢谢,可以了。设置了DrawCell的全局事件后,可以了,如下:

DataTables("成品盘点表").GlobalHandler.DrawCell=True