Foxtable(狐表)用户栏目专家坐堂 → 请教如何设计这个表达式


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

主题:请教如何设计这个表达式

帅哥哟,离线,有人找我吗?
大红袍
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/2 23:10:00 [显示全部帖子]

做一个按钮,写入下代码即可一次性计算

 

Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,数量"
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式|数量")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期='" & ary(0) & "' and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "' and 数量 = '" & ary(3) & "'")
    Dim sum As Double = 0
    Dim count As Integer = 0
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("价格表").find("产品名称 = '" & dr("产品名称") & "' and 工序 = '" & dr("生产工序") & "'")
        If fdr IsNot Nothing
            dr("单价") = fdr("单价")
        End If
        sum += dr("数量") * dr("单价")
        count += 1
    Next
    For Each dr As DataRow In drs
        dr("分配金额") = sum / count
    Next
   
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 9:41:00 [显示全部帖子]

以下是引用意悠心轻在2016/2/2 23:16:00的发言:
还有一个条件,旷工呢?没考虑进去。
[此贴子已经被作者于2016/2/2 23:29:32编辑过]

 

旷工的条件是什么啊?怎么判断啊?逻辑是什么说清楚啊。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 9:42:00 [显示全部帖子]

以下是引用意悠心轻在2016/2/2 23:17:00的发言:
不用按钮行吗?我想让它们自动计算。
[此贴子已经被作者于2016/2/2 23:24:19编辑过]

 

没必要自动计算,自动计算会带慢系统的,还不如把数据输入完毕以后,一次性计算。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 14:30:00 [显示全部帖子]

把旷工的筛选出去不就行了?

 

Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,数量"
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式|数量")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期='" & ary(0) & "' and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "' and 数量 = '" & ary(3) & "' and 备注 not like '%旷工%'")
    Dim sum As Double = 0
    Dim count As Integer = 0
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("价格表").find("产品名称 = '" & dr("产品名称") & "' and 工序 = '" & dr("生产工序") & "'")
        If fdr IsNot Nothing
            dr("单价") = fdr("单价")
        End If
        sum += dr("数量") * dr("单价")
        count += 1
    Next
    For Each dr As DataRow In drs
        dr("分配金额") = sum / count
    Next
   
Next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 14:54:00 [显示全部帖子]

1、设置窗口

 

http://www.foxtable.com/help/topics/0698.htm

 

2、设置菜单按钮

 

http://www.foxtable.com/help/topics/1064.htm

 

3、目录树的字体大小不可以调整,如果要调整的话,要用下拉窗口做。

 

http://www.foxtable.com/help/topics/1483.htm

 

http://www.foxtable.com/help/topics/2893.htm

 

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 15:05:00 [显示全部帖子]

 那就用原来的代码就行啊,那个就是按人分配的啊

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 15:13:00 [显示全部帖子]

Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,数量"
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式|数量")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期='" & ary(0) & "' and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "' and 数量 = '" & ary(3) & "'")
    Dim sum As Double = 0
    Dim count As Integer = 0
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("价格表").find("产品名称 = '" & dr("产品名称") & "' and 工序 = '" & dr("生产工序") & "'")
        If fdr IsNot Nothing
            dr("单价") = fdr("单价")
        End If
        sum += dr("数量") * dr("单价")
        count += 1
    Next
    For Each dr As DataRow In drs
        If dr("备注") Like "*矿工*" Then
            dr("分配金额") = Nothing
        Else
            dr("分配金额") = sum / count
        End If
    Next
   
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 15:28:00 [显示全部帖子]

Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,数量,生产工序"
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式|数量")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期='" & ary(0) & "' and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "' and 数量 = '" & ary(3) & "'")
    Dim sum As Double = 0
    Dim count As Integer = 0
    Dim ls As new List(Of String)
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("价格表").find("产品名称 = '" & dr("产品名称") & "' and 工序 = '" & dr("生产工序") & "'")
        If fdr IsNot Nothing
            dr("单价") = fdr("单价")
        End If
        If ls.Contains(dr("姓名")) = False Then
            sum += dr("数量") * dr("单价")
            count += 1
            ls.add(dr("姓名"))
        Else
            dr("备注") &= "重复"
        End If
    Next
    For Each dr As DataRow In drs
        If dr("备注") Like "*矿工*" OrElse dr("备注") Like "*重复*" Then
            dr("分配金额") = Nothing
        Else
            dr("分配金额") = sum / count
        End If
    Next
   
Next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 15:45:00 [显示全部帖子]

 代码测试没问题。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/3 15:51:00 [显示全部帖子]

Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,数量,生产工序"
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式|数量")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期='" & ary(0) & "' and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "' and 数量 = '" & ary(3) & "'")
    Dim sum As Double = 0
    Dim count As Integer = 0
    Dim ls As new List(Of String)
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("价格表").find("产品名称 = '" & dr("产品名称") & "' and 工序 = '" & dr("生产工序") & "'")
        If fdr IsNot Nothing
            dr("单价") = fdr("单价")
        End If
        Dim str As String = dr("姓名") & "|" & dr("生产工序")
        If ls.Contains(str) = False Then
            sum += dr("数量") * dr("单价")
            count += 1
            ls.add(str)
            dr("备注") = dr("备注").replace("重复", Nothing)
        Else
            dr("备注") = "重复" & dr("备注").replace("重复", Nothing)
        End If
    Next
    For Each dr As DataRow In drs
        If dr("备注") Like "*矿工*" OrElse dr("备注") Like "*重复*" Then
            dr("分配金额") = Nothing
        Else
            dr("分配金额") = sum / count
        End If
    Next
   
Next

 回到顶部
总数 81 上一页 1 2 3 4 5 6 7 8 9 下一页