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


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

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

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


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

你本来就有一堆空行,你可以筛选以后再汇总,如代码

 

Tables("冲压车间工资表").Filter = "日期 is not null"

 

或者

 

DataTables("冲压车间工资表").DeleteFor("日期 is not null")


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


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

以下是引用意悠心轻在2016/2/21 12:59:00的发言:
    这是汇总后产生的空行。还我有过年前被限制了一天只能发25个回帖,为什么?

 

新用户是有这种限制的,等级高了就没限制了。


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


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

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

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  144楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

不,可,能。

 

只要筛选了没有空行,汇总也不可能有空行啊。

 

重复的问题不想再说一次。


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  146楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

 汗,重新说一次。

 

1、筛选后统计,不可能再有空行;

 

2、本来就不会保存统计结果啊;

 

3、肯定是你操作上有错误,请先好好学习使用软件。


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  148楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  149楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


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

 把视频教程和帮助文档看一次,编写具体的代码处理。

 

 别人无法理解你的逻辑啊

 

 再有,新问题,请另外开贴,上传具体的例子发问。同时把开发者密码发出来。


 回到顶部