以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  判断条件下的金额计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=30185)

--  作者:wqb1102
--  发布时间:2013/3/22 12:56:00
--  判断条件下的金额计算
数量有:数量-件,数量-包 两列,如何用代码进行判断:当数量-件 为空时,金额=数量-包*单价,否则  金额=数量-件*单价
[此贴子已经被作者于2013-3-22 13:45:36编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/3/22 14:42:00
--  

iif([数量-件] Is Null,[数量-包] * [单价], [数量-件] * [单价])

[此贴子已经被作者于2013-3-22 14:42:27编辑过]

--  作者:wqb1102
--  发布时间:2013/3/22 14:49:00
--  
多谢,但我想用在DataColChanged中
--  作者:wqb1102
--  发布时间:2013/3/22 15:27:00
--  
多谢了,我前面没有说清楚:“数量-包”是都有数据,当数量不足一件或只在“数量-包”列填写数据时“数量-件”为空。
--  作者:狐狸爸爸
--  发布时间:2013/3/22 16:16:00
--  

嘿嘿,看了你5楼的补充,我更加糊涂了,你看看这个行不行:

 

 

Select Case e.DataCol.Name
    Case "数量_包","数量_件"
        If e.DataRow.IsNull("数量_件") = False Then
            e.DataRow("金额") = e.DataRow("数量_件") * e.DataRow("单价")
        Else
            e.DataRow("金额") = e.DataRow("数量_包") * e.DataRow("单价")
        End If
End Select

 

如果还是不行的话,就重新表述一下问题吧,最好做个简单例子发上来

 

[此贴子已经被作者于2013-3-22 16:18:17编辑过]

--  作者:wqb1102
--  发布时间:2013/3/22 16:47:00
--  
狐爸,当数量为整件时,录入“数量-件”列,并转换为包数;当当数量不足一件或只在“数量-包”列填写数据时才直接在“数量-包”列中录入,此时“数量-件”列是空的。
--  作者:wqb1102
--  发布时间:2013/3/23 8:43:00
--  
6楼的公式算不出,有其他公式吗
--  作者:唐尸三摆手
--  发布时间:2013/3/23 8:47:00
--  
上传文件,不要连这个基本的事情都忘记了。
--  作者:wqb1102
--  发布时间:2013/3/23 12:25:00
--  
说明:1、在“进货”、“销售”表中,当数量为整件时,在“件”列中录入,然后根据“件*规格”录入“包"列;当数量不是整件时,直接在”包“列中录入。
        2、销售类别分:销售、退货,进货类别分:进货、退货。
问题:
一、”销售“表中,首先判断”件“列不为空时,金额=件*单价,否则:金额=包*单价。
二、在”仓库“表中,判断”进货“表中的进货类别是:进货或退货、”销售“表中的销售类别是:销售或退货来计算仓库库存数量:包。即
    1、包=包1(进货类别为进货时)+包2(销售类别是退货时)-包1(进货类别是退货时)-包2(销售类别是销售时)
    2、同时:件=包/规格,零包=包/规格的余数
想不使用列表达式,附件在11楼
[此贴子已经被作者于2013-3-23 12:34:34编辑过]

--  作者:wqb1102
--  发布时间:2013/3/23 12:25:00
--  
这个是新的附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table