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


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

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

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 12:59:00 [显示全部帖子]

    这是汇总后产生的空行。还我有过年前被限制了一天只能发25个回帖,为什么?

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 13:22:00 [显示全部帖子]

    还有打开一次,都要重新执行按钮运算,然后汇总,不能把上次
图片点击可在新窗口打开查看此主题相关图片如下:汇总模式.png
图片点击可在新窗口打开查看
结果保存。我想设置上传的汇总模式,不知怎么做窗口统计。

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 13:32:00 [显示全部帖子]

     我安正常输入,没空行的,用按钮计算时产生空行,你已经教我在按钮里加入
Tables("冲压车间工资表").filter = ""
Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式"
Tables("冲压车间工资表").Filter = "日期 is null"
消除空行了,我现在按钮里的完整程序是:
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式", "日期 is not null and 生产形式 <> '个人'")
    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("姓名")
        sum += dr("数量") * dr("单价")
        If ls.Contains(str) = False Then
            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 "*重复*" Then
            dr("分配金额") = Nothing
        Else
            dr("分配金额") = format(sum/count, "0.00")
        End If
    Next
Next
For Each dr As DataRow In DataTables("冲压车间工资表").Select("生产形式 = '个人'")
    dr("备注") = dr("备注").replace("重复", Nothing)
    dr("分配金额") = dr("数量") * dr("单价")
Next
Tables("冲压车间工资表").filter = ""
Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式"
Tables("冲压车间工资表").Filter = "日期 is null"

Dim tb As New DropTreeBuilder
tb.SourceTable = DataTables("价格表") '指定目录树表
tb.TreeCols = "产品名称|工序" '指定用于生成目录树的列
tb.SourceCols = "产品名称|工序|单价" '指定数据来源列
tb.ReceiveCols = "产品名称|生产工序|单价" '指定数据接收列
Tables("冲压车间工资表").Cols("产品名称").DropTree = tb.Build()

计算、消除空行、重做目录树都在这了,计算后主窗口没空行了,但按汇总模式汇总,前面又产生大量空行了,我不会跨那么多空行来输入数据吧,想想都不合理,是你们的汇总功能产生的效果,应从软件缺陷设想,为什么excel用数据透视表功能不会发生这现象?
[此贴子已经被作者于2016/2/21 13:35:10编辑过]

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 19:47:00 [显示全部帖子]

     我都上传了截图给你看,也上传了文件,你可以操作试试,怎么是不可能,打开软件,窗体中的数据前面是没空行的,运行窗口1中的按钮程序,再利用表头上的数据统计-汇总模式-设置汇总模式确定后就出现前面很多空行,我看了你们的视频教程,用管理员权限打开软件,设置汇总模式没有查看代码功能,用开发者权限打开,设置汇总模式才看到查看代码功能,把代码复制到命令版面,加上你给的Tables("冲压车间工资表").Filter = "日期 is not null",执行,窗口没反应,没统计功能,反是关闭命令版面,直接确认设置汇总模式设置,窗口就出现小计、总计功能,但纵使保存了结果,重新打开软件,统计结果依然没有,要重新执行操作。
[此贴子已经被作者于2016/2/21 19:50:01编辑过]

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 22:39:00 [显示全部帖子]

     为什么要筛选后统计呢,我是把每天的数据进行小计,最后统计,本身已安日期输入,不需要筛选了,为什么要进行每天小计呢,是怕万一分配有误,可以通过小计对比当天的计件金额是否与分配金额相等,不等证明当天的分配数有误,缩小查找范围,另外见你迟迟不回答我安日进行不重复人工资统计问题,我把几个有关统计、Select、SQL语句的视频教程、使用指南仔细看一次,有的反复看几次,发现用综合使用SQL语句和统计工具实现:可以得到下图所示的统计结果:


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

[此贴子已经被作者于2016/2/21 23:52:10编辑过]

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 22:41:00 [显示全部帖子]

所有的例子一直用数量或简单的表代式计算金额为例,而我发帖费了那么大篇幅口舌才算出的分配金额,现在想统计不重复人每天的工资,最后安每天、人各自横、竖统计,显然你们的例子很难实现我要的结果,因为我的金额不是简单代表式,而是程序运算,要怎样才能实现这些复杂统计?

[此贴子已经被作者于2016/2/21 23:54:01编辑过]

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/21 23:40:00 [显示全部帖子]

     我都用excel截图说明想要实现的效果了怎么还不明白呢?统计的金额与前面的程序计算脱不了关系,另开一帖恐要多费口舌解释,我一直围绕同一个表提问,没必要另开帖,我一直提道要实现两种效果,这两种统计模式要另表列开的,但数据源都为同一冲压车间工资表,其中一种安单独人列出每天工资明细,最后统计,这个我已能过按姓名通过筛选后汇总实现,另一个就是上面的要求,安不重复人,列出每人每日工资一览表,最后横、竖统计,效果就是我的excel截图,冲压车间工资表作为数据源表自身可进小计、总计计算,汇总后前面出现空行就是在数据源自身小计、总计这个环节上出现,上传的文件密码一直是111222333没变。
[此贴子已经被作者于2016/2/21 23:50:59编辑过]

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/22 10:19:00 [显示全部帖子]

在EXCEL中当天的工资汇总等于:

=IF(AND($A:$A=A3,$B:$B=B3)="","",IF(SUMPRODUCT(($A$3:$A3=A3)*($B$3:$B3=B3))>1,"",ROUND(SUMIFS($H:$H,$A:$A,A3,$B:$B,$B3)+SUMIFS($K:$K,$A:$A,$A3,$B:$B,$B3),2)))

同按shift+ctrl+回车,因为工资表中同一人当天可能做了几样工作,有几个分配后的工资,引用到一览表的公式是:

=IFERROR(INDEX('7月份'!$Q:$Q,MATCH(S$2&$B11,DAY('7月份'!$A:$A)&'7月份'!$B:$B,0)),"")

同按shift+ctrl+回车

最后横竖合计,你们的软件引用数据库数据中的金额不能直接引用,要重新计算,我的金额计算比较复杂,这样就形成要做我的一览表效果困难,使用指南举的都是数量、简单表达式,我的实例应怎么实现呢?

[此贴子已经被作者于2016/2/22 10:25:47编辑过]

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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/22 10:22:00 [显示全部帖子]

你们的软件相关视频教程和使用指南的都看过一遍或几遍了,遇到这问题,在excel不难解决,但到了你们的软件就困难。


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


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/22 10:30:00 [显示全部帖子]

    我现在在赶工资表,容我慢慢学吗?我遇到自己解决不了的问题才上论坛问,你却不断跟我绕弯!

 回到顶部