以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  实时加载数据  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=179356)

--  作者:edisontsui
--  发布时间:2022/8/19 18:11:00
--  实时加载数据
我有一个"销售单"这个数据表,希望在这个表里面输入“产品代号”时,能够从数据库的“物料字典”里面加载这个产品代号实时的库存数量,因为在我登录 foxtable 时与我现在输入这个产品代号时,这个产品代号在数据库里面的库存数量可能已经发生了变化,所以我希望得到当前的库存数量,而不是我登录系统时加载到的库存数量。这样的话,我不用专门去同步“物料字典”这个表,就可以得到最新的库存数据。请问有什么代码可以实现这个目标吗?谢谢。
--  作者:chnfo
--  发布时间:2022/8/20 8:19:00
--  
直接定义一个后台查询表就可以了
--  作者:有点蓝
--  发布时间:2022/8/20 9:21:00
--  
每次都从后台查询需要的数据:http://www.foxtable.com/webhelp/topics/2902.htm


--  作者:edisontsui
--  发布时间:2022/8/20 14:58:00
--  
我在"物料字典"之 datacolchanged 里面设置了如下代码:
If e.DataCol.Name = "物料编号" Then
    Dim Val As Single
    Val = DataTables("出入库").SQLCompute("Sum(出入库数量)","物料编号 = \'" & e.datarow("物料编号") & "\'")  \'SQLCompute用于计算后台所有数据
    e.DataRow("出入库累计T1") = Val
End If

然后在 afteropenproject 里面设置了如下代码:
DataTables("物料字典").DataCols("物料编号").RaiseDataColChanged() \'用于统计后台数据

目的是在打开项目时统计每个物料的出入库数量。但是,在启动 foxtable 时速度非常慢。有什么方法可以加快打开项目时的速度吗?谢谢。



--  作者:有点蓝
--  发布时间:2022/8/20 15:13:00
--  
没有必要做这种重置的计算。在业务处理的过程中,什么时候需要的时候再去数据库取数据。比如用户录入物料编号001,希望查看001的各种数据的时候,再用数据库查询001的数据
--  作者:edisontsui
--  发布时间:2022/8/20 16:11:00
--  
好的。
--  作者:edisontsui
--  发布时间:2022/8/23 16:27:00
--  
我在"物料字典"之 datacolchanged 里面设置了如下代码:
If e.DataCol.Name = "物料编号" Then
    Dim Val As Single
    Val = DataTables("出入库").SQLCompute("Sum(出入库数量)","物料编号 = \'" & e.datarow("物料编号") & "\'")  \'SQLCompute用于计算后台所有数据
    e.DataRow("出入库累计T1") = Val
End If

我在"出入库"之 datacolchanged 里面设置了如下代码:
If e.DataCol.name = "出入库数量" Then
    DataTables("物料字典").DataCols("物料编号").RaiseDataColChanged("物料编号 = \'" & e.DataRow("物料编号") & "\'")
end if

当我在"出入库"里面输入新的数据行时,就会触发"物料字典"重新计算出入库数量之和,但是它并不会把新增数据行的数据计算进去,而只是计算了原有数据行的数据。这是为什么呢?


--  作者:有点蓝
--  发布时间:2022/8/23 16:30:00
--  
SQLCompute只能统计已经保存的数据

If e.DataCol.name = "出入库数量" Then
e.DataRow.save
    DataTables("物料字典").DataCols("物料编号").RaiseDataColChanged("物料编号 = \'" & e.DataRow("物料编号") & "\'")
end if

--  作者:edisontsui
--  发布时间:2022/8/23 17:12:00
--  
datarowdeleted 事件里面是否也要加 e.DataRow.save,SQLCompute才能统计删除数据行之后的数据呢?
--  作者:有点蓝
--  发布时间:2022/8/23 17:28:00
--  
是的