以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于表中目录树输入的问题,求助!(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=26959)

--  作者:独孤九箭
--  发布时间:2012/12/18 15:15:00
--  关于表中目录树输入的问题,求助!(已解决)

订单明细中有“品牌,规格,货号,单价”四列,希望能通过品牌的目录树选择后自动赋值。目录树来源于表“产品名录”的“品牌,规格,货号,单价”四列。

 

问题一:如果用列属性中自带的目录树,则当表“产品名录”发生变化时,(比如说添加了新的产品)这个目录树不变化,如何做到同步?

 

问题二:如果上面的问题无法解决,则只能通过“订单明细”的表事件来解决。但这时有新的问题出现了。就是我在使用时,是从“订单”表的关联表“订单.订单明细”中来用的。表事件应该怎么写进去?写在哪里?

 

 

 

[此贴子已经被作者于2012-12-18 16:43:29编辑过]

--  作者:lin_hailun
--  发布时间:2012/12/18 15:21:00
--  
 因为生成树比较费劲,特别是数据量较大的时候。需要的是,使用代码生成树吧。

 http://www.foxtable.com/help/topics/2127.htm
--  作者:独孤九箭
--  发布时间:2012/12/18 16:29:00
--  
lin_hailun老师,我已经按这个做了,我想你可能没注意我的第二个问题。我在订单明细中表事件PrepareEdit中已经写好代码了,单独运行时没问题,但放在窗口中时,因为是关联表,而PrepareEdit事件是针对table的,而不是针对datatable的,所以窗口中并没有执行我写的的代码。
 

--  作者:狐狸爸爸
--  发布时间:2012/12/18 16:33:00
--  

Tables("客户").Cols("省").DropTree = tb.Build()
 
改为:
 
Tables("父表.子表").Cols("省").DropTree = tb.Build()

 

 

或者:

 


e.Col.DropTree = tb.Build()

 

记得判断列名,例如:

 

If e.Col.Name = "sss" AndAlso e.IsFocusCell Then
    Dim tb As New DropTreeBuilder
    tb.SourceTable = DataTables("行政区域") \'指定目录树表
    tb.TreeCols = "省|县市" \'指定用于生成目录树的列
    tb.SourceCols = "省|县市|区号|邮编" \'指定数据来源列
    tb.ReceiveCols = "省|县市|区号|邮编" \'指定数据接收列
    e.Col.DropTree = tb.Build()
End If

[此贴子已经被作者于2012-12-18 16:34:50编辑过]

--  作者:独孤九箭
--  发布时间:2012/12/18 16:38:00
--  
先谢谢狐爸,先试一下第一个方法。第二个方法我已经是这样做了。