Foxtable(狐表)用户栏目专家坐堂 → 满足条件统计


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

主题:满足条件统计

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107844 积分:548571 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/19 17:42:00 [显示全部帖子]

既然代码里都有具体的表名列名,描述问题记录使用代码里的表名列名,不要使用什么A表,B表,A列B列来表示,无法对号入座,看半天都不知道哪个是A表哪个是B表。

根本没有这个相关的明细可统计指什么?有空值,没有空值又表示什么?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107844 积分:548571 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/20 20:56:00 [显示全部帖子]

If e.DataRow("刀具状态") <> "已还刀" AndAlso e.DataRow("使用设备") Like "*ZK*" Then
    Dim Filter12 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [加工工序] = '" & e.DataRow("加工工序") & "'and [使用设备] = '" & e.DataRow("使用设备") & "' and [生产批次] = '" & e.DataRow("生产批次") & "'"'
dim dr as datarow = DataTables("计划领用刀具").SQLFind(Filter12)
if dr is nothing then 《计划领用刀具》没有对应的刀具明细
如果没有,则按刀具状态按要求显示
if e.DataRow("已排产数") <> 0  AndAlso  e.DataRow("合格品") = 0 then
《计划领用刀具》的没有对应的刀具明细,并且当前窗口表中的已排产数列不等于于零和合格品列等于0,那当前窗口表中的“刀具状态” = “待配刀”
elseif e.DataRow("待加工数") = e.DataRow("计划数量")
待加工数等于计划数量,那当前窗口表中的“刀具状态” = “未加工”
endif
else 《计划领用刀具》有对应的刀具明细
    if dr.isnull("加工状态") then 加工状态这一列是空值
        if e.DataRow("工序状态") = "进行中" then
如果有空值,并且工序状态为进行中时,刀具状态则为进行中
elseif e.DataRow("工序状态") = "已完工" then
加工状态这列有空值,并且当前窗口表中的工序状态列为”已完工“,那当前窗口表中的“刀具状态” = “待还刀”
        end if
    else 加工状态这一列不是空值
加工状态这列没有空值,那当前窗口表中的“刀具状态” = “已还刀”
    end if
end if
End If

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107844 积分:548571 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/24 8:46:00 [显示全部帖子]

使用compute计算

if e.datatable.compute("count(刀具状态)","刀具状态 <> '已完工' or 刀具状态 is null") > 0 then
订单状态=进行中
else
订单状态=已完工
end if

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107844 积分:548571 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/24 9:56:00 [显示全部帖子]

Dim Filter12 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [生产批次] = '" & e.DataRow("生产批次")  & "' and (订单状态 <> '已完成' or 订单状态 is null)"
If DataTables("生产排产表").SQLcompute("count(订单状态)",Filter12 ) > 0 AndAlso  e.DataRow("申请关闭") = Nothing  Then

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107844 积分:548571 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/3/2 9:23:00 [显示全部帖子]

应该是事件代码之间互相触发形成了死循环。

检查代码逻辑,或者加上这个试试:http://www.foxtable.com/webhelp/topics/2218.htm

 回到顶部