以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]sql合成执行表AfterLoad事件后无法获取执行后的数据  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=124358)

--  作者:188802386
--  发布时间:2018/9/5 1:26:00
--  [求助]sql合成执行表AfterLoad事件后无法获取执行后的数据
以下表是通过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编辑过]

--  作者:有点甜
--  发布时间:2018/9/5 9:20:00
--  

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

 

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

 

 


--  作者:188802386
--  发布时间:2018/9/5 9:33:00
--  
afterload事件
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905092919.png
图片点击可在新窗口打开查看
函数
图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20180905093008.png
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间:2018/9/5 9:57:00
--  

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

 

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


--  作者:188802386
--  发布时间: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
图片点击可在新窗口打开查看

--  作者:有点甜
--  发布时间: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
--  发布时间:2018/9/5 13:11:00
--  
请问我想把 企业简码 列排除来 如何设置呢  还有 如何清除表中原来的所有数据呢


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

--  作者:有点甜
--  发布时间: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