以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]删除空行,不影响新增加的行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=91495) |
-- 作者:zswushi -- 发布时间:2016/10/12 10:23:00 -- [求助]删除空行,不影响新增加的行 我有增加按钮代码 ,我想增加后,未保存的空行,换行后可以自动删除 currentchanged 事件代码; Dim ct As Table = CurrentTable Dim name As String For Each cl As Col In ct.Cols If cl.name.Endswith("名称") Then name = cl.name Exit For End If Next For Each r As Row In ct.Rows If r.Isnull(name)=False Then r.save() Forms("基本设置").Controls("增 加").Enabled = True Forms("基本设置").Controls("修 改").enabled = True Forms("基本设置").Controls("删 除").enabled = True Forms("基本设置").Controls("保 存").enabled = False Forms("基本设置").Controls("取 消").enabled = True Forms("基本设置").Controls("导 出").enabled = True Forms("基本设置").Controls("退 出").enabled = True End If Next 谢谢 |
-- 作者:zswushi -- 发布时间:2016/10/12 10:28:00 -- 以下是增加按钮的代码 : Dim ct As Table = CurrentTable Dim rz As Integer =ct.Rows.count-1 Dim r As Row =Ct.Rows(rz) Dim dex As Integer Dim name As String For Each cl As Col In ct.Cols If cl.name.Endswith("名称") Then dex =cl.Index name = cl.name Exit For End If Next If r IsNot Nothing Then If r.Isnull(name)=True Then Ct.Select(rz,dex,rz,dex) Ct.startediting e.Form.Controls("增 加").Enabled = True e.Form.Controls("修 改").enabled = False e.Form.Controls("删 除").enabled = False e.Form.Controls("保 存").enabled = True e.Form.Controls("取 消").enabled = True e.Form.Controls("导 出").enabled = False e.Form.Controls("退 出").enabled = False Return Else Dim hde As Integer=Ct.addnew().Index Ct.Select(hde,dex,hde,dex) Ct.startediting e.Form.Controls("增 加").Enabled = True e.Form.Controls("修 改").enabled = False e.Form.Controls("删 除").enabled = False e.Form.Controls("保 存").enabled = True e.Form.Controls("取 消").enabled = True e.Form.Controls("导 出").enabled = False e.Form.Controls("退 出").enabled = False End If End If |
-- 作者:有点蓝 -- 发布时间:2016/10/12 10:58:00 -- currentchanged 事件代码; Dim ct As Table = e.Table Dim name As String For Each cl As Col In ct.Cols If cl.name.Endswith("名称") Then name = cl.name Exit For End If Next ct.DataTable.DeleteFor(name & " is null") ct.DataTable.save Forms("基本设置").Controls("增 加").Enabled = True Forms("基本设置").Controls("修 改").enabled = True Forms("基本设置").Controls("删 除").enabled = True Forms("基本设置").Controls("保 存").enabled = False Forms("基本设置").Controls("取 消").enabled = True Forms("基本设置").Controls("导 出").enabled = True Forms("基本设置").Controls("退 出").enabled = True |
-- 作者:zswushi -- 发布时间:2016/10/12 11:48:00 -- 若填写 更改后的currentchanged 事件代码 ,之前增加按钮的代码,单击增加按钮时,就不能增加行啦,谢谢,请赐教 |
-- 作者:有点蓝 -- 发布时间:2016/10/12 12:05:00 -- 试试这2句代码前后加上 SystemReady = False Dim hde As Integer=Ct.addnew().Index Ct.Select(hde,dex,hde,dex) SystemReady = True |
-- 作者:zswushi -- 发布时间:2016/10/12 14:28:00 -- 可是可以啦,但 我表里之前的自动增加行,也就是最后一行,最后一个单元格,回车时,能够增加行,不见啦,还有,代码出现 下述的提示 Syntax error: Missing operand before \'Is\' operator. .NET Framework 版本:2.0.50727.3053 Foxtable 版本:2016.7.29.1 错误所在事件:全局表事件,CurrentChanged 详细错误信息: Syntax error: Missing operand before \'Is\' operator. 哎,这个代码不好编,谢谢 |
-- 作者:zswushi -- 发布时间:2016/10/12 14:29:00 -- 是不是与我 放在全局表事件里的位置有关呢?? |
-- 作者:有点蓝 -- 发布时间:2016/10/12 15:25:00 -- currentchanged 事件代码; Dim ct As Table = e.Table Dim name As String For Each cl As Col In ct.Cols If cl.name.Endswith("名称") Then name = cl.name Exit For End If Next If name > 0 Then ct.DataTable.DeleteFor(name & " is null") ct.DataTable.save End If Forms("基本设置").Controls("增 加").Enabled = True Forms("基本设置").Controls("修 改").enabled = True Forms("基本设置").Controls("删 除").enabled = True Forms("基本设置").Controls("保 存").enabled = False Forms("基本设置").Controls("取 消").enabled = True Forms("基本设置").Controls("导 出").enabled = True Forms("基本设置").Controls("退 出").enabled = True
|
-- 作者:zswushi -- 发布时间:2016/10/13 9:47:00 -- 代码运行后,还是出问题,与 全局事件有关系,我换了一种思路来开发,好像解决了,有不懂的再向你们请教,谢谢 |