以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- beginedit报错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=133380) |
||||
-- 作者:giulioli -- 发布时间:2019/4/13 9:43:00 -- beginedit报错 老师,我咨询一个问题 我写了段代码在DATACOLCHANGED里面,即任何列有输入,就将位置移到表的最后并打开一个窗口(类似于传统输入的窗口)。 在该窗口我设置了一个保存按钮和一个取消按钮,保存就是将当前行保存并关闭窗口,取消按钮的就是将当前的行删除。 这样我输入的时候就是新增行并给任意一列随便赋个值,这时自动会打开窗口,修改后保存,如果取消则删除该行。 但是发现按取消按钮后会报错 .NET Framework 版本:2.0.50727.8937 Foxtable 版本:2018.3.9.1 错误所在事件:窗口,mainmenu,Button1,Click 详细错误信息: 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据 这是什么意思?报错的按钮BUTTON1是主菜单负责增加行的那个按钮,就是新增一行并赋值的那个按钮。
[此贴子已经被作者于2019/4/13 9:44:17编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/13 9:47:00 -- 没看懂,上传实例看看。 |
||||
-- 作者:giulioli -- 发布时间:2019/4/13 10:12:00 --
帮忙看看,我这个取消按钮有什么问题
[此贴子已经被作者于2019/4/13 10:14:20编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/13 10:50:00 -- 单独一个窗口看不出什么问题,请上传完整实例 |
||||
-- 作者:giulioli -- 发布时间:2019/4/13 11:13:00 -- 窗口MAINMENU
中 导入订单 按钮 增加新客户 取消 报错 [此贴子已经被作者于2019/4/13 11:14:20编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2019/4/13 11:37:00 -- 这样的用法在逻辑上是有问题的: \'添加新客户 If Result = DialogResult.Yes Then Dim cname As String Dim newctarget As DataRow Dim newcsource As DataRow For Each ccode As String In ccodes cname = DataTables("temperorder").getcomboliststring("clientname","[client] = \'" & ccode & "\'") newcsource = DataTables("temperorder").Find("[client] = \'"& ccode &"\'") newctarget = DataTables("CLIENT").addnew() newctarget("name") = newcsource("clientname")
上面赋值后会触发datacolchanged,弹出编辑窗口,由于是模式窗口,下面的代码被阻塞,窗口点击取消,这行被删除,关闭窗口后会继续执行下面的代码,下面代码还给这个被删除的行赋值,自然就出错了。 newctarget("code") = newcsource("client") Next Else 个人建议应该在窗口里添加一个客户表的副本,然后新的客户全部在副本里新增,这个过程中不要弹出编辑窗口。导入完毕后,点击副本的行再弹出编辑窗口。 |
||||
-- 作者:giulioli -- 发布时间:2019/4/13 12:12:00 -- 明白了,我把打开窗口的操作用代码来做,不用表事件自动打开吧 |