以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  跨表条件统计自动更新  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124203)

--  作者:manyifuwu
--  发布时间:2018/9/1 19:15:00
--  跨表条件统计自动更新

同过,编号和“合同号”这两列,条件统计跨表

Select Case e.DataCol.name
  Case "编号", "使用1", "合同号"
e.DataRow("派工已做1") = DataTables("派工").Compute("Sum(派工已做1)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")

End Select

代码没问题,但要重置“编号”列。代码怎么改,可以自动更新。(不需要每次都去重置列)由于笨看帮助还是不知其所以然。


--  作者:有点甜
--  发布时间:2018/9/2 11:32:00
--  

自动重置列不可以么?

 

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

 

比如在派工表的datacolchanged事件重置列。


--  作者:manyifuwu
--  发布时间:2018/10/9 14:20:00
--  

Select Case e.DataCol.name
  Case "编号", "使用1", "合同号"
e.DataRow("派工已做1") = DataTables("派工").Compute("Sum(派工已做1)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")

End Select

 

这段代码,只能统计,加载了的数据,怎么实现:不用加载派工的所有数据,得到直接数据库后台统计结果呢?


--  作者:有点甜
--  发布时间:2018/10/9 14:26:00
--  

参考

 

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

 


--  作者:manyifuwu
--  发布时间:2018/10/9 16:01:00
--  


Dim  Val As  Integer
 Val =  DataTables("派工").SQLCompute("Sum(派工已做1)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")
Val =  DataTables("派工").SQLCompute("Sum(派工数量)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")
 Output.Show(Val)

 

放在datacolchanged,,但系统卡死。????那错了呢?


--  作者:有点甜
--  发布时间:2018/10/9 16:05:00
--  

每执行一次sqlcompute大概耗时0.5秒,你不能重置列,特别是数据量大的情况。

 

 


--  作者:manyifuwu
--  发布时间:2018/10/9 17:07:00
--  

我取消了重置列,

麻烦看看代码有什么问题?

代码还是没有执行出后台统计结果?。


--  作者:有点甜
--  发布时间:2018/10/9 17:09:00
--  
以下是引用manyifuwu在2018/10/9 17:07:00的发言:

我取消了重置列,

麻烦看看代码有什么问题?

代码还是没有执行出后台统计结果?。

 

什么意思?

 

1、你代码怎么写?写到哪里?

 

2、你修改【编号】列的数据以后触发datacolchanged事件,不统计数据?


--  作者:manyifuwu
--  发布时间:2018/10/9 17:24:00
--  

Dim  Val As  Integer
 Val =  DataTables("派工").SQLCompute("Sum(派工已做1)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")
Val =  DataTables("派工").SQLCompute("Sum(派工数量)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")
 Output.Show(Val)

 

放在客户资料  datacolchanged

派工表有     :交单     、派工数量、   派工已做。这3列

我希望   派工表  修改交单列后,    ,,,客户资料表里的:派工数量和已做1这两列   显示统计结果,(派工里不过加载没有都能的能计算),   。

[此贴子已经被作者于2018/10/9 17:24:08编辑过]

--  作者:有点甜
--  发布时间:2018/10/9 17:26:00
--  

你本来的代码,compute改成sqlcompute即可啊

 

Select Case e.DataCol.name
  Case "编号", "使用1", "合同号"
e.DataRow("派工已做1") = DataTables("派工").sqlCompute("Sum(派工已做1)","编号 = \'" & e.DataRow("编号") & "\' and 合同号 = \'" & e.DataRow("合同号") & "\'")

End Select