以文本方式查看主题
- Foxtable(狐表) (http://foxtable.net/bbs/index.asp)
-- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2)
---- 临时表的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132204)
|
-- 作者:edisontsui
-- 发布时间:2019/3/16 15:39:00
-- 临时表的问题
"员工每月工资报告"是从数据表"日薪计算"之“数据统计”之“分组统计”功能产生出来的临时表。在"菜单,加上日薪工资,Click"里面有下面的代码:
If User.Group = "行政" Or User.name = "开发者" For Each r As Row In Tables("员工每月工资报告").rows Dim NY As String = r("年") & r("月") If NY > 201902 Then If r("成本中心") = "" Or r("姓名") = "" Then Else For Each dr As DataRow In DataTables("员工每月工资报告").DataRows If dr("年月") = NY And dr("姓名") = r("姓名") dr("计件工资") = r("计件工资") dr("计时工资") = r("计时工资") dr("误餐补贴") = r("餐补") dr("新人补贴") = r("新人补贴") Exit For End If Next End If End If Next End If
但是当我在“员工每月工资报告”里面执行上述代码后,出现如下警告:
不存在名称为“员工每月工资报告”的table. .NET Framework 版本:2.0.50727.8793 Foxtable 版本:2017.3.18.1 错误所在事件:菜单,加上日薪工资,Click 详细错误信息: 未将对象引用设置到对象的实例。
请问如何解决这个问题?谢谢。
|
-- 作者:有点蓝
-- 发布时间:2019/3/16 16:04:00
--
If NY > "201902" Then
|
-- 作者:edisontsui
-- 发布时间:2019/3/16 16:17:00
--
还是出现如下警告:不存在名称为“员工每月工资报告”的table. 未将对象引用设置到对象的实例。
|
-- 作者:有点蓝
-- 发布时间:2019/3/16 16:47:00
--
生成"员工每月工资报告"临时表的代码贴出来
|
-- 作者:edisontsui
-- 发布时间:2019/3/16 17:01:00
--
Dim g As New GroupTableBuilder("统计表2", DataTables("日薪计算")) g.Caption = "员工每月工资报告" g.Groups.AddDef("姓名") g.Groups.AddDef("成本中心") g.Groups.AddDef("生产日期", DateGroupEnum.Year, "年") g.Groups.AddDef("生产日期", "月") g.Totals.AddDef("计件工资") g.Totals.AddDef("计时工资") g.Totals.AddDef("餐补") g.Totals.AddDef("包工工资") g.Totals.AddDef("新人补贴") g.Totals.AddDef("工资合计") g.Decimals = 0 g.Build() MainTable = Tables("统计表2")
|
-- 作者:有点蓝
-- 发布时间:2019/3/16 17:25:00
--
"员工每月工资报告"是标题名,引用表要使用表名,不能使用标题名
For Each r As Row In Tables("统计表2").rows
或者
Dim g As New GroupTableBuilder("员工每月工资报告", DataTables("日薪计算")) …… MainTable = Tables("员工每月工资报告")
|
-- 作者:edisontsui
-- 发布时间:2019/4/11 13:56:00
--
此主题相关图片如下:图片1.jpg
If User.Group = "行政" Or User.name = "开发者" For Each r As Row In Tables("员工每月工资报告").rows Dim NY As String = r("年") & r("月") If NY.length = 5 NY = r("年") & "0" & r("月") Else NY = r("年") & r("月") End If If NY > "201902" Then If r("成本中心") = "" Or r("姓名") = "" Then Else For Each dr As DataRow In DataTables("员工每月工资报告").DataRows If dr("年月") = NY And dr("姓名") = r("姓名") dr("计件工资") = r("计件工资") dr("计时工资") = r("计时工资") dr("误餐补贴") = r("餐补") dr("新人补贴") = r("新人补贴") Exit For End If Next End If End If Next End If
如上代码执行时,出现如下警告:
.NET Framework 版本:2.0.50727.8793 Foxtable 版本:2017.3.18.1 错误所在事件:菜单,日薪工资导入工资计算,Click 详细错误信息: 列“年月”不属于表 员工每月工资报告。
"员工每月工资报告"里面虽然没有“年月”这栏,但是我已经定义了"NY",但是为什么还是出现警告呢?谢谢。
|
-- 作者:有点甜
-- 发布时间:2019/4/11 14:08:00
--
没看懂你这段代码要实现什么。
请具体说明你要做到的效果,并上传具体实例测试。
|
-- 作者:edisontsui
-- 发布时间:2019/4/11 16:16:00
--
我知道问题所在了,这句话要修改一下:For Each dr As DataRow In DataTables("工资计算").DataRows
|