Foxtable(狐表)用户栏目专家坐堂 → 临时表的问题


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

主题:临时表的问题

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
临时表的问题  发帖心情 Post By: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
详细错误信息:
未将对象引用设置到对象的实例。

请问如何解决这个问题?谢谢。


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


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

If NY > "201902" Then

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/3/16 16:17:00 [只看该作者]

还是出现如下警告:
不存在名称为“员工每月工资报告”的table.
未将对象引用设置到对象的实例。

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


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

生成"员工每月工资报告"临时表的代码贴出来

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By: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")

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


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

 "员工每月工资报告"是标题名,引用表要使用表名,不能使用标题名

For Each r As Row In Tables("统计表2").rows

或者

Dim g As New GroupTableBuilder("员工每月工资报告", DataTables("日薪计算"))
……
MainTable = Tables("员工每月工资报告")

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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By: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",但是为什么还是出现警告呢?谢谢。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/4/11 14:08:00 [只看该作者]

没看懂你这段代码要实现什么。

 

请具体说明你要做到的效果,并上传具体实例测试。


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


加好友 发短信
等级:七尾狐 帖子:1551 积分:10061 威望:0 精华:0 注册:2014/12/18 16:12:00
  发帖心情 Post By:2019/4/11 16:16:00 [只看该作者]

我知道问题所在了,这句话要修改一下:For Each dr As DataRow In DataTables("工资计算").DataRows

 回到顶部