以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  11月21日大更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=5072)

--  作者:狐狸爸爸
--  发布时间:2009/11/20 17:32:00
--  11月21日大更新

一、最重要的改进在于窗口打印
1、窗口控件增加了一个另起一页(NewPage)属性,设为True,在打印此控件的时候,将另起一页。
2、窗口中的Table增加了一个最大行数(MaxRows)属性,设为一个大于0的整数,将自动换页打印Table,每页行数由MaxRows属性决定
3、不管是直接打印表,还是通过窗口打印,利用DrawCell事件绘制的单元格图形,都可以打印出来了
4、经过这次改进,窗口打印可以便利地设计多页报表,某种程度上能代替专业报表了。


二、增加了一些属性和方法

Table增加的属性

DefaultRowHeight

整数型,返回或设置默认的行高,单位为像素


示例


将订单表的默认行高设为24个像素:

Tables("订单").DefaultRowHeight = 24



RowHeaderVisible

逻辑型,是否显示行号列。


示例


隐藏产品表的行号列

Tables("产品").RowHeaderVisible = False


AllowClickSort

是否允许单击列标题排序。
在默认情况下,单击列标题会选定整列,按住Ctrl键,单击列标题,则根据该列排序。
如果将AllowClickSort属性设为True,那么单击列标题会直接排序,无需按住Ctrl键。


示例


Tables(
"产品").AllowClickSort = True



Col增加的属性:

UsetBuildInEditor

逻辑型,是否使用内置输入器。


示例


Tables(
"订单").Cols("日期").UsetBuildInEditor = True


 

AllowDirectType


逻辑型,是否允许用户直接输入不在列表项目中的内容。
必须在设置ComboList属性之前,设置AllowDirectType
属性,否则无效。


示例


Tables(
"订单").Cols("客户").AllowDirectType = False
Tables(
"订单").Cols("客户").Combolist =
"CS01|CS02|CS03|CS04"


AllowTypeAssistant

逻辑型,是否启用输入助手。
必须在设置ComboList属性之前,设置AllowTypeAssistant
属性,否则无效。


示例


Tables(
"订单").Cols("客户").AllowTypeAssistant = True
Tables(
"订单").Cols("客户").Combolist =
"CS01|CS02|Cs03|CS04"


GetComboListString的新语法:


GetComboListString(ColumnName,Filter, Sort)


ColumnName:列名称,从此列中提取不重复的值。
Filter:     可选参数,指定一个条件表达式,只返回符合此条件的值。
Sort:       可选参数,指定排序列,如果省略,则根据取值列排序,通常无需设置。

窗口增加三个动态增加Table的方法:

CreateSQLTable(Name, SqlText , ConnectionName)
CreateSQLQuery(Name, SqlText , ConnectionName)
CreateTable(Name, TableName, IsCopy)


例如:

e.Form.RemoveControl("Table1")
Dim t As WinForm.Table
t = e.Form.CreateTable("Table1","表A",true)
t.SetBounds(12,12,500,340)
e.Form.AddControl(t)
e.Form.Controls("TabControl1").Visible = false


三:SQLGroupTableBuilder和SQLCrossTableBuilder的分组可以使用表达式列了,也可以利用多列关联增加表,从某种意义上来说,这两个统计工具几乎是无敌的了。

SQLGroupTableBuilder的Groups属性增加了一个AddExp方法,用于增加表达式分组列:
AddExp(Name, Expression)
AddExp(Name, Expression,Caption)

SQLGroupTableBuilder的HGroups属性增加了一个AddExp方法,用于增加表达式分组列:
AddExp(Name, Expression)
AddExp(Name, Expression,Caption)

SQLGroupTableBuilder的VGroups属性增加了一个AddExp方法,用于增加表达式分组列:
AddExp(Name, Expression)
AddExp(Name, Expression,Pattern)

SQLGroupTableBuilder和SQLCrossTableBuilder的Totals属性增加了AddExp方法,用于增加表达式统计列:

AddExp(Name, Expression)
AddExp(Name, Expression, Caption)
AddExp(Name, Expression, Aggregate)
AddExp(Name, Expression, Caption, Aggregate)

 

原来通过Exprs增加表达式统计列的方法不能再使用,请注意.

示例,下面的统计,不管是分组列还是统计列,都是表达式形式:

Dim b As New SQLCrossTableBuilder("统计表1","订单")
b.HGroups.AddExp("产品","Right(产品,2)") \'根据产品分组
b.VGroups.AddExp("月份","Month(日期)","{0}月")
b.Totals.AddExp("数量", "数量/10000") \'对数量进行统计
b.Build \'生成统计表
Maintable = Tables("统计表1") \'打开生成的统计表

另添加多列关联表的示例:
 

Dim b As New SQLGroupTableBuilder("统计表1","表A")

Dim Cols1() As String = {"第一列","第二列"}

Dim Cols2() As String = {"第一列","第二列"}

b.AddTable("表A",Cols1,"表B",Cols2) \'添加统计表

[此贴子已经被作者于2009-11-23 9:44:09编辑过]

--  作者:kylin
--  发布时间:2009/11/20 17:33:00
--  
 先顶,大大的!呵呵图片点击可在新窗口打开查看
--  作者:yuanbin
--  发布时间:2009/11/20 17:38:00
--  

顶起!


--  作者:czy
--  发布时间:2009/11/20 17:42:00
--  
跟着顶。
--  作者:yangming
--  发布时间:2009/11/20 17:43:00
--  
顶一下哟!
--  作者:mr725
--  发布时间:2009/11/20 18:13:00
--  
图片点击可在新窗口打开查看好大大哦~ 
--  作者:狐哥
--  发布时间:2009/11/20 18:20:00
--  
学习
--  作者:mr725
--  发布时间:2009/11/20 18:26:00
--  
AllowDirectType  
Tables(
"订单").Cols("客户").AllowDirectType = False
Tables(
"订单").Cols("客户").Combolist =
"CS01|CS02|CS03|CS04"   和  "|CS01|CS02|CS03|CS04"  都无所谓了吗?
--  作者:菜鸟foxtable
--  发布时间:2009/11/20 21:34:00
--  
图片点击可在新窗口打开查看帮助帮助,急需帮助!!没有帮助消化不良啊。
--  作者:程兴刚
--  发布时间:2009/11/20 21:43:00
--  

唉,为啥总是等我不在的时候!