以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]数值比较的问题,求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27297)

--  作者:wayiok
--  发布时间:2012/12/27 20:21:00
--  [求助]数值比较的问题,求助
 例子见附件。
未发料=数量-已发料,单精度小数。
我希望在未发料=0的时候,“发料完成”逻辑列能够自动勾选。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table



我在DataColChanged中填写如下:
If e.DataCol.Name="未发料" Then
If Math.Round(e.NewValue,6) = 0 Then
        e.DataRow("发料完成")=True
    End If
End If

但是,不能实现自动勾选,请教,该怎么改呢?

--  作者:e-png
--  发布时间:2012/12/27 21:03:00
--  
If e.DataCol.Name="数量" Or e.DataCol.Name= "已发料" Then
    If Math.Round( e.DataRow("未发料"),6) = 0 AndAlso  e.DataRow.Isnull("数量") = False Then
        \'    If e.NewValue = 0 Then
        e.DataRow("发料完成") = True
    Else
        e.DataRow("发料完成") = False
    End If
End If

--  作者:Liuxinyu
--  发布时间:2012/12/27 21:23:00
--  

你在更新[已发料]的数据时,需要更新[发料完成]。[未发料]是表达式列,不能触发DataColChanged事件,请使用下列代码

 

If e.DataCol.Name="已发料" Then
    If Math.Round(CurrentTable.Current("数量") - e.NewValue,6) = 0 Then
        \'    If e.NewValue = 0 Then
        e.DataRow("发料完成")=True
Else
        e.DataRow("发料完成")=False
    End If
End If


--  作者:wayiok
--  发布时间:2012/12/27 21:44:00
--  
 继续请教,[已发料]也是表达式列的话,怎么实现[发料完成]的自动勾选呢?
请见附件,[已发料]=Sum(Child(表AB).发料数量)
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table



--  作者:sunsenfeng
--  发布时间:2012/12/27 22:53:00
--  

在表B的DataColChanged事件中

Select e.DataCol.name
    Case "发料数量"
        If Tables("表A").current("未发料")<0.000001 Then
            Tables("表A").current("发料完成")=True
        Else
            Tables("表A").current("发料完成")=False
        End If
End Select

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table


--  作者:wayiok
--  发布时间:2012/12/28 10:21:00
--  
 这样的话,不能实现表B填写后表A自动勾选呢。

比如,表A我选的是物料1的行,表B中增加了物料2的发料数量,表A中物料2不会自动勾选的。

能不能表B中添加物料发放后,表A中的“发料完成”能够自动勾选?

--  作者:lin_hailun
--  发布时间:2012/12/28 10:39:00
--  
这样。

 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:test.table