Foxtable(狐表)用户栏目专家坐堂 → 求助,代码效率问题!


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

主题:求助,代码效率问题!

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


加好友 发短信
等级:一尾狐 帖子:414 积分:3582 威望:0 精华:0 注册:2016/1/1 20:20:00
求助,代码效率问题!  发帖心情 Post By:2016/11/12 23:33:00 [只看该作者]

 Dim st As Date = Date.Now '将开始时间保存在变量st中
                Dim txt As String = e.Form.Controls("TextBox1").text
                txt = "'%" & txt & "%'"
                Tables("商品信息表").Filter = "商品名称 Like " & txt & " Or 商品编号 Like " & txt & " Or 拼音码 Like " & txt
                Dim a As Double
                a = Tables("商品信息表").Compute("count(永久编号)","商品名称 Like " & txt & " Or 商品编号 Like " & txt & " Or 拼音码 Like " & txt)
                If a = 1 Then
                    Tables("零售总表").Current("永久编号") = Tables("会员信息表").Current("永久编号")
                    Tables("零售总表.零售明细表").AddNew
                    Tables("零售总表.零售明细表").Current("商品编号") = Tables("商品信息表").Current("永久编号")
                    e.Form.Controls("TextBox1").text = ""
                    e.Form.Controls("TextBox1").Select
                ElseIf a = 0 Then
                    MessageBox.Show("不存在此商品,请重新输入")
                    e.Form.Controls("TextBox1").text = ""
                ElseIf a > 1 Then
                    forms("查询").open()
                    forms("查询").Controls("TextBox1").text = e.Form.Controls("TextBox1").text
                End If
                MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") '计算并显示执行代码所花费的秒数


这段代码,经测试,效率较慢,一般情况下需要一秒钟时间才能完成,请教各位老师,怎样才能使效率变高?

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


加好友 发短信
等级:狐神 帖子:4636 积分:33830 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2016/11/13 7:53:00 [只看该作者]

用find试试

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/11/13 9:33:00 [只看该作者]

试试

 

Dim st As Date = Date.Now '将开始时间保存在变量st中
Dim txt As String = e.Form.Controls("TextBox1").text
txt = "'%" & txt & "%'"
Dim drs As List(Of DataRow) = DataTables("商品信息表").Select("商品名称 Like " & txt & " Or 商品编号 Like " & txt & " Or 拼音码 Like " & txt)
If drs.count = 1 Then
    Tables("零售总表").Current("永久编号") = drs(0)("永久编号")
    Tables("零售总表.零售明细表").AddNew
    Tables("零售总表.零售明细表").Current("商品编号") = drs(0)("永久编号")
    e.Form.Controls("TextBox1").text = ""
    e.Form.Controls("TextBox1").Select
ElseIf drs.count = 0 Then
    MessageBox.Show("不存在此商品,请重新输入")
    e.Form.Controls("TextBox1").text = ""
ElseIf drs.count > 1 Then
    forms("查询").open()
    forms("查询").Controls("TextBox1").text = e.Form.Controls("TextBox1").text
End If
MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒") '计算并显示执行代码所花费的秒数

 

或者加上 stopredraw或systemready

 

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

 

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

 

 


 回到顶部