Foxtable(狐表)用户栏目专家坐堂 → Datacolchanged代码问题求助!!!


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

主题:Datacolchanged代码问题求助!!!

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
Datacolchanged代码问题求助!!!  发帖心情 Post By:2014/8/18 15:28:00 [显示全部帖子]

If e.DataCol.name="总印次" Then
     If e.DataRow(e.DataCol.name)<70000 Then
         e.DataRow("工资")=e.DataRow("总印次")/70000 * e.DataRow("总印次") * 26 / 10000
     Else If e.DataRow(e.DataCol.name)>=70000 Then
         e.DataRow("工资")=((e.DataRow("总印次") - 70000) * 26 * 1.5 + 70000 * 26 ) / 10000
     End If
End If

 

Bin老师,先看下我的代码有没有问题啊,我写好后没有报错!!

但是从新记载数据后,无法显示统计的结果。

我分析的原因:是不是因为总印次列是表达式列,所以无法统计数据呢,还是其它的原因!!


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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/18 17:05:00 [显示全部帖子]

遇到了麻烦的问题

If e.DataCol.name="总印次" Then
     If e.DataRow(e.DataCol.name)<70000 Then
         e.DataRow("工资")=e.DataRow("总印次")/70000 * e.DataRow("总印次") * 26 / 10000
     Else If e.DataRow(e.DataCol.name)>=70000 Then
         e.DataRow("工资")=((e.DataRow("总印次") - 70000) * 26 * 1.5 + 70000 * 26 ) / 10000
     End If
End If

 

如果我在窗口里插入Table1,上述统计代码的统计功能如何在Afterload事件里实现呢


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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/18 17:08:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:11111111111111111.jpg
图片点击可在新窗口打开查看
我想先通过窗口中的表统计出每天的总印次,在根据条件统计工资!!

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/18 17:16:00 [显示全部帖子]

我没有做父表和子表的关联,甜老师。

我现在的问题是,比如这个人一天可以完成了10个订单,10个订单一共完成了75000印次。

那我就要根据这个条件,来统计他一天的工资。

If e.DataRow(e.DataCol.name)>=70000 Then
e.DataRow("工资")=((e.DataRow("总印次") - 70000) * 26 * 1.5 + 70000 * 26 ) / 10000

 

但是如果他完成了小于70000的印次,就要通过这个条件来统计工资。
If e.DataRow(e.DataCol.name)<70000 Then
         e.DataRow("工资")=e.DataRow("总印次")/70000 * e.DataRow("总印次") * 26 / 10000

我现在这个表是按订单编号来计算单个订单的印次,没办法算一天的总印次!!


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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/18 17:18:00 [显示全部帖子]

我是想能否通过窗口统计的方法,自动按人员按每天统计总印次,得出总印次后,由以上条件自动计算出每天的工资呢!!

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/18 17:20:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:2222222222222222.jpg
图片点击可在新窗口打开查看
现在通过窗口统计,只能统计出每天的总印次,但是如何通过条件计算工资,我不知道该如何实现这个功能了!

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/18 19:19:00 [显示全部帖子]

求解。

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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/19 8:28:00 [显示全部帖子]

图片点击可在新窗口打开查看

是的,甜老师,我是通过窗口中的统计按钮统计出的结果,想在后面加一列工资列,统计的条件是如下面的代码:

If e.DataCol.name="总印次" Then
     If e.DataRow(e.DataCol.name)<70000 Then
         e.DataRow("工资")=e.DataRow("总印次")/70000 * e.DataRow("总印次") * 26 / 10000
     Else If e.DataRow(e.DataCol.name)>=70000 Then
         e.DataRow("工资")=((e.DataRow("总印次") - 70000) * 26 * 1.5 + 70000 * 26 ) / 10000
     End If
End If
我知道可以增加工资列,可以不知道如何把统计的条件写带统计按钮中!


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


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/19 8:28:00 [显示全部帖子]

窗口中的统计代码如下:

Dim g As New GroupTableBuilder("统计表1", DataTables("平张4开机工价"))
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Groups.AddDef("日期", DateGroupEnum.Day, "日")
g.Groups.AddDef("人员")
g.Totals.AddDef("总印次", "总印次/天")
g.SubTotal = True
g.FromServer = True
g.Build()


 回到顶部
帅哥哟,离线,有人找我吗?
身份不明
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:459 积分:3137 威望:0 精华:0 注册:2014/2/13 9:22:00
  发帖心情 Post By:2014/8/19 13:05:00 [显示全部帖子]

以下是引用有点甜在2014-8-19 9:27:00的发言:

在后面加入代码

 

DataTables("统计表1").DataCols.Add("工资", Gettype(Double))

For Each dr As DataRow In DataTables("统计表1").DataRows
    If dr("总印次/天")<70000 Then
        dr("工资")=dr("总印次")/70000 * dr("总印次/天") * 26 / 10000
    Else If dr("总印次/天")>=70000 Then
        dr("工资")=((dr("总印次/天") - 70000) * 26 * 1.5 + 70000 * 26 ) / 10000
    End If
Next

甜老师,您看我我的代码:统计后还是没有显示工资的信息。
e.Form.Controls("Table1").Visible = True
Dim g As New GroupTableBuilder("统计表1", DataTables("平张4开机工价"))
g.Groups.AddDef("日期", DateGroupEnum.Year, "年")
g.Groups.AddDef("日期", "月")
g.Groups.AddDef("日期", DateGroupEnum.Day, "日")
g.Groups.AddDef("人员")
g.Totals.AddDef("总印次", "总印次/天")
g.SubTotal = True
g.FromServer = True
g.Build()
Tables("平张机4开工资直接统计_Table1").DataSource = g.BuildDataSource()
DataTables("统计表1").DataCols.Add("工资", Gettype(Double))
For Each dr As DataRow In DataTables("统计表1").DataRows
    If dr("总印次/天")<70000 Then
        dr("工资")=dr("总印次")/70000 * dr("总印次/天") * 26 / 10000
    Else If dr("总印次/天")>=70000 Then
        dr("工资")=((dr("总印次/天") - 70000) * 26 * 1.5 + 70000 * 26 ) / 10000
    End If
Next
 


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

 回到顶部
总数 13 1 2 下一页