1、DataList增加Frozen属性,用于设置冻结列数。
2、DataList增加AlterBackColor,用于设置交替行背景颜色。
3、DataTable有个SysStyles集合,用于返回指定名称的系统样式,例如:
DataTables("成绩表").SysStyles("Alternate")
表示成绩表交替行的样式。
系统样式包括:
Normal: 数据区
Frozen: 冻结区
Alternate: 交替行
EmptyArea:空白区
Fixed: 标题行
样式包括以下属性:
BackColor: 背景颜色
ForeColor: 字体颜色
FontBold: 逻辑型,设为True,字体加粗
FontItalic: 逻辑型,设为True,字体倾斜
FontStrikeout:逻辑型,设为True,字体带删除线
FontUnderline:逻辑型,设为True,字体带下划线
示例
希望将空白区的背景颜色设为白色:
DataTables(
"表A").SysStyles("EmptyArea").BackColor = Color.White
4、窗口增加StopRedraw和StopRedraw方法,分别用于暂停核恢复绘制窗口。Foxtable提供了动态增加和删除控件的功能,我们可以先执行StopRedraw方法,停止绘制窗口,等到动态增加或删除控件的代码执行结束后,再执行ResumeRedraw方法,重新绘制窗口,这样可以避免增加或控件空间的过程中,窗口不停地闪烁的问题:
例如单击某个按钮可动态加入一些控件,该按钮的代码通常应该设为:
e.Form.StopRedraw()
'动态增加或删除控件的代码
e.Form.ResumeRedraw()
5、在学习DataList的时候,我们介绍了如何利用DataList显示统计和查询结果,但是DataList的功能毕竟有限,最好的数据显示方式还是Table。
GroupTableBuilder、CrossTableBuilder、DataTableBuilder、QueryBuilder、OuterTableBuilder等对象,都会同时生成一个DataTable和Table,在默认情况下,Table会显示在主界面中;我们有的时候会希望在窗口而不是主界面中显示这个Table;实现的方法很简单,这些对象都有一个名为TableVisible的逻辑属性,只需将此属性设为Fasle,所生成的Table就不会在主界面显示,但是这个Table是确实存在的,我们可以用代码显示它或者直接插入到窗口中。
示例
在窗口中加入一个按钮,按钮的Click时间代码设置为:
e.Form.StopRedraw() '停止绘制窗口
e.Form.RemoveControl("统计表1") '如果移除窗口中可能存在的同名Table
Dim b As New CrossTableBuilder("统计表1",DataTables("订单"))
b.TableVisible= False '注意这一行,可以避免主界面中出现生成的统计表
b.HGroups.AddDef("日期",DateGroupEnum.Year,"年")
b.HGroups.AddDef("日期","月")
b.VGroups.AddDef("客户","客户_{0}")
b.Totals.AddDef("数量")
b.OrderByTotal = True
b.Build()
Dim t As WinForm.Table
t = e.Form.CreateControl("统计表1", ControlTypeEnum.Table)
t.SetBounds(10,10,400,300)
e.Form.AddControl(t)
e.Form.ResumeRedraw() '重新绘制窗口
上面的代码能够直接在窗口中显示CrossTableBuilder生成的交叉统计表。
需要注意的是,即使你关闭窗口,上述代码生成的Table仍然存在的,你可以在命令窗口执行下面的代码,使得这个Table可见:
Tables(
"统计表1").Visible = True
[此贴子已经被作者于2009-5-12 23:01:51编辑过]