以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 增加行时报错! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157054) |
-- 作者:lzgt -- 发布时间:2020/9/29 18:39:00 -- 增加行时报错! 今天莫名的出现新增行时报错的情况! 找了很久都没找出原因,还请帮助! 报错信息如下:
.NET Framework 版本:4.0.30319.42000 Foxtable 版本:2020.5.29.8 错误所在事件: 详细错误信息: \'=\' 附近有语法错误。 代码如下: Case "明细新增" Dim tb1 As Table = Tables("tblckydcgrkmx") If e.Form.Controls("khbh").value IsNot Nothing Then tb1.AllowEdit = True tb1.AllowAddNew = True tb1.AddNew tb1.Select(tb1.RowSel,tb1.Cols("djlb").Index) Else Messagebox.show("需先确定客户名称","提示",MessageBoxButtons.OK,MessageBoxIcon.Information) End If tb1表的 增加行前事件 BeforeAddDataRow If e.DataTable.DataRows.Count > 0 Then \'如果不是一个空表 Dim dr As DataRow = e.DataTable.DataRows(e.DataTable.DataRows.Count - 1) \'获得最后一行 If dr.IsNULL("djlb") OrElse dr.IsNULL("xmbh2") Then MessageBox.show("请补全定单信息") e.Cancel = True End If End If 增加一行时执行DataRowAdding If Forms("frmcg04cgrkedit").Opened Then E.DataRow("gkph") = newnumber("管控批号") E.DataRow("yddh") = newnumber("异动编号") e.DataRow("djbh") = Forms("frmcg04cgrkedit").Controls("djbh").value e.DataRow("djrq1") = Date.Today e.DataRow("wldw1") = Forms("frmcg04cgrkedit").Controls("khbh").value e.DataRow("dwmc1") = Forms("frmcg04cgrkedit").Controls("DropBoxwlkh").value E.DataRow("sysbz") = "手动新增" End If 用MessageBox.Show 测式 报错应该在 BeforeAddDataRow 事件后,DataRowAdding事件前 (全局表中无相应代码),请教问题错误可能在那里。 |
-- 作者:有点蓝 -- 发布时间:2020/9/29 20:08:00 -- newnumber是什么东西? 其它地方看不出有什么问题
|
-- 作者:lzgt -- 发布时间:2020/9/30 7:59:00 -- 你好,我用用MessageBox.Show测式 报错应该在 BeforeAddDataRow事件后,DataRowAdding事件前发生的,报错时DataRowAdding还没有执行。 |
-- 作者:lzgt -- 发布时间:2020/9/30 8:19:00 -- 我还测试过,这两个事件代码全去掉,报错还是发生。不知新增行过程中还触发了什么事件? |
-- 作者:有点蓝 -- 发布时间:2020/9/30 8:37:00 -- 这个表还有其它事件吗?有没有表达式列?有没有设置列属性?列属性里有没有用到条件表达式? [此贴子已经被作者于2020/9/30 8:37:28编辑过]
|