以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 行刷新数据速度很慢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127238) |
-- 作者:ZJZK2018 -- 发布时间:2018/11/9 3:29:00 -- 行刷新数据速度很慢? 为什么执行下面代码,速度很慢,有没有其他办法? For Each c As Object In e.Form.Controls If Typeof c Is WinForm.Table Then For Each dr As DataRow In c.Table.DataTable.DataRows dr.Load() Next End If Next |
-- 作者:有点甜 -- 发布时间:2018/11/9 9:00:00 -- For Each c As Object In e.Form.Controls If Typeof c Is WinForm.Table Then c.Table.DataTable.load End If Next |
-- 作者:ZJZK2018 -- 发布时间:2018/11/9 16:09:00 -- 为什么我加了红色代码,一执行变没有数据 需求是:如果Tables("项目信息")中“选中”项为true,则加载与“项目编号”相同的数据,如查没有“选中”的行,则不加载数据 e.Form.StopRedraw() \'停止绘制窗口 For Each c As Object In e.Form.Controls If Typeof c Is WinForm.Table Then c.Table.DataTable.StopRedraw() \'停止绘制表 For Each dr As Row In Tables("项目信息").Rows If dr("选中") = True Then c.Table.DataTable.LoadFilter = "项目编号 = \'" & dr("项目编号") & "\'" c.Table.DataTable.Load() Else c.Table.DataTable.LoadFilter = "[_Identify] Is Null" c.Table.DataTable.Load() End If If c.Table.Rows.Count > 0 Then c.Table.Select(0,0) \'光标在第一行第一列位置 End If Next c.Table.DataTable.ResumeRedraw() \'恢复绘制表 End If Next e.Form.ResumeRedraw() \'恢复绘制窗口 |
-- 作者:有点甜 -- 发布时间:2018/11/9 16:50:00 -- 参考这里写加载代码
http://www.foxtable.com/webhelp/scr/2228.htm
|
-- 作者:ZJZK2018 -- 发布时间:2018/11/9 22:53:00 -- 老师为什么下面代码测试没问题,但筛选不出数据来,写在AfterLoad事件中 Dim tb1 As Table = Tables(e.Form.Name & "_Table1") Dim lst As New List(Of String) lst = Tables("项目信息").DataTable.GetValues("项目编号","选中 = 1") If lst.Count = 0 Then tb1.DataTable.LoadFilter = "项目编号 is Null" Else Dim ids As String For Each dr As DataRow In tb1.DataTable.DataRows ids = ids & ",\'" & dr("项目编号") & "\'" Next ids = ids.Trim(",") tb1.DataTable.LoadFilter = "项目编号 in (" & ids & ")" End If tb1.DataTable.Load() [此贴子已经被作者于2018/11/9 23:01:04编辑过]
|
-- 作者:有点蓝 -- 发布时间:2018/11/9 23:02:00 -- Dim tb1 As Table = Tables(e.Form.Name & "_Table1") Dim lst As New List(Of String) lst = Tables("项目信息").DataTable.GetValues("项目编号","选中 = 1") If lst.Count = 0 Then tb1.DataTable.LoadFilter = "项目编号 is Null" Else tb1.DataTable.LoadFilter = "项目编号 in (\'" & String.Join("\',\'",lst.ToArray) & "\')" End If msgbox(tb1.DataTable.LoadFilter) tb1.DataTable.Load()
|