以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何实现这样的自动输入?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=42471)

--  作者:sxy_123456
--  发布时间:2013/11/12 21:23:00
--  [求助]如何实现这样的自动输入?
我想在材料采购申请单选择产品编号后做一个判断,如果同一工程材料费预算表中有这个产品则自动对应输入材料费预算表的预算数量和预算单价,如果没有这个产品,预算数量=0,预算单价=产品单价
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.table


--  作者:有点甜
--  发布时间:2013/11/12 21:36:00
--  
 在datacolchanged事件里加入代码

If e.DataCol.Name = "产品编号" Then
    Dim fdr As DataRow = DataTables("材料费预算表").Find("中标工程名称 = \'" & e.DataRow("中标工程名称") & "\' and 产品编号 = \'" & e.NewValue & "\'")
    If fdr IsNot Nothing Then
        e.DataRow("成本预算数量") = fdr("数量")
        e.DataRow("成本预算单价") = fdr("单价")
    Else
        fdr = DataTables("产品价格库").Find("产品编号 = \'" & e.NewValue & "\'")
        e.DataRow("成本预算数量") = 0
        If fdr IsNot Nothing Then
            e.DataRow("成本预算单价") = fdr("单价")
        End If
    End If
End If

--  作者:sxy_123456
--  发布时间:2013/11/12 21:56:00
--  
谢谢
--  作者:sxy_123456
--  发布时间:2013/11/12 22:14:00
--  
上面的例子还有个问题要请教有点甜,我在加载树选择工程名称时以下代码计算剩余数量正确,但是我习惯在加载树选择第几次采购输入数据,不能计算,有没有办法改进?
If e.DataCol.Name = "本次数量" Then
    If e.DataRow.IsNull("中标工程名称") = False AndAlso e.DataRow.IsNull("产品编号") = False _
        AndAlso e.DataRow.IsNull("本次数量") = False AndAlso e.DataRow.IsNull("第几次采购") = False Then
        Dim sum As Double = e.DataTable.Compute("Sum(本次数量)","中标工程名称 = \'" & e.DataRow("中标工程名称") & "\' And 产品编号 = \'" & _
              e.DataRow("产品编号") & "\' And 第几次采购 <= \'" & e.DataRow("第几次采购") & "\'")
        e.DataRow("剩余数量") = e.DataRow("成本预算数量") - sum
       
    End If

End If

--  作者:有点甜
--  发布时间:2013/11/12 22:30:00
--  
  不明白4楼表达的意思。怎么操作,输入什么,正确的结果应该是什么,请截图说明。
--  作者:sxy_123456
--  发布时间:2013/11/12 22:37:00
--  
截图1输入木工板,剩余数量计算不正确,
图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看截图2剩余数量计算正确
图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看


--  作者:有点甜
--  发布时间:2013/11/12 22:48:00
--  
 嗯嗯,明白,那你左边不要用 加载树 , 用 筛选树 就行了。