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


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

主题:满足条件重新计算

美女呀,离线,留言给我吧!
nuoyan89
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:489 积分:3392 威望:0 精华:0 注册:2020/10/9 8:45:00
满足条件重新计算  发帖心情 Post By:2022/2/22 16:57:00 [只看该作者]

老师,我在窗口表中的表事件中写了标注红色字体的条件,明明有满足这个条件的,但是还是需要手动刷新计算,不能按照条件重新计算,请帮忙看看,谢谢
If e.DataRow("待加工数") <>  0 AndAlso e.DataRow("计划数量") <>  0     Then
    If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name = "加工工序" OrElse e.DataCol.Name = "使用设备" Then
        Dim Filter40 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [生产批次] = '" & e.DataRow("生产批次")  & "' and [加工工序] = '" & e.DataRow("加工工序") & "' and [使用设备] = '" & e.DataRow("使用设备")  & "'"
        e.DataRow("不合格品") = DataTables("过程异常明细").SQLCompute("Sum(异常数量)", Filter40)
        e.DataRow("流转数量") = DataTables("过程异常明细").SQLCompute("Sum(流转数量)", Filter40)
    End If
    If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次"  Then
        Dim Filter20 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [生产批次] = '" & e.DataRow("生产批次") & "' and [加工工序] = '" & e.DataRow("加工工序") & "' and [使用设备] = '" & e.DataRow("使用设备") & "' And  (判定结果  Like '%料废%' Or 判定结果 like '%工废%')"
        e.DataRow("报废品") = DataTables("过程异常明细").SQLCompute("count(异常数量)", Filter20)
    End If
    If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次"  Then
        Dim Filter21 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [生产批次] = '" & e.DataRow("生产批次") & "' and [加工工序] = '" & e.DataRow("加工工序") & "' and [使用设备] = '" & e.DataRow("使用设备") & "' And  判定结果  Like '%长期待处理%'"
        e.DataRow("长期待处理") = DataTables("过程异常明细").SQLCompute("count(异常数量)", Filter21)
    End If
end if

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/22 17:05:00 [只看该作者]

这些列名的数据发生了变化,才会触发datacolchanged事件

   If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次" OrElse e.DataCol.Name = "加工工序" OrElse e.DataCol.Name = "使用设备" Then
        Dim Filter40 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [生产批次] = '" & e.DataRow("生产批次")  & "' and [加工工序] = '" & e.DataRow("加工工序") & "' and [使用设备] = '" & e.DataRow("使用设备")  & "'"
        e.DataRow("不合格品") = DataTables("过程异常明细").SQLCompute("Sum(异常数量)", Filter40)
        e.DataRow("流转数量") = DataTables("过程异常明细").SQLCompute("Sum(流转数量)", Filter40)
    End If
    If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次"  Then
        Dim Filter20 As String = "[成品编码] = '" & e.DataRow("成品编码") & "' and [生产批次] = '" & e.DataRow("生产批次") & "' and [加工工序] = '" & e.DataRow("加工工序") & "' and [使用设备] = '" & e.DataRow("使用设备") & "' And  (判定结果  Like '%料废%' Or 判定结果 like '%工废%')"
        e.DataRow("报废品") = DataTables("过程异常明细").SQLCompute("count(异常数量)", Filter20)
    End If
    If e.DataCol.Name  = "成品编码" OrElse e.DataCol.Name = "生产批次"  Then

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:489 积分:3392 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/2/22 17:09:00 [只看该作者]

如果我想改成在这些列不发生变化的情况,只要“待加工数量”不等于0,每次打开这个窗口时就能自动刷新应该怎么变动呢?因为我手动点击下面刷新时结果有变动。
DataTables("排产扫码_生产排产表").DataCols("生产批次").RaiseDataColChanged()

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/22 17:18:00 [只看该作者]

只能手动调用RaiseDataColChanged刷新

 回到顶部
美女呀,离线,留言给我吧!
nuoyan89
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:489 积分:3392 威望:0 精华:0 注册:2020/10/9 8:45:00
  发帖心情 Post By:2022/2/23 8:26:00 [只看该作者]

我能否把这个代码DataTables("排产扫码_生产排产表").DataCols("生产批次").RaiseDataColChanged()写在窗口加载事件中,打开窗口时,只要是待加工数不等于0时就自动触发这个代码呢?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/23 8:50:00 [只看该作者]

能不能自己测试不就知道了,这种还要问?把代码放到afterload咯

 回到顶部