以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  切换表后结果不自动更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=118290)

--  作者:有点甜
--  发布时间:2018/4/28 10:06:00
--  

MainTableChanged

 

msgbox("123" & MainTable.Name)

If MainTable.Name = "生产排产表" Then
    DataTables("生产排产表").DataCols("加工工序").RaiseDataColChanged()
    DataTables("生产排产表").DataCols("合格品").RaiseDataColChanged()
End If

 

CurrentTableChanged

 

msgbox("abc" & CurrentTable.Name)

If CurrentTable.Name = "生产排产表" Then
    DataTables("生产排产表").DataCols("加工工序").RaiseDataColChanged()
    DataTables("生产排产表").DataCols("合格品").RaiseDataColChanged()
End If

[此贴子已经被作者于2018/4/28 10:07:29编辑过]

--  作者:有点甜
--  发布时间:2018/4/28 10:38:00
--  

你的数据量越大,执行SQLCompute的次数越多,那就越慢的。

 

试试在你DataColChanged事件加入代码 Application.DoEvents()


--  作者:有点甜
--  发布时间:2018/4/28 10:48:00
--  
随便加到datacolchanged里面即可,可以在多个代码后面加。
--  作者:有点甜
--  发布时间:2018/4/28 11:03:00
--  
以下是引用nuoyan88在2018/4/28 11:01:00的发言:
老师,这句代码是什么意思呢?起什么作用呀?Application.DoEvents()

 

参考

 

http://www.foxtable.com/webhelp/scr/1476.htm

 


--  作者:有点甜
--  发布时间:2018/5/29 14:29:00
--  

1、在事件里面加入代码,看有没有弹出,弹出是否正确

 

msgbox(CurrentTable.Name)

 

2、你可以在窗口的afterLoad等事件,写重置列代码啊


--  作者:有点甜
--  发布时间:2018/5/29 15:01:00
--  

currentTable是当前表的意思;maintable是当前datatable的意思。

 

你切换到表A,那么currentTable、maintable都是表A。


--  作者:有点蓝
--  发布时间:2018/5/29 21:21:00
--  
保留maintablechanged事件代码即可

窗口保存按钮最后加上

If MainTable.Name = "结存表" Then
    DataTables("结存表").DataCols("产品编码").RaiseDataColChanged()
End If

另外不建议动不动就使用RaiseDataColChanged,效率非常低
1、需要查看所有数据的时候再更新
2、平时根据需要使用到的产品进行更新提取库存即可


--  作者:有点甜
--  发布时间:2018/5/31 9:27:00
--  

改成


DataTables("销售订单需求").DataCols("成品编码").RaiseDataColChanged()
DataTables("销售订单需求").DataCols("销售订单号").RaiseDataColChanged()
DataTables("销售订单需求").DataCols("客户编码").RaiseDataColChanged()

DataTables("销售订单需求_订单明细").DeleteFor("成品编码 is null or 客户编码 is null")
Tables("销售订单需求").save
DataTables("销售订单需求_订单明细").Save()
DataTables("销售订单需求").Load