Foxtable(狐表)用户栏目专家坐堂 → [求助]不知何原因窗口中的副本table选择不同的行时出错


  共有2147人关注过本帖树形打印复制链接

主题:[求助]不知何原因窗口中的副本table选择不同的行时出错

帅哥哟,离线,有人找我吗?
huangfanzi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
[求助]不知何原因窗口中的副本table选择不同的行时出错  发帖心情 Post By:2015/9/11 12:08:00 [只看该作者]

为了排查问题,已经把表的换行事件删除了

图片点击可在新窗口打开查看此主题相关图片如下:gif.gif
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/11 12:30:00 [只看该作者]

直接打开窗口,然后测试是否正常?


 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2015/9/11 12:34:00 [只看该作者]

不正常,一样的问题。这个问题应该不是出在表事件上,哪会出在哪呢?
[此贴子已经被作者于2015/9/11 12:34:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
huangfanzi
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1105 积分:8967 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/11 15:01:00 [只看该作者]

1、加入msgbox、output.show调试;

 

http://www.foxtable.com/help/topics/1485.htm

 

 

2、不会做,就做例子发上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/9/11 15:02:00 [只看该作者]

一般是这个代码有问题,肯定不会存在副本表那样的Table啊

 

cmd1.CommandText = "S elect 编辑者 From {" & e.Table.Name & "} Where [_Identify] = " & r.DataRow("_Identify")


 回到顶部