Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
下载信息 [文件大小: 下载次数: ] | |
![]() |
搞的这么复杂根本不合理,
获取信息的来源最好采用唯一制度,其他地方需要调用与修改都方便很多,也容易扩展。代码也简单很多
表达式只能在表达式列中来写,你又没有表达式列,怎么写呢?
用代码这样看看:
Dim r As Row = Tables("库存表").current ' rows(Tables("库存表").position)
Dim dr,dr1 As DataRow
dr = DataTables("基础材料").Find("材料编码 = '" & r("材料编码") & "'")
dr1 = DataTables("入库单").Find("材料编码 = '" & r("材料编码") & "'")
If dr1 IsNot Nothing And dr IsNot Nothing Then
If dr1("日期") > dr("日期")
r("单价") = dr1("单价")
Else
r("单价") = dr("单价")
End If
Else
If dr IsNot Nothing Then
r("单价") = dr("单价")
End If
End If
非常感谢
我在mr725兄的基础上改一下,设置库存表的DAtaColChanged事件:
Dim r As DataRow = e.DataRow
Dim dr1,dr2 As DataRow
dr1 = DataTables("基础材料").Find("材料编码 = '" & r("材料编码") & "'")
dr2 = DataTables("入库单").Find("材料编码 = '" & r("材料编码") & "'")
If dr1 IsNot Nothing AndAlso dr2 IsNot Nothing Then
If dr2("日期") > dr1("日期")
r("单价") = dr2("单价")
Else
r("单价") = dr1("单价")
End If
ElseIf dr1 IsNot Nothing Then
r("单价") = dr1("单价")
End If
End If
入库单价格随市场一直在变,那该如何解决,请各位帮忙
好办,建议你参考一下下面的帮助,里面有说明如何找出最近一条记录:
http://help.foxtable.com/topics/0396.htm
尝试自己修改一下我给你的代码,如果搞不定,再发帖提问,我帮你写一下。
Dim r As DataRow = e.DataRow
Dim dr1,dr2 As DataRow
dr1 = DataTables("基础材料").Find("材料编码 = '" & r("材料编码") & "'")
dr2 = DataTables("入库单").Find("材料编码 = '" & r("材料编码") & "'","日期 Desc")
If dr1 IsNot Nothing AndAlso dr2 IsNot Nothing Then
If dr2("日期") > dr1("日期")
r("单价") = dr2("单价")
Else
r("单价") = dr1("单价")
End If
ElseIf dr1 IsNot Nothing Then
r("单价") = dr1("单价")
End If
如果这样写的可以,但出现需要输入一下才能执行,这如何解决?