以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]不知何原因窗口中的副本table选择不同的行时出错 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=74457) |
-- 作者:huangfanzi -- 发布时间:2015/9/11 12:08:00 -- [求助]不知何原因窗口中的副本table选择不同的行时出错 为了排查问题,已经把表的换行事件删除了 |
-- 作者:大红袍 -- 发布时间:2015/9/11 12:30:00 -- 直接打开窗口,然后测试是否正常? |
-- 作者:huangfanzi -- 发布时间:2015/9/11 12:34:00 -- 不正常,一样的问题。这个问题应该不是出在表事件上,哪会出在哪呢? [此贴子已经被作者于2015/9/11 12:34:26编辑过]
|
-- 作者:huangfanzi -- 发布时间:2015/9/11 12:53:00 -- 老师,找到问题出在哪,但不知如何修正。 项目全局表事件 BeforeSelChange \'--------改良独占式编辑 If e.Table.DataTable.DataCols.Contains("编辑者") AndAlso e.Table.IsRelation =False Then If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行 If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行 Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行 Dim i As Integer = 0 For Each c As Col In e.Table.Cols If r.DataRow.OriginalValue(c.name) <> r(c.name) AndAlso c.name<>"编辑者" AndAlso c.name<>"Log" Then \'不检查编辑者列和Log列 i = i+1 End If Next If i = 0 Then r.reject \'恢复行状态 Dim cmd1 As New SQLCommand cmd1.C cmd1.CommandText = "S elect 编辑者 From {" & e.Table.Name & "} Where [_Identify] = " & r.DataRow("_Identify") Dim nm As String = cmd1.ExecuteScalar If nm = _UserName Then If r.DataRow.RowState = DataRowState.Added Then \'如果是新增行 r.DataRow("编辑者") = Nothing Else Dim cmd As New SQLCommand cmd.C cmd.CommandText = "U pdate {" & e.Table.Name & "} Set 编辑者 = Null Where [_Identify] = " & r.DataRow("_Identify") If cmd.ExecuteNonQuery = 1 Then r.DataRow("编辑者") = Nothing End If End If End If End If End If End If End If |
-- 作者:大红袍 -- 发布时间:2015/9/11 15:01:00 -- 1、加入msgbox、output.show调试;
http://www.foxtable.com/help/topics/1485.htm
2、不会做,就做例子发上来测试。 |
-- 作者:大红袍 -- 发布时间:2015/9/11 15:02:00 -- 一般是这个代码有问题,肯定不会存在副本表那样的Table啊
cmd1.CommandText = "S elect 编辑者 From {" & e.Table.Name & "} Where [_Identify] = " & r.DataRow("_Identify") |