以文本方式查看主题 - 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=118864) |
-- 作者:czquickly -- 发布时间:2018/5/12 14:02:00 -- 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据 想实现“项目进度”中“责任人”变更后,把该项目编号所有的责任人信息更新到“项目信息”中“自动组成员”。不加红色代码,运行正常。假如甲、乙都打开表后,A项目里有3个责任人,甲先添加了个新责任人,那么甲界面里的“自动组成员”里变成4个人;后来乙又添加了个新责任人,在乙界面里“自动组成员”还是4个人,甲加进去的责任人就被覆盖掉了。加了红色代码后,整个运行就出错“此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据”。 If e.DataCol.Name = "责任人" Then DataTables("项目进度").Save() DataTables("项目进度").RemoveFor("项目编号 = \'" & e.DataRow("项目编号") & "\'") DataTables("项目进度").AppendLoad("项目编号 = \'" & Tables("项目信息").Current("项目编号") & "\'",True) Dim dr As DataRow Dim st As String dr = DataTables("项目信息").Find("[项目编号] = \'" & Tables("项目信息").Current("项目编号") & "\'") If dr IsNot Nothing dr("自动组成员") = st & DataTables("项目进度").GetComboListString("责任人","项目编号 = \'" & e.DataRow("项目编号") & "\'", "_Identify").Replace("|",",") End If End If DataTables("项目信息").Save() 这代码应该如何修改?能够在变更的时候,先加载未显示数据,在汇总。除了OpenQQ即时高效同步数据外,还有其它办法不?OpenQQ一点不会
|
-- 作者:czquickly -- 发布时间:2018/5/12 15:20:00 -- If e.DataCol.Name = "责任人" Then DataTables("项目进度").Save() DataTables("项目进度").RemoveFor("项目编号 = \'" & e.DataRow("项目编号") & "\'") DataTables("项目进度").AppendLoad("项目编号 = \'" & Tables("项目信息").Current("项目编号") & "\'",True) Dim dr As DataRow Dim st As String dr = DataTables("项目信息").Find("[项目编号] = \'" & Tables("项目信息").Current("项目编号") & "\'") If dr IsNot Nothing dr("自动组成员") = st & DataTables("项目进度").GetComboListString("责任人","项目编号 = \'" & Tables("项目信息").Current("项目编号") & "\'", "_Identify").Replace("|",",") End If End If DataTables("项目信息").Save() 修改后问题解决,应该是清除数据,再加载就没有对应的e.DataRow("项目编号")了,要依据关联表上的项目编号来汇总
|
-- 作者:有点蓝 -- 发布时间:2018/5/12 15:20:00 -- 同一行的并发是无法控制的,必须使用独占式编辑:http://www.foxtable.com/webhelp/scr/3007.htm |