以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  加载出问题了...  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=49373)

--  作者:晕了快扶我
--  发布时间:2014/4/17 0:05:00
--  加载出问题了...
4.18的版本,窗口的afterload事件,按钮事件均这样,同时如果用异步加载的话,在编程模式下,点击菜单的任何地方程序又会假死掉
With DataTables("客户订单主表")
    .LoadFilter = ""
    .LoadTop = 10
    .LoadOver = "要求交期"
    .LoadReverse = True
    .LoadPage = 0
    .load()
End With
这样子加载会卡住,程序假死
With DataTables("客户订单主表")
    .LoadFilter = ""
    .LoadTop = 10
    .LoadOver = "要求交期"
    .LoadReverse = True
    .LoadPage = 0
    .LoadAsync()
End With
这样子就不会?
点解?
[此贴子已经被作者于2014-4-17 0:07:55编辑过]

--  作者:晕了快扶我
--  发布时间:2014/4/17 0:21:00
--  
还好,能退回16号的版本,无此问题
--  作者:狐狸爸爸
--  发布时间:2014/4/17 8:39:00
--  

单单一楼的代码,是不应该有问题的,我测试也正常。

最好用例子说话


--  作者:blackzhu
--  发布时间:2014/4/17 8:52:00
--  
老大  异步加载还是有问题,

 我在行切换事件中原来的代码是这样写的:
  Dim r As Row = e.Table.Current
        If r Is Nothing Then
            Return
        End If
        If Forms("办公用品领用管理").Opened Then
            If Forms("办公用品领用管理").Controls("历史数据").Checked = True Then
                Tables("办公用品领用管理_Table2").DataTable.LoadFilter = "商品编号=\'" & r("商品编号") & "\'"
 Tables("办公用品领用管理_Table2").DataTable.LoadAsync()
            Else
                Tables("办公用品领用管理_Table2").DataTable.LoadFilter = " [_Identify] Is Null"
 Tables("办公用品领用管理_Table2").DataTable.LoadAsync()
            End If

结果打开窗口是提示找不到一个列名:


图片点击可在新窗口打开查看此主题相关图片如下:tt截图未命名.jpg
图片点击可在新窗口打开查看

然后窗口设计等,全部卡死:

 然后我这样改:

 Dim r As Row = e.Table.Current
        If r Is Nothing Then
            Return
        End If
        If Forms("办公用品领用管理").Opened Then
            If Forms("办公用品领用管理").Controls("历史数据").Checked = True Then
                Tables("办公用品领用管理_Table2").DataTable.LoadFilter = "商品编号=\'" & r("商品编号") & "\'"
            Else
                Tables("办公用品领用管理_Table2").DataTable.LoadFilter = " [_Identify] Is Null" 
            End If
Tables("办公用品领用管理_Table2").DataTable.LoadAsync()

  切换行没有反应,然后我退出系统,就提示系统在加载数据不可以退出.  只能直接关闭程序.   

  需要注明的是 数据量不会超过5条.

 然后我改成
    
        Dim r As Row = e.Table.Current
        If r Is Nothing Then
            Return
        End If
        If Forms("办公用品领用管理").Opened Then
            If Forms("办公用品领用管理").Controls("历史数据").Checked = True Then
                Tables("办公用品领用管理_Table2").DataTable.LoadFilter = "商品编号=\'" & r("商品编号") & "\'"
            Else
                Tables("办公用品领用管理_Table2").DataTable.LoadFilter = " [_Identify] Is Null" 
            End If
Tables("办公用品领用管理_Table2").DataTable.Load


  同步加载,系统一切正常.


--  作者:狐狸爸爸
--  发布时间:2014/4/17 8:55:00
--  

做个简单例子发上来看看。

此外,这种情况最好不要用异步加载,这里需要的是实时加载,异步加载不能滥用的。

当然,也不应该出现错误提示。

[此贴子已经被作者于2014-4-17 8:56:33编辑过]

--  作者:blackzhu
--  发布时间:2014/4/17 8:58:00
--  
哦 ,明白 . 但是这个是远程的SQL不好做例子.