Foxtable(狐表)用户栏目专家坐堂 → [求助]sql合成执行表AfterLoad事件后无法获取执行后的数据


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

主题:[求助]sql合成执行表AfterLoad事件后无法获取执行后的数据

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


加好友 发短信
等级:三尾狐 帖子:629 积分:4927 威望:0 精华:0 注册:2014/2/25 15:50:00
[求助]sql合成执行表AfterLoad事件后无法获取执行后的数据  发帖心情 Post By:2018/9/5 1:26:00 [只看该作者]

以下表是通过sql语句合成的表V_XZ_员工工资表
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905011812.png
图片点击可在新窗口打开查看

然后在上表中再执行了表AfterLoad事件,就变成了
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905011935.png
图片点击可在新窗口打开查看
请问该表如何再引用数据呢
用这个语句
SE LECT max(_identify) as _identify,当前部门,Sum(底薪) As 底薪,Sum(基本工资) As 基本工资 FR OM {V_XZ_员工工资表} GROUP BY 当前部门"
只能获取到当前部门,底薪 列的数据合计。而基本工资列的数据还是0

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905012840.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/9/5 1:30:00编辑过]

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


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

1、你afterload事件执行了什么代码?你如何计算基本工资列数据的?

 

2、基本工资列不是数据库的列?你没有保存基本工资的数据进去表格?

 

 


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4927 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2018/9/5 9:33:00 [只看该作者]

afterload事件
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905092919.png
图片点击可在新窗口打开查看
函数
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905093008.png
图片点击可在新窗口打开查看

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


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

1、你的Table1,不要用查询表,请改成数据表,也就是sqlTable表格,这样才能保存数据。

 

2、你修改基本工资等信息以后,要save保存到数据库。


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4927 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2018/9/5 11:53:00 [只看该作者]

我在afterload事件增加了以下代码,就是想把 员工工资表_Table1 数据导入到 XZ_员工工资表 里面
Dim dt0 As DataTable = DataTables("员工工资表_Table1")
Dim cmd As new SQLCommand
Dim dt11 As DataTable
cmd.CommandText = "select * fr om {XZ_员工工资表}"
dt11 = cmd.ExecuteReader()
For Each dr0 As DataRow In dt0.DataRows
    Dim dr1 As DataRow = dt11.AddNew()
    For Each dc As DataCol In dt0.DataCols
        If dt0.datacols.contains(dc.name) Then
            dr1(dc.name) = dr0(dc.name)
        End If
    Next
Next
但是报错
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905115018.png
图片点击可在新窗口打开查看

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


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

参考

 

Dim dt0 As DataTable = DataTables("员工工资表_Table1")
Dim cmd As new SQLCommand
cmd.ConnectionName = "abc"
Dim dt11 As DataTable
cmd.CommandText = "select * from {XZ_员工工资表}"
dt11 = cmd.ExecuteReader(True)
For Each dr0 As DataRow In dt0.DataRows
    Dim dr1 As DataRow = dt11.AddNew()
    For Each dc As DataCol In dt0.DataCols
        If dt0.datacols.contains(dc.name) Then
            dr1(dc.name) = dr0(dc.name)
        End If
    Next
Next
dt11.save


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


加好友 发短信
等级:三尾狐 帖子:629 积分:4927 威望:0 精华:0 注册:2014/2/25 15:50:00
  发帖心情 Post By:2018/9/5 13:11:00 [只看该作者]

请问我想把 企业简码 列排除来 如何设置呢  还有 如何清除表中原来的所有数据呢


[此贴子已经被作者于2018/9/5 13:18:43编辑过]

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


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

For Each dr0 As DataRow In dt0.DataRows

改成

 

For Each dr0 As DataRow In dt0.select("", "企业简码")

 

http://www.foxtable.com/webhelp/scr/0394.htm

 

http://www.foxtable.com/webhelp/scr/0419.htm

 


 回到顶部