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


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

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/5 18:00:00 [只看该作者]

以下是引用意悠心轻在2016/2/5 17:07:00的发言:
55是上传了吗?,汇总模式我已做了一个,你执行就看到我要的模式了,我另外还想再添加一个安姓名、日期汇总的模式,这应该要查询表上做吧?

 

一样的意思,按姓名日期或者按日期姓名都可以,效果都差不多的啊。


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  62楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/5 18:07:00 [只看该作者]

不一样,我截图给你看吧,
图片点击可在新窗口打开查看此主题相关图片如下:汇总模式.png
图片点击可在新窗口打开查看
我要的是这种效果。
[此贴子已经被作者于2016/2/5 18:17:46编辑过]

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  63楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/5 18:14:00 [只看该作者]

还有我说四舍五入,不要数量条件,姓字重复,重复部分不再显示金额问题你一直不回我,你不看之前的回帖,你不回我自己弄了,终天明白表达式里的四舍五入方法与窗口执行命令里的四舍五入方法不一样的,不能把表达式中的四舍五入公式套到窗口命令里,系统会把它默认成注识,在窗口命令里实现四舍五入要这样:Int([数量]*[单价]*100)/100,我删除数量条量后不知哪出错了,现在无法计算了。
图片点击可在新窗口打开查看此主题相关图片如下:无法计算.png
图片点击可在新窗口打开查看

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  64楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/5 18:17:00 [只看该作者]

      弄砸了的TABLE文件上传给你看,看哪出问题了。
[此贴子已经被作者于2016/6/26 15:29:10编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/5 18:21:00 [只看该作者]

For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式", "日期 is not null")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期=#" & ary(0) & "# and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "'")
    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 += Int(dr("数量") * dr("单价")*100)/100
            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("分配金额") = Int((sum/count)*100)/100
        End If
    Next
Next
Tables("冲压车间工资表").filter = "分配金额 is not null"
Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,生产工序"

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/5 18:22:00 [只看该作者]

63楼的,你直接排序就行啊

 


Tables("冲压车间工资表").filter = "分配金额 is not null"
Tables("冲压车间工资表").Sort = "姓名,日期"


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  67楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/5 18:31:00 [只看该作者]

安你刚给我程序出现上面提示,无法保存。
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/5 19:07:00 [只看该作者]

代码没问题

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  69楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/5 20:15:00 [只看该作者]

int函数是取整函数,四舍五入应该这样编写吧?

iif(right(Int(dr("数量") * dr("单价")*100),1)>=5,Int(dr("数量") * dr("单价")*100)+1,Int(dr("数量") * dr("单价")*100))/100

[此贴子已经被作者于2016/2/5 20:27:07编辑过]

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  70楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/5 20:20:00 [只看该作者]

      复制你的程序进去了,1月5日第89行、90行罗厚波甄别不出重名,依然显示他的分配金额有2次钱,还有1月6日周先武,第130行、13

1行也是这种情况,1月4日第65行罗厚坚,他是个人计件,不用分配,只有集体形式的才分配,你的公式还是有问题。


[此贴子已经被作者于2016/6/26 15:29:30编辑过]

 回到顶部