以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  自动引用失效  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109794)

--  作者:有点甜
--  发布时间:2017/11/19 23:20:00
--  
datacolchanged事件,拷贝到窗口表格的datatacolchanged事件去。
--  作者:有点甜
--  发布时间:2017/11/20 9:00:00
--  

试试改成这样

 

Dim h As New Filler
h.SourceTable = DataTables("生产计划下达_BOM分配") \'指定数据来源
h.DataTable = DataTables("原材料需求明细") \'指定数据接收表
h.Fill()


--  作者:有点甜
--  发布时间:2017/11/20 10:19:00
--  

 两个表的列的类型,必须一致。

 

 你bom表是字符列,但明细表是日期列,就有可能出错。


--  作者:有点甜
--  发布时间:2017/11/20 11:30:00
--  

Dim t1 As Table = e.Form.Controls("BOM分配").Table
Dim sql As String = "Select *  from {BOM基础数据} where 成品编码 in (\'" & DataTables("生产计划下达_生产排产分配表").GetComboListString("成品编码").replace("|", "\',\'") & "\')"
t1.fill(sql, True)


--  作者:有点甜
--  发布时间:2017/11/20 12:21:00
--  
 你写了什么代码?执行了什么代码?
--  作者:有点甜
--  发布时间:2017/11/20 13:11:00
--  

 项目发上来测试。

 

 


--  作者:有点甜
--  发布时间:2017/11/20 14:25:00
--  

改成

 

Dim t1 As Table = e.Form.Controls("BOM分配").Table
Dim sql As String = "Select *  from {原材料需求明细} where 成品编码 in (\'" & DataTables("生产计划下达_生产在制").GetComboListString("成品编码").replace("|", "\',\'") & "\')"
t1.fill(sql, True)


--  作者:有点蓝
--  发布时间:2017/11/20 20:51:00
--  
最后调用

Tables("生产计划下达_生产在制").addnew
Tables("生产计划下达_生产在制").AllowEdit = True

DataTables("生产计划下达_生产排产分配表").RemoveFor("")
DataTables("生产计划下达_BOM分配").RemoveFor("")

--  作者:有点蓝
--  发布时间:2017/11/20 21:55:00
--  
没看懂你的业务。那应该是上一次生成的明细数据
--  作者:有点蓝
--  发布时间:2017/11/20 22:28:00
--  
原材料需求明细的数据是永久保存的还是临时的?

如果是临时的就全部删除掉:DataTables("原材料需求明细").DataRows.Clear
如果是永久的,窗口加载要加上过滤的条件