以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [讨论]窗口中的Table数据加载的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=10916)

--  作者:kensou11111
--  发布时间:2011/6/29 16:04:00
--  [讨论]窗口中的Table数据加载的问题

我在一个窗口的Afterload事件设置了如下代码

Tables("清单查询修改_Table1").Fill("Select [_Identify], 材料编码, 材料名称, 型号规格, 单机量, 装入位号, 分工 From {前工序清单} where [清单编号] = \'" & Tables("清单列表").Current("前工序清单编号") & "\'" ,"技术文件", False)

 

我发现不管最后一个参数设置成TRUE还是FALSE,得出的表都是锁定的,与帮助里面说的不符。其实我最希望当这个参数是FALSE的时候,加载的是数据源中原汁原味的数据(比如要加载数据源中的30行数据,其中10行是锁定的,那他加载后的数据也是如此)

 

 

Fill(SelectString, ConnectionName, IsQuery)

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

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

[此贴子已经被作者于2011-6-29 16:07:13编辑过]

--  作者:hhbb
--  发布时间:2011/6/29 16:25:00
--  
Dim t As Table =Tables("窗口1_Table1")
t.FILL("SELECT * FROM{订单}",False)
t.AllowEdit = True

For n  As Integer = 0 To t.DataTable.DataRows.count-1
    t.DataTable.DataRows(n).Locked  = DataTables("订单").DataRows(n).Locked 
Next

--  作者:kensou11111
--  发布时间:2011/6/29 17:35:00
--  
楼上的方法不行吧,我是要从外部数据源加载数据的,而不是加载内部表啊
--  作者:狐狸爸爸
--  发布时间:2011/6/29 17:43:00
--  

Tables("清单查询修改_Table1").Fill("Select [_Identify], 材料编码, 材料名称, 型号规格, 单机量, 装入位号, 分工 From {前工序清单} where [清单编号] = \'" & Tables("清单列表").Current("前工序清单编号") & "\'" ,"技术文件", False)
Tables("清单查询修改_Table1").AllowEdit = True

[此贴子已经被作者于2011-6-29 18:04:09编辑过]

--  作者:kensou11111
--  发布时间:2011/6/29 18:03:00
--  
以下是引用狐狸爸爸在2011-6-29 17:43:00的发言:

Tables("清单查询修改_Table1").Fill("Select [_Identify], 材料编码, 材料名称, 型号规格, 单机量, 装入位号, 分工 From {前工序清单} where [清单编号] = \'" & Tables("清单列表").Current("前工序清单编号") & "\'" ,"技术文件", False)
Tables("清单查询修改_Table1") = True

但这样就会产生另外一个问题,比如我加载了30行数据,其中有10行本来在数据源中是锁定的(例如一些已审核的数据,会将它们锁定),但加载到Tables("清单查询修改_Table1") 中后就会全部变成可编辑了,这样就不太符合预先的设计了。


--  作者:狐狸爸爸
--  发布时间:2011/6/29 18:04:00
--  
错了,Tables("清单查询修改_Table1").AllowEdit = True不影响已经锁定的行,这些锁定的行,还是不能被编辑的
[此贴子已经被作者于2011-6-29 18:04:58编辑过]

--  作者:kensou11111
--  发布时间:2011/6/29 18:10:00
--  
也不是说这样就不能解决问题了,只是要绕个弯,多走些弯路去解决了,这样无论编写代码还是运行效率就低了
--  作者:狐狸爸爸
--  发布时间:2011/6/29 18:11:00
--  
这对效率没有任何影响的。