以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 委托导致测试表大红叉 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189553) |
-- 作者:puma -- 发布时间:2023/12/8 10:30:00 -- 委托导致测试表大红叉 Dim t0 As Threading.Thread t0=New Threading.Thread(Sub() Functions.AsyncExecute("测试")) Dim btnAuto As WinForm.Button = e.Form.Controls("btnAuto") Dim bt As WinForm.Button = e.Form.Controls("btnManualClear") If bt.text = "手动清除" Then btnAuto.Enabled=False gbclear=True bt.text = "停止" t0.Start() Else gbclear=False bt.text = "手动清除" t0.Abort End If btnAuto.Enabled=True Functions.AsyncExecute("测试") 部分代码 With CurrentTable \'Dim Positionrow As Integer = .Position \'Dim c As Col = .Cols(t.ColSel).name \'Dim Colname= c.Name If .Position >49 Then \'If Positionrow > 49 Then MessageBox.show("已到达最大行") Else \'Dim t As Table = Tables("测试表") \'用这个新增会导致主表定位到其他行 .Rows(.Position)(.Cols(.ColSel).name) = v3 .Position = .Position + 1 \'向下移动一行 \'End If End If End With |
-- 作者:有点蓝 -- 发布时间:2023/12/8 10:32:00 -- 不能在异步线程里使用Foxtable的表格,datatable,table都不能使用 |
-- 作者:puma -- 发布时间:2023/12/8 11:15:00 -- 我需要通过com口自动采集数据,通过窗口按钮采集到table表格里。 如果不用委托,窗口就假死了。应该通过么方式解决? t0=New Threading.Thread(Sub() Functions.AsyncExecute("测试")) |
-- 作者:有点蓝 -- 发布时间:2023/12/8 11:23:00 -- 使用SQLcommand直接把数据保存到后台数据库 |
-- 作者:puma -- 发布时间:2023/12/8 11:34:00 -- 读取到SQl后,在通过load读取到table表? 这个错误和委托有关系吗? 错误所在事件:全局表事件,CurrentChanged 详细错误信息: BindingSource 不能是自己的数据源。请不要将 DataSource 和 DataMember 属性设置为循环引用 BindingSource 的值。 CurrentChanged 事件 Dim r As Row = CurrentTable.Current If r Is Nothing Then Return End If |
-- 作者:有点蓝 -- 发布时间:2023/12/8 11:49:00 -- 异步线程里用到table绝对会出错 全局表事件,CurrentChanged都有什么代码?
|
-- 作者:puma -- 发布时间:2023/12/8 12:05:00 -- 直接用函数还会错误吗? t0=New Threading.Thread(Sub() Functions.Execute("测试")) 全局表事件,CurrentChanged Dim r As Row = CurrentTable.Current If r Is Nothing Then Return End If Dim pr As DataRow : Dim dr As DataRow Select Case CurrentTable.Name \'如果用 e.Table 代替 CurrentTable 会发生错误, 原因不明 Case "表A" dr = DataTables("设置").Find("表单名称 = \'表A\' And 字段名称 = \'字段名\'") If dr IsNot Nothing Then Try \'刚登陆系统, DataTables("表B").DataCols("字段名").FTPClient.RootDir = dr("值") Catch ex As Exception Return End Try End If End select |
-- 作者:有点蓝 -- 发布时间:2023/12/8 13:31:00 -- 只要是在线程里调用的,不管什么方式都会有问题。 |
-- 作者:puma -- 发布时间:2023/12/8 15:21:00 -- 我换了一种思路: 窗口调用线程, 线程调用窗口的按钮。 按钮里触发table的写入事件 |