Foxtable(狐表)用户栏目专家坐堂 → 报错请教:值不能为 null,参数名: key


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

主题:报错请教:值不能为 null,参数名: key

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


加好友 发短信
等级:童狐 帖子:299 积分:2563 威望:0 精华:0 注册:2018/2/3 10:48:00
  发帖心情 Post By:2021/11/15 21:25:00 [只看该作者]

在11 之后 12之前报错



If DataTables.Contains("员工统计") = False
    DataTables.Load("员工统计")
End If
msgbox(DataTables.Contains("员工统计")) 
msgbox(DataTables("员工统计").datarows.count) '能不能弹出,弹出什么内容?
DataTables("员工统计").datarows.clear  '删除全部行
msgbox(DataTables("员工统计").datarows.count) 
Dim f As New Filler
f.SourceTable = DataTables("员工档案") '指定数据来源
f.SourceCols = "员工编号" '指定数据来源列
f.DataTable = DataTables("员工统计") '指定数据接收表
f.DataCols = "员工编号" '指定数据接收列
f.Filter = "[员工状态]='在职'or [员工状态]='试用期'" '指定填充条件
msgbox(10) 
f.Append = False '在原有行中填充,行不够再增加新行
msgbox(11) 
f.Fill() '填充数据
msgbox(12) 
Dim t As Table = Tables("员工统计")
t.DefaultRowHeight  = 28 '所有行高
t.SysStyles("Alternate").BackColor = Color.FromARGB(224,224,224)
t.Grid.Styles("Normal").Border.Color = Color.SkyBlue
Forms("员工统计窗口").open
Tables("员工统计").OpenView("员工统计")
MainTable = Tables("员工统计")

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


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

"员工档案"表有没有加载?"员工统计"表有没有表事件代码?

这样有没有问题?
f.Append = False '在原有行中填充,行不够再增加新行
msgbox(11) 
systemready = false
f.Fill() '填充数据
systemready = true
msgbox(12) 
Dim t As Table = Tables("员工统计")

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


加好友 发短信
等级:童狐 帖子:299 积分:2563 威望:0 精华:0 注册:2018/2/3 10:48:00
  发帖心情 Post By:2021/11/16 9:50:00 [只看该作者]

上面代码这样是没有问题的,员工编号顺利加载。

另:
员工档案加载了,最前面加上
If DataTables.Contains("员工档案") = False
    DataTables.Load("员工档案")
End If
也是一样报错。
[此贴子已经被作者于2021/11/16 9:51:34编辑过]

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


加好友 发短信
等级:童狐 帖子:299 积分:2563 威望:0 精华:0 注册:2018/2/3 10:48:00
  发帖心情 Post By:2021/11/16 9:55:00 [只看该作者]

员工统计表只有datacolchanged事件
If e.DataCol.Name = "员工编号" Then '发生变化的是人员编号吗?
    Dim dr As DataRow
    dr = DataTables("员工档案").Find("员工编号 = '" & e.DataRow("员工编号") & "'" )
    If dr IsNot Nothing '如果找到, 则设置各列内容
        e.DataRow("姓名")= dr("姓名")
    End If
End If
If e.DataCol.Name = "员工编号" Then '发生变化的是产品列.
    Dim Today As Date = Date.Today
    Dim year As Integer = Today.Year
    '则累计订单表中同名产品总的销售量,然后赋值给变动行的数量列
    e.DataRow("借款金额") = DataTables("员工借款").Compute("Sum(借款金额)","[员工编号] = '" & e.NewValue & "' And [借款年度] = " &  year & "")
    e.DataRow("报销金额") = DataTables("报销垫款").Compute("Sum(报销金额)","[员工编号] = '" & e.NewValue & "' And [报销年度] = " &  year & "")
    e.DataRow("借款余额") = e.DataRow("借款金额") - e.DataRow("报销金额")
    e.DataRow("销售线索") = DataTables("项目信息").Compute("Sum(线索折算量)","[销售负责人] = '" & e.DataRow("姓名") & "' And [线索年度] = " &  year & "")
    e.DataRow("项目规模") = DataTables("项目信息").Compute("Sum(项目规模)","[销售负责人] = '" & e.DataRow("姓名") & "' And [项目年度] = " &  year & "")
    e.DataRow("项目数量") = DataTables("项目信息").Compute("Count(项目编号)","[销售负责人] = '" & e.DataRow("姓名") & "' And [项目年度] = " &  year & "")
    e.DataRow("销售漏斗") = DataTables("项目信息").Compute("Sum(名义销售漏斗值)","[销售负责人] = '" & e.DataRow("姓名") & "' And [项目年度] = " &  year & "")
    e.DataRow("A级项目规模") = DataTables("项目信息").Compute("Sum(项目规模)","[销售负责人] = '" & e.DataRow("姓名") & "' And [项目年度] = " &  year & " And [项目等级] = 'A级'")
    e.DataRow("A级项目数量") = DataTables("项目信息").Compute("Count(项目编号)","[销售负责人] = '" & e.DataRow("姓名") & "' And [项目年度] = " &  year & " And [项目等级] = 'A级'")
    e.DataRow("已签约额") = DataTables("合同台账").Compute("Sum(名义结算金额)","[销售负责人] = '" & e.DataRow("姓名") & "' And [合同年度] = " &  year & "")
    e.DataRow("已回款额") = DataTables("合同台账").Compute("Sum(已回款金额)","[销售负责人] = '" & e.DataRow("姓名") & "' And [合同年度] = " &  year & "")
    e.DataRow("应收金额") = DataTables("合同台账").Compute("Sum(欠款金额)","[销售负责人] = '" & e.DataRow("姓名") & "' And [合同年度] = " &  year & "")
    e.DataRow("已开fa piao额") = DataTables("合同台账").Compute("Sum(已开piao金额)","[销售负责人] = '" & e.DataRow("姓名") & "' And [合同年度] = " &  year & "")
End If

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


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

如果把员工统计表datacolchanged事件全部注释掉,测试有没有问题,如果没有问题,肯定是datacolchanged事件有问题导致的,调试看看是那一句代码出错

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


加好友 发短信
等级:童狐 帖子:299 积分:2563 威望:0 精华:0 注册:2018/2/3 10:48:00
  发帖心情 Post By:2021/11/16 10:19:00 [只看该作者]

我把员工统计表datacolchanged事件全部注释掉了,关掉项目重新打开,还是一样的报错。

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


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

做个例子发上来测试吧

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


加好友 发短信
等级:童狐 帖子:299 积分:2563 威望:0 精华:0 注册:2018/2/3 10:48:00
  发帖心情 Post By:2021/11/16 11:28:00 [只看该作者]

要做个实例不一定能重现这现象,之前用商业版一直正常,最近也没有改什么,只是商业版换成了开发版,会不会哪里有不同?

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


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

商业版项目文件和开发版项目文件不要放到同一个目录里使用。

关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。


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


加好友 发短信
等级:童狐 帖子:299 积分:2563 威望:0 精华:0 注册:2018/2/3 10:48:00
  发帖心情 Post By:2021/11/16 13:10:00 [只看该作者]

真晕了,删除bin目录然后重启项目一样报错,但开发者登录打开就一切正常,其他管理员或有管理员身份的账号登录一律报错。想搞个实例,搞到半路就放弃了,涉及到的数据太多了。


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

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