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


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

主题: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老师,先看下我的代码有没有问题啊,我写好后没有报错!!

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

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


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/8/18 15:30:00 [只看该作者]

是的,你说对了.

你应该判断触发 总因次列 的列

例如
列C是表达式    表达式为   列A+列B

那么你判断列C是没用的,  应该判断列A和列B

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/8/18 15:32:00 [只看该作者]


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


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

 如果是表达式列,那么你就得去找到对应的列写代码。

 

 比如 如果总印次=sum(数量) 那么你就得去子表写代码

 

If e.DataCol.name = "数量" Then
    DataTables("父表").DataCols("工资").RaiseDataColChanged("关联列 = '" & e.DataRow("关联列") & "'")
End If

 

--------------------

 

父表Datacolchanged

 

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

 


 回到顶部
帅哥哟,离线,有人找我吗?
身份不明
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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事件里实现呢


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


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


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

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


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

 看4楼,然后写这句代码

 

DataTables("父表").DataCols("工资").RaiseDataColChanged()


 回到顶部
帅哥哟,离线,有人找我吗?
身份不明
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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

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


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


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

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

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


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


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

 回到顶部
总数 21 1 2 3 下一页