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


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

主题:窗口表点击报错

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


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望: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编辑过]

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


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望: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
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望: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
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望: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


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


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望: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编辑过]

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


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/24 14:45:00 [显示全部帖子]

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


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


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/24 14:51:00 [显示全部帖子]

 用的:

 .grid.ScrollBars = 0 '禁止滚动条,0 无 1 横向 2 纵向 3 横向纵向

 

 StopRedraw  怎么用?


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


加好友 发短信
等级:狐精 帖子:3150 积分:20981 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/24 15:01:00 [显示全部帖子]

好像确实没办法,又是一硬伤。又没办法直接设置不显示滚动条。

 回到顶部