Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
各位老师:一个系统,用数据库外部表,出库单汇总与出库单明细关联,在同步表时耗时太长。
代码如下:
Dim st As Date = Date.Now '将开始时间保存在变量st中
DataTables("出库单明细").RemoveFor("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单明细").AppendLoad("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单汇总").StopRedraw
DataTables("出库单汇总").RemoveFor("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单汇总").AppendLoad("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单汇总").ResumeRedraw
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") '计算并显示执行代码所花费的秒数
耗时如下图:
此主题相关图片如下:微信图片_20230916094003.png
请各位老师,怎样修改一下代码,将耗时减少!
谢谢!
老师:好
现一出库日期中,汇总表100行之内,明细表1000行之内!
用的内部局域网!
老师:好
屏蔽事件代码耗时更长
60多秒
屏蔽表达式代码如下:
Dim st As Date = Date.Now '将开始时间保存在变量st中
'SystemReady = False
' Try
'追加数据代码
DataTables("出库单明细").DataCols("折后单价").Expression = ""
DataTables("出库单明细").DataCols("金额").Expression = ""
'Sum(Child(出库关联).数量)
DataTables("出库单明细").StopRedraw
DataTables("出库单明细").RemoveFor("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单明细").AppendLoad("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单明细").ResumeRedraw
DataTables("出库单明细").DataCols("折后单价").Expression = "单价 * 折扣率"
DataTables("出库单明细").DataCols("金额").Expression = "数量 * 折后单价 * 修正"
DataTables("出库单汇总").DataCols("金额").Expression = ""
DataTables("出库单汇总").DataCols("数量").Expression = ""
DataTables("出库单汇总").StopRedraw
DataTables("出库单汇总").RemoveFor("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单汇总").AppendLoad("出库日期 = '" & e.Form.Controls("DateTimePicker1").Text & "'")
DataTables("出库单汇总").ResumeRedraw
DataTables("出库单汇总").DataCols("数量").Expression = "Sum(Child(出库关联).数量)"
DataTables("出库单汇总").DataCols("金额").Expression = "Sum(Child(出库关联).金额)"
With Tables("销售出库单_Table2")
.Position = .Rows.Count - 1
End With
'e.Form.Controls("Label7").Visible = False
'Catch ex As Exception
' MessageBox.Show("追加数据失败")
'End Try
'SystemReady = True
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") '计算并显示执行代码所花费的秒数
耗时如图:
麻烦老师给看看,谢谢!
老师:好
测试:Output.Show("移除出库单明细耗时: " & (Date.Now - st).TotalSeconds & "秒")
移除出库单明细耗时:22.027秒
Output.Show("追加出库单明细耗时: " & (Date.Now - st).TotalSeconds & "秒")
追加出库单明细耗时:21.45秒
Output.Show("添加出库单明细表达式耗时: " & (Date.Now - st).TotalSeconds & "秒")
添加出库单明细表达式耗时:0.29秒
Output.Show("移除出库单汇总耗时: " & (Date.Now - st).TotalSeconds & "秒")
移除出库单汇总耗时:5.522
这几项耗时较长,有没有缩短的可能?
请老师费心!谢谢
老师,外部数据表怎么做例子?