Foxtable(狐表)用户栏目专家坐堂 → 自动加载数据


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

主题:自动加载数据

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
自动加载数据  发帖心情 Post By:2017/11/25 19:36:00 [只看该作者]

If e.Table.Current IsNot Nothing Then
    Dim dr As DataRow = e.Table.Current.DataRow
    Dim wz As Integer = Tables("明细账").FindRow(dr)
    If wz >=0 Then
        Tables("明细账").Position = wz
    End If
    If Tables("明细账").current.Isnull("审核") = True
        e.Form.Controls("审核").TopMost = True
        e.Form.Controls("消审").backMost = True
        e.Form.Controls("ZengJiaXiang").Enabled = True
        e.Form.Controls("ShanChuXiang").Enabled = True
        e.Form.Controls("SanChu").Enabled = True
    Else
        e.Form.Controls("消审").TopMost = True
        e.Form.Controls("审核").backMost = True
        e.Form.Controls("ZengJiaXiang").Enabled = False
        e.Form.Controls("ShanChuXiang").Enabled = False
        e.Form.Controls("SanChu").Enabled = False
    End If
    'Dim st As Date = Date.Now
    'Forms("计算利息").StopRedraw
    Dim t2 As Table =Tables("计算利息_table2")
    Dim t3 As Table =Tables("计算利息_table3")
    Dim t4 As Table =Tables("计算利息_table4")
    With Tables("计算利息_table1")
        Dim Filter As String = "编号尾号 = '" & .Current("编号尾号") & "'"
        If .Current Is Nothing Then
            t2.Filter = "False"
            t3.Filter = "False"
            t4.Filter = "False"
        Else
            't2.DataTable.SQLL oad("Sel ect * From {明细账} where 编号尾号 = '" & .Current("编号尾号") & "'" )
            't3.DataTable.SQLL oad("Sel ect * From {明细账} where 收据编号 = '" & .Current("收据编号") & "'" )
            't4.DataTable.SQLL oad("Sel ect * From {明细账} where 项目名称 = '" & .Current("项目名称") & "'and 编号尾号 = '" & .Current("编号尾号") & "'")
            't2.DataTable.RemoveFor("编号尾号 <> '" & .Current("编号尾号") & "'" )
            't2.DataTable.Appendload("编号尾号 = '" & .Current("编号尾号") & "'" )
            't3.DataTable.RemoveFor("收据编号 <> '" & .Current("收据编号") & "'" )
            't3.DataTable.Appendload("收据编号 = '" & .Current("收据编号") & "'" )
            't4.DataTable.RemoveFor("项目名称 <> '" & .Current("项目名称") & "'and 编号尾号 = '" & .Current("编号尾号") & "'")
            't4.DataTable.Appendload("项目名称 = '" & .Current("项目名称") & "'and 编号尾号 = '" & .Current("编号尾号") & "'")
'
            t2.DataTable.load Filter = Filter
            t2.DataTable.load
            t3.DataTable.load Filter = "收据编号 = '" & .Current("收据编号") & "'"
            t3.DataTable.load
            t4.DataTable.load Filter = "项目名称 = '" & .Current("项目名称") & "'and 编号尾号 = '" & .Current("编号尾号") & "'"
            t4.DataTable.load

        End If
    End With
    'Forms("计算利息").ResumeRedraw
    'MessageBox.Show("耗时: " & (Date.Now - st).TotalSeconds & "秒")
End If

 

上述代码黄色和红色部分加载数据需要0.9秒至1.3秒,绿色代码加载速度稍快一点,但是会提示如下错误:

.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2017.10.26.1
错误所在事件:
详细错误信息:
列“_Identify”被约束为是唯一的。值“53577”已存在。

如何加载能够提高加载速度,绿色部分怎么修改?


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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2017/11/26 7:53:00 [只看该作者]

初始表不加载数据,打开窗口时把窗口中所附的datatable所有数据加载过来了,该怎么写代码

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


加好友 发短信
等级:九尾狐 帖子:2234 积分:15284 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2017/11/26 8:07:00 [只看该作者]

1、初始任何表都不加载数据,只是需要那张表的数据时,才把此表的数据全部加载进来。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/26 12:18:00 [只看该作者]

1、先remove在append

 

t2.DataTable.RemoveFor("编号尾号 = '" & .Current("编号尾号") & "'" )
t2.DataTable.Appendload("编号尾号 = '" & .Current("编号尾号") & "'" )

 

2、AfterLoad事件,设置loadfilter重新load不就好了

 

3、何为之需要?你要在需要的地方,加上loadfilter和load的代码才行


 回到顶部