以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于取值的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=107980)

--  作者:18911864822
--  发布时间:2017/10/13 16:11:00
--  关于取值的代码
在命令窗口测试的代码如下:
Dim aa As Integer =  CurrentTable.Position
Dim bb As String = Tables("原材料出库表").Rows(aa)("物料名称")
Dim cc As String = Tables("原材料出库表").Rows(aa)("领用日期")
output.show(bb)
output.show(cc)
Dim sum1 As Double = DataTables("原材料入库表").Compute("Sum(数量)", "物料名称 = \'"& bb &"\' and 日期 <= #"& cc &"# ")
Dim sum2 As Double = DataTables("原材料入库表").Compute("Sum(金额)", "物料名称 = \'"& bb &"\' and 日期 <= #"& cc &"# ")
output.show(sum1)
output.show(sum2)
Dim sum3 As Double = sum2 / sum1
output.show(sum3)
结果:
烧饼
2017-10-15
20
54
2.7
放到表事件后,计算的条件表达式里的bb和cc改成了新值zf1 和zf2后的代码:
Dim co1 As DataCol = e.DataCol
Dim dr As DataRow = e.DataRow
Select Case co1.Name
    Case "领用日期","物料代码"
        If dr.IsNull("物料代码") OrElse dr.IsNull("领用日期") Then \'如果数量或单价为空
            dr("数量") = Nothing
            dr("单价") = Nothing
            dr("金额") = Nothing
        Else
            Dim zf1 As String = e.NewValue
            Dim zf2 As String = e.NewValue
            zf1 = dr("物料代码")
            zf2 = dr("领用日期")
            
            Dim sum1 As Double = DataTables("原材料入库表").Compute("Sum(数量)", "物料名称 = \'"& zf1 &"\' and 日期 <= #"& zf2 &"# ")
            Dim sum2 As Double = DataTables("原材料入库表").Compute("Sum(金额)", "物料名称 = \'"& zf1 &"\' and 日期 <= #"& zf2 &"# ")
            Messagebox.Show(sum1)
            Messagebox.Show(sum2)
            Dim sum3 As Double = sum2 / sum1
            dr("单价") = sum3
            Messagebox.Show(sum3)
        End If
End Select
运行后sum1和sum2没计算出结果,全是0。
请老师给看下这段代码吧,谢谢!!!!

--  作者:有点甜
--  发布时间:2017/10/13 16:48:00
--  

1、代码你写在什么事件?

 

2、加上代码,弹出 msgbox(zf1 & " " & zf2)


--  作者:18911864822
--  发布时间:2017/10/13 16:53:00
--  
我是写在DataColChanged里的,加上你那个msgbox(zf1 & " " & zf2)代码后能弹出来真确的字符了,但还是没引用 到那个DataTables("原材料入库表").Compute("Sum(数量)", "物料名称 = \'"& bb &"\' and 日期 <= #"& cc &"# ")这个里面,计算不出来数值,怎么回事呢老师?
--  作者:有点甜
--  发布时间:2017/10/13 17:06:00
--  

弹出这个值看看msgbox("物料名称 = \'"& zf1 &"\' and 日期 <= #"& zf2 &"# ")

 

看是否正确,如果条件正确,做个例子发上来测试。


--  作者:18911864822
--  发布时间:2017/11/10 17:23:00
--  
字符位数超过12位又判断不出来了老师,只能判断到9位!!
--  作者:有点甜
--  发布时间:2017/11/10 17:45:00
--  
以下是引用18911864822在2017/11/10 17:23:00的发言:
字符位数超过12位又判断不出来了老师,只能判断到9位!!

 

实例上传测试。