Foxtable(狐表)用户栏目专家坐堂 → 实时加载数据


  共有7890人关注过本帖树形打印复制链接

主题:实时加载数据

帅哥哟,离线,有人找我吗?
edisontsui
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
实时加载数据  发帖心情 Post By:2022/8/19 18:11:00 [显示全部帖子]

我有一个"销售单"这个数据表,希望在这个表里面输入“产品代号”时,能够从数据库的“物料字典”里面加载这个产品代号实时的库存数量,因为在我登录 foxtable 时与我现在输入这个产品代号时,这个产品代号在数据库里面的库存数量可能已经发生了变化,所以我希望得到当前的库存数量,而不是我登录系统时加载到的库存数量。这样的话,我不用专门去同步“物料字典”这个表,就可以得到最新的库存数据。请问有什么代码可以实现这个目标吗?谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By: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 时速度非常慢。有什么方法可以加快打开项目时的速度吗?谢谢。



 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/20 16:11:00 [显示全部帖子]

好的。

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By: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

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


 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/23 17:12:00 [显示全部帖子]

datarowdeleted 事件里面是否也要加 e.DataRow.save,SQLCompute才能统计删除数据行之后的数据呢?

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/23 17:47:00 [显示全部帖子]

谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/24 7:36:00 [显示全部帖子]

e.DataRow.save '必须先保存,后面SQL才能统计到此数据的变化
DataTables("物料字典").DataCols("物料编号").RaiseDataColChanged("物料编号 = '" & e.DataRow("物料编号") & "'")

这是datarowdeleted 事件里面的代码,加了e.DataRow.save后,删除数据行时会出现如下提示,请问要如何改进代码:

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:表,采购单,DataRowDeleted
详细错误信息:
调用的目标发生了异常。
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据

谢谢。

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/24 10:48:00 [显示全部帖子]

请问 e.DataRow("物料编号") = nothing 这行是什么意义?

 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/24 11:25:00 [显示全部帖子]

下面是 AfterOpenProject 里面的代码,目的是只限制某些组别的人执行此代码,但是感觉其他组别的人登录也一样会执行这段代码,请问是什么原因?谢谢:


If user.group = "仓库" OrElse user.group = "组装仓库" Then

    If Dt.Contains("出入库") Then

        DataTables("出入库").DataCols("出入库日期").RaiseDataColChanged() 

        DataTables("出入库2").DataCols("出入库日期").RaiseDataColChanged() 

    End If

End If


 回到顶部
帅哥哟,离线,有人找我吗?
edisontsui
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1536 积分:9956 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2022/8/25 17:31:00 [显示全部帖子]

按照13楼的方法,删除记录时,会被卡死,总是停留在“正在删除记录...” 的状态。

 回到顶部
总数 17 1 2 下一页