Foxtable(狐表)用户栏目专家坐堂 → 窗口表点击报错


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

主题:窗口表点击报错

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


加好友 发短信
等级:狐精 帖子:3206 积分:21316 威望:0 精华:0 注册:2016/3/28 16:57:00
窗口表点击报错  发帖心情 Post By:2019/12/23 11:49:00 [只看该作者]

老师,有个窗口表,当窗口表为空,鼠标进入单击报错什么问题?我也判断了表为空。

第一个截图是不为空的时候,没问题。第二个截图是为空的时候鼠标单击报错,但是我代码都是写到双击事件的啊


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

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

[此贴子已经被作者于2019/12/23 11:50:37编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/23 12:15:00 [只看该作者]

代码?代码?代码?

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


加好友 发短信
等级:狐精 帖子:3206 积分:21316 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/23 17:19:00 [只看该作者]

双击代码

If e.Col.name = "待办事项"  Then
    Dim r As Row = Tables("主窗口_Table2").Current
    Dim dd As String = r("ID")
    Dim nm As String = r("表名")
    Dim ck As String = r("窗口名")
    Dim yq As String = r("页签名")
    If DataTables.Contains(nm) = False
        DataTables.Load(nm)
    End If
    Functions.Execute("增加页签",ck,yq)
    DataTables(nm).Save()  '接下来要根据主键查找,必须先保存,因为只有保存后新增行的主键才是有效值.
    Dim dr As DataRow = DataTables(nm).Find("[ID] = '" & dd & "'")
    If dr Is Nothing Then
        DataTables(nm).AppendLoad("[ID] = '" & dd & "'")
        dr =  DataTables(nm).Find("[ID] = '" & dd & "'")
    Else
        dr.Load()
    End If
    If dr IsNot Nothing Then
        Dim wz As Integer = Tables(nm).FindRow("[ID] = '" & dd & "'")
        If wz < 0 Then  '如果因为筛选导致此合同签订类不可见
            Tables(nm).Filter = ""
            wz =Tables(nm).FindRow(dr)
        End If
        If wz >= 0 Then
            Tables(nm).Position = wz
            Tables(nm).TopVisibleRow = wz   '定位行后设置为第一个可见行位置,http://www.foxtable.com/webhelp/scr/2358.htm
        End  If
    End  If
End  If


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


加好友 发短信
等级:狐精 帖子:3206 积分:21316 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/23 17:19:00 [只看该作者]

单击代码:

'判断当前表为空
If Tables("主窗口_Table2").Rows.Count = 0 Then
    Return
    e.Cancel= True
End If


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


加好友 发短信
等级:狐精 帖子:3206 积分:21316 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/23 17:21:00 [只看该作者]

窗口加载后:

'待办事项
Dim cmd7 As  New  SQLCommand
Dim dt7 As  DataTable
cmd7.C onnectionName = 
cmd7.CommandText = "S  elect [_Identify],[表名],[窗口名],[页签名],[审批状态],[待审批人],[待办事项],[ID],[所属机构],[查看]  From {待办事项}"
dt7 = cmd7.ExecuteReader()
With Tables("主窗口_Table2")
    .DataSource = dt7
    .Cols.Remove("表名","窗口名","页签名","审批状态","待审批人","ID","所属机构","查看")
    .DefaultRowHeight  = 25 '所有行高
    .Cols("待办事项").TextAlign = TextAlignEnum.left
    .grid.ScrollBars = 0 '禁止滚动条,0 无 1 横向 2 纵向 3 横向纵向
    .DataTable.SysStyles("EmptyArea").BackColor = Color.White '空白区背景色
    .DataTable.SysStyles("Alternate").BackColor = Color.Azure '交替行颜色
    .grid.Styles("EmptyArea").Border.Color = Color.White  '表格边框颜色
    .ExtendLastCol = True  '自动列宽
    .grid.rows(0).height = 0  '隐藏表头

    For Each r As  Row In Tables("主窗口_Table2").Rows
        If r("审批状态") <> "待分公司负责人审批" Then
            .Filter = "[待审批人] = '" & _UserPost & "'"
            'e.Form.Controls("待办事项").Text = "待办事项:(" & dt7.Compute("count([待审批人])","待审批人 = '" & _UserPost & "'") & ")条"
            e.Form.Controls("待办事项").Text = dt7.Compute("count([待审批人])","待审批人 = '" & _UserPost & "'")
        Else
            .Filter = "[所属机构] = '" & _UserGroup & "'"
            'e.Form.Controls("待办事项").Text = "待办事项:(" & dt7.Compute("count([所属机构])","所属机构 = '" & _UserGroup & "'") & ")条"
            e.Form.Controls("待办事项").Text = dt7.Compute("count([所属机构])","所属机构 = '" & _UserGroup & "'")
        End If
    Next
    .Select(-1,-1) '移除焦点行
End With


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/23 17:24:00 [只看该作者]

调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码有问题

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


加好友 发短信
等级:狐精 帖子:3206 积分:21316 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/24 13:08:00 [只看该作者]

老师,我发现是应为移除了焦点行的问题,只要移除了焦点行,在Table控件内空白处一单击就报错,还死循环。这个怎么处理.

窗口afterload事件

'待办事项
Dim cmd7 As  New  SQLCommand
Dim dt7 As  DataTable
cmd7.C onnectionName = 
cmd7.CommandText = "S  elect [_Identify],[表名],[窗口名],[页签名],[审批状态],[待审批人],[待办事项],[ID],[所属机构],[查看]  From {待办事项}"
dt7 = cmd7.ExecuteReader()
With Tables("主窗口_Table2")
    .DataSource = dt7
    .Cols.Remove("表名","窗口名","页签名","审批状态","待审批人","ID","所属机构","查看")
    .DefaultRowHeight  = 25 '所有行高
    .Cols("待办事项").TextAlign = TextAlignEnum.left
    .grid.ScrollBars = 0 '禁止滚动条,0 无 1 横向 2 纵向 3 横向纵向
    .DataTable.SysStyles("EmptyArea").BackColor = Color.White '空白区背景色
    .DataTable.SysStyles("Alternate").BackColor = Color.Azure '交替行颜色
    .grid.Styles("EmptyArea").Border.Color = Color.White  '表格边框颜色
    .ExtendLastCol = True  '自动列宽
    .grid.rows(0).height = 0  '隐藏表头

    For Each r As  Row In Tables("主窗口_Table2").Rows
        If r("审批状态") <> "待分公司负责人审批" Then
            .Filter = "[待审批人] = '" & _UserPost & "'"
            'e.Form.Controls("待办事项").Text = "待办事项:(" & dt7.Compute("count([待审批人])","待审批人 = '" & _UserPost & "'") & ")条"
            e.Form.Controls("待办事项").Text = dt7.Compute("count([待审批人])","待审批人 = '" & _UserPost & "'")
        Else
            .Filter = "[所属机构] = '" & _UserGroup & "'"
            'e.Form.Controls("待办事项").Text = "待办事项:(" & dt7.Compute("count([所属机构])","所属机构 = '" & _UserGroup & "'") & ")条"
            e.Form.Controls("待办事项").Text = dt7.Compute("count([所属机构])","所属机构 = '" & _UserGroup & "'")
        End If
    Next
    .Select(-1,-1) '移除焦点行
End With

[此贴子已经被作者于2019/12/24 13:11:15编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/24 13:40:00 [只看该作者]

那就只能去掉这个代码

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


加好友 发短信
等级:狐精 帖子:3206 积分:21316 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/24 14:45:00 [只看该作者]

好吧,老师,Table禁止了滚动条,用计时器刷新时,滚动条有闪烁怎么弄啊?


 回到顶部
帅哥,在线噢!
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110647 积分:563143 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/24 14:48:00 [只看该作者]

如果StopRedraw没有效果就没有办法了

 回到顶部
总数 13 1 2 下一页