Foxtable(狐表)用户栏目专家坐堂 → 自定义的录入筛选窗口启动时,table表为何还是加载全部的字段?


  共有13752人关注过本帖树形打印复制链接

主题:自定义的录入筛选窗口启动时,table表为何还是加载全部的字段?

帅哥哟,离线,有人找我吗?
blackzhu
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/9/14 7:40:00 [显示全部帖子]

一个问题.创建CreateSQLQuery类型属于副本型,所以你会看到两个表,而且是不同的.请注意这段帮助:

 

Table的双重身份

窗口中的Table具备双重身份,使用不同身份时,类型不同,名称也不同。

作为控件

当作为窗口中的控件时,其类型为WinForm.Table,名称就是设计窗口时赋予的名称。

示例

Dim t As WinForm.Table = e.Form.Controls("Table1")
t.SetBounds(
0,0,400,300)

作为Table

当作为普通的Table使用的时候,其类型自然是Table。
至于名称则要区分两种情况。

如果类型为Normal,且非副本,此时窗口并不会创建新的Table,只是将原来的Table移到窗口中显示,所以其名称自然就等于绑定的Table名称。
例如将订单表移到主窗口后,对其的调用还是和原来一样:

Tables("订单").AllowEdit = True

如果类型为Normal,且为副本,或者类型为SQLTable、SQLQuery,此时窗口会创建一个新的Table,此新Table的名称为:

窗口名称_控件名称

假定这个Table的名称为Table1,且在窗口1中,那么代码中必须使用“窗口1_Table1”的名称来调用此Table:

Tables("窗口1_Table1").AllowEdit = False

 

 

 

另外,fill的类型你最看看,如果你是表类型调整的话,请注意这一段帮助:

 

Fill方法

Table有一个Fill方法,可以根据指定的SQL语句,从指定的数据源中加载数据。

语法:

Fill(SelectString, IsQuery)

或者

Fill(SelectString, ConnectionName, IsQuery)

SelectString:  Select语句
ConnectionName:可选参数,指定数据源名称
IsQuery:       逻辑型,设为True,将生成SQLQuery型Table,否则生成SQLTable型Table。

SQLTable是数据表,默认是可以编辑和保存的。
SQLQuery是查询表,默认不能编辑,通过将其AllowEdit属性设置为True,可以编辑查询结果,但不能保存编辑结果。

例如:

Tables("窗口1_Table1").Fill("Select * From {客户}","nwnd",True)

不管Table原来是什么类型,显示的是什么数据,执行上述代码后,Table将成为SQLQuery类型,显示nwnd数据源中的客户表数据。

需要特别注意的是,如果只想取部分列生成SQLTable,那么必须包括主键列在内,例如:

Tables("窗口1_Table1").Fill("Select [_Identify],[客户],[数量],[单价] From {订单}",False)

这里假定订单表是内部数据表,内部数据表的主键列是_Identify,如果是外部表,请使用实际的主键列名称。

如果要生成SQLQuery,则没有这个限制:

Tables("窗口1_Table1").Fill("Select [客户],[数量],[单价] From {订单}",True)

一定要注意,如果要生成SQLTable,第二个参数要设置为False,如果要生成SQLQuery,第二个参数则要设置为True,切不可搞混。

判断Table的类型

如果需要判断Table的类型,以及是否是副本,请参考:

TableType
IsCopy


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57640 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2010/9/14 12:38:00 [显示全部帖子]

Tables("窗口1_Table1").fill("select [客户简码],[客户名称],[联系人],[联系人],[所属_省市],[所属_县市] from {客户档案}","销售系统",True)

 

会不会是两个[联系人]的问题?


 回到顶部