Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:请教 临时表可以用upfate吗?

1楼
jswjyjf 发表于:2025/4/1 14:46:00
请教 临时表可以用upfate吗?
2楼
有点蓝 发表于:2025/4/1 14:48:00
不能的
3楼
jswjyjf 发表于:2025/4/1 15:47:00
我以为代码 数据能正常出来 就是有点耗时 谢谢帮我优化一下代码 或者有啥好办法提高速度 感谢

Dim exp1 As String  = "单据状态='已审核' and 单据类别='横机'"
Tables(e.form.Name & "_Table1").fill("selec  加工商名称,产品名称,产品规格,产品型号,sum(发出数量) as 计划数,0 as 已交货数量, 0 as 未交货数量,状态,可超出比例,'' As 是否已完成,开单时间  from  {加工计划明细} where " & exp1 & " group by 加工商名称,产品名称,产品规格,产品型号,状态,可超出比例,是否已完成,开单时间","wjhansdata",True)
Tables(e.form.Name & "_Table1").DataTable.DataCols("开单时间").SetDateTimeFormat(DateTimeFormatEnum.DateTime)
With Tables(e.form.Name & "_Table1")
    .MergeMode = MergeModeEnum.Standard
    .MergeCols.Clear()
   .MergeCols.Add("加工商名称")
      .MergeCols.Add("产品名称")
    .MergeCols.Add("产品规格")
    .MergeCols.Add("产品型号")
    .MergeSort = "加工商名称,产品名称,产品规格,产品型号"
    .AllowMerge = True
End With
If Tables(e.form.Name & "_Table1").rows.count=0
    Tables(e.form.Name & "_Table1").GrandTotal = False
Else
    Tables(e.form.Name & "_Table1").Cols("计划数").GrandTotal = True
    Tables(e.form.Name & "_Table1").Cols("已交货数量").GrandTotal = True
    Tables(e.form.Name & "_Table1").Cols("未交货数量").GrandTotal = True
    Tables(e.form.Name & "_Table1").GrandTotal = True '显示合计模式
End If
 
Dim exp As String 
For Each dr As Row In Tables(e.form.Name & "_Table1").rows
exp="单据类别='横机' and 加工商名称='" & dr("加工商名称")  & "' And 产品名称='" & dr("产品名称") & "' And 产品规格='" & dr("产品规格") & "' And 产品型号='" & dr("产品型号") & "'"    
dr("已交货数量")=DataTables("加工收发明细").SQLCompute("Sum(收回数量)",exp)

Next
4楼
baicaocao 发表于:2025/4/1 15:52:00
DataTables("加工收发明细").SQLCompute("Sum(收回数量)",exp)你这个表,可以提前加载出来,根据你自己上面的条件,加载出来之后,使用DataTables("加工收发明细").Compute("Sum(收回数量)",exp),就不会耗时了。

5楼
jswjyjf 发表于:2025/4/1 16:00:00
DataTables("加工收发明细")这个表已经加载了
6楼
有点蓝 发表于:2025/4/1 16:15:00
Tables(e.form.Name & "_Table1").fill("select a.*,b.已交货数量 from (select  加工商名称,产品名称,产品规格,产品型号,sum(发出数量) as 计划数,0 as 已交货数量, 0 as 未交货数量,状态,可超出比例,'' As 是否已完成,开单时间  from  {加工计划明细} where 单据状态='已审核' and 单据类别='横机' group by 加工商名称,产品名称,产品规格,产品型号,状态,可超出比例,是否已完成,开单时间) as a left join (select  加工商名称,产品名称,产品规格,产品型号,sum(收回数量) as 已交货数量 from {加工收发明细} group by 加工商名称,产品名称,产品规格,产品型号) as b on a.加工商名称=b.加工商名称 AND a.产品名称=b.产品名称 and a.产品规格=b.产品规格 and a.产品型号=b.产品型号","wjhansdata",True)

去掉Dim exp As String 以及后面所有代码
7楼
jswjyjf 发表于:2025/4/1 16:30:00
加工商名称 产品名称 产品规格 产品型号 有重复记录的 多算了
8楼
有点蓝 发表于:2025/4/1 16:36:00
Tables(e.form.Name & "_Table1").fill("select a.*,b.已交货数量 from (select  加工商名称,产品名称,产品规格,产品型号,sum(发出数量) as 计划数,0 as 已交货数量, 0 as 未交货数量,状态,可超出比例,'' As 是否已完成,开单时间  from  {加工计划明细} where 单据状态='已审核' and 单据类别='横机' group by 加工商名称,产品名称,产品规格,产品型号,状态,可超出比例,是否已完成,开单时间) as a left join (select  c.加工商名称,c.产品名称,c.产品规格,c.产品型号,sum(c.收回数量) as 已交货数量 from {加工收发明细} as c inner join  {加工计划明细} as  d on c.加工商名称=d.加工商名称 AND c.产品名称=d.产品名称 and c.产品规格=d.产品规格 and c.产品型号=d.产品型号 where d.单据状态='已审核' and d.单据类别='横机' group by c.加工商名称,c.产品名称,c.产品规格,c.产品型号) as b on a.加工商名称=b.加工商名称 AND a.产品名称=b.产品名称 and a.产品规格=b.产品规格 and a.产品型号=b.产品型号","wjhansdata",True)
9楼
jswjyjf 发表于:2025/4/1 16:43:00
还是有重复 
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
10楼
有点蓝 发表于:2025/4/1 16:45:00
3楼原代码肯定也有重复啊,不同的开单时间,肯定是有多行
共12 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .02344 s, 2 queries.