Foxtable(狐表)用户栏目专家坐堂 → 给定关键字不在字典中


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

主题:给定关键字不在字典中

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
给定关键字不在字典中  发帖心情 Post By:2021/7/6 11:15:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.5.29.1
错误所在事件:项目,AfterOpenProject
详细错误信息:
给定关键字不在字典中。

AfterOpenProject代码如下:


Forms("Main").open
Applicati
For Each t As Table In Tables
    t.Font=New Font("宋体",11,FontStyle.Regular)
Next
'------------------------------------------------------------------------------
If GetConfigValue("注册状态" & ComputerId,False) = False Then  '若是非注册状态
    Forms("注册窗口").open
End If
'------------------------------------------------------------------------------


Dim drs As New List(of DataRow)
With DataTables("库存明细表")
    For Each nm As String In .GetValues("产品ID", "产品ID is not null") '找出每个产品的第一行数据, 添加到集合drs中
        drs.Add(.Find("产品ID = '" & nm & "'", "[_SortKey]"))
    Next
    For Each r As DataRow In drs
        .DataCols("入库数量").RaiseDataColChanged(r) '重置每个产品的第一行
    Next
End With


'授权
If user.Type = UserTypeEnum.User Then
    Tables("授权表").Visible = False
End If
For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & user.name & "'")
    If dr.Isnull ("列名") Then
        Tables(dr("表名")).Visible = Not dr("不可见")
        Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
    Else
        Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
        Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
    End If
Next

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


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/6 11:24:00 [只看该作者]

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

dim dr1 as datarow
    For Each nm As String In .GetValues("产品ID", "产品ID is not null") '找出每个产品的第一行数据, 添加到集合drs中
dr1 = .Find("产品ID = '" & nm & "'", "[_SortKey]")
if dr1 isnot nothing
        drs.Add(dr1)
end if
    Next

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/6 11:58:00 [只看该作者]

4台电脑,其他3台安装WIN10没有此提示,只有一台电脑安装WIN7的有这个提示

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


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

老是纠结那台电脑没有问题,之前没有问题,运行 10年没有问题,没有任何意义。有问题就查错

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

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/7 9:43:00 [只看该作者]

小白,不太会
是在命令窗口
For Each t As Table In Tables
    t.Font=New Font("宋体",11,FontStyle.Regular)
Next
MessageBox.Show()
然后执行,看跳出的对话框吗?

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


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/7 9:53:00 [只看该作者]

等级都七尾狐了,发帖1735,基本的调试用法都还不会用?!

在1楼代码每一行后面加上调试代码,看执行到哪一个提示框后出错

Forms("Main").open
msgbox(1)
Applicati
For Each t As Table In Tables
    t.Font=New Font("宋体",11,FontStyle.Regular)
Next
msgbox(2)
'------------------------------------------------------------------------------
If GetConfigValue("注册状态" & ComputerId,False) = False Then  '若是非注册状态
    Forms("注册窗口").open
End If
msgbox(3)
'------------------------------------------------------------------------------


Dim drs As New List(of DataRow)
With DataTables("库存明细表")
msgbox(4)
……

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/7 9:59:00 [只看该作者]

Forms("Main").open
msgbox(1)
Applicati
For Each t As Table In Tables
    t.Font=New Font("宋体",11,FontStyle.Regular)
Next
msgbox(2)

'------------------------------------------------------------------------------
If GetConfigValue("注册状态" & ComputerId,False) = False Then  '若是非注册状态
    Forms("注册窗口").open
End If
msgbox(3)
'------------------------------------------------------------------------------

Dim drs As New List(of DataRow)
With DataTables("库存明细表")
    For Each nm As String In .GetValues("产品ID", "产品ID is not null") '找出每个产品的第一行数据, 添加到集合drs中
        drs.Add(.Find("产品ID = '" & nm & "'", "[_SortKey]"))
    Next
    For Each r As DataRow In drs
        .DataCols("入库数量").RaiseDataColChanged(r) '重置每个产品的第一行
    Next
End With
msgbox(4)
DataTables("图纸进度表").DataCols("下图日期").RaiseDataColChanged()
msgbox(5)
DataTables("图纸进度表").DataCols("设计完成日期").RaiseDataColChanged()
msgbox(6)
DataTables("图纸进度表").DataCols("确认期1").RaiseDataColChanged()
msgbox(7)


If user.Type = UserTypeEnum.User Then
    Tables("授权表").Visible = False
End If
For Each dr As DataRow In DataTables("授权表").Select("用户名 = '" & user.name & "'")
    If dr.Isnull ("列名") Then
        Tables(dr("表名")).Visible = Not dr("不可见")
        Tables(dr("表名")).AllowEdit = Not dr("不可编辑")
    Else
        Tables(dr("表名")).Cols(dr("列名")).Visible = Not dr("不可见")
        Tables(dr("表名")).Cols(dr("列名")).AllowEdit = Not dr("不可编辑")
    End If
Next
msgbox(8)

复制到命令窗口,点击执行,返回的都是数字1,2,3,4,5,6,7,8

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


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/7 10:03:00 [只看该作者]

AfterOpenProject事件里调试

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


加好友 发短信
等级:八尾狐 帖子:1837 积分:12984 威望:0 精华:0 注册:2013/6/10 9:23:00
  发帖心情 Post By:2021/7/7 10:05:00 [只看该作者]

复制到AfterOpenProject事件里,点击确定,返回的都是数字1,2,3,4,5,6,7,8

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


加好友 发短信
等级:超级版主 帖子:107035 积分:544406 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/7 10:16:00 [只看该作者]

中间没有提示没有出错?

 回到顶部
总数 23 1 2 3 下一页