Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共12 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:单价自动显示

1楼
佛光普照 发表于:2011/3/18 20:53:00
各位帮一下忙,材料基础表和入库表中的单价,自动在库存表中进行显示出来,要求入库单没有的单价,自动从基础表读入,对于入库表的单价的日期超过材料基础表的日期,自动从入库表中读入单价,表达式如何写
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table

2楼
qtcks 发表于:2011/3/18 21:38:00

搞的这么复杂根本不合理,

获取信息的来源最好采用唯一制度,其他地方需要调用与修改都方便很多,也容易扩展。代码也简单很多

3楼
mr725 发表于:2011/3/18 22:33:00

表达式只能在表达式列中来写,你又没有表达式列,怎么写呢? 

 

用代码这样看看:

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

4楼
佛光普照 发表于:2011/3/19 8:37:00

非常感谢

5楼
狐狸爸爸 发表于:2011/3/19 9:28:00

我在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

6楼
佛光普照 发表于:2011/3/19 12:09:00
又出现一个问题,假设入库单的价格有两个,要显示最近入库的单价,在库存表中自动显示,该如何解决
7楼
佛光普照 发表于:2011/3/19 12:18:00

入库单价格随市场一直在变,那该如何解决,请各位帮忙

8楼
狐狸爸爸 发表于:2011/3/19 12:34:00

好办,建议你参考一下下面的帮助,里面有说明如何找出最近一条记录:

http://help.foxtable.com/topics/0396.htm

尝试自己修改一下我给你的代码,如果搞不定,再发帖提问,我帮你写一下。

9楼
佛光普照 发表于:2011/3/19 19:38:00
搞不定,请师傅帮我写一下
10楼
佛光普照 发表于:2011/3/19 20:58:00

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

如果这样写的可以,但出现需要输入一下才能执行,这如何解决?

共12 条记录, 每页显示 10 条, 页签: [1] [2]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03320 s, 3 queries.