Foxtable(狐表)用户栏目专家坐堂 → 如何根据客户报价及自设公式,计算产品单价


  共有11391人关注过本帖树形打印复制链接

主题:如何根据客户报价及自设公式,计算产品单价

帅哥哟,离线,有人找我吗?
jinruan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
如何根据客户报价及自设公式,计算产品单价  发帖心情 Post By:2012/1/12 11:27:00 [只看该作者]

如何根据客户报价及自设公式,结合录入的长、宽、高,计算出产品单价

 

 

见附件:

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公式计算.rar


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/1/12 12:40:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:公式计算.table

注意:

 

输入公式要规范,列名用方括号括起来,运算符号包括括号,应该是半角。


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/1/12 12:47:00 [只看该作者]

Select Case e.DataCol.Name
    Case "客户","公式"
        If e.DataRow.IsNull("客户") Or e.DataRow.IsNull("公式") Then
            e.DataRow("产品单价")=Nothing
        Else
            Dim dr As DataRow
            dr=DataTables("客户报价").Find("客户='" & e.DataRow("客户") & "'")
            If dr IsNot Nothing Then
                Dim r As DataRow = e.DataRow
                If r("公式")="公式1" Then
                    r("产品单价")=((r("长")+r("宽"))*(r("宽")+r("高"))*dr("报价"))/1000
                Else
                    r("产品单价")=(((r("长")+2)*(r("宽")+1))*((r("宽")+2)*(r("高")+1)))*dr("报价")/1000
                End If
            End If
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/1/12 12:47:00 [只看该作者]

DataColChanged

 表事件中执行,看看结果对不?

 回到顶部
帅哥哟,离线,有人找我吗?
jinruan
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/1/12 13:34:00 [只看该作者]

狐狸爸爸  这个答案很给力,Foxtable强悍!谢谢!

 

Select Case e.DataCol.name
     Case "客户"
        Dim dr As DataRow = DataTables("客户报价").Find("客户 = '" & e.DataRow("客户") & "'")
        If dr IsNot Nothing Then
            e.DataRow("报价") = dr("报价")
        End If
End Select
Select Case e.DataCol.name
      Case "客户","公式","长","宽","高"
         Dim dr As DataRow = DataTables("公式").Find("公式名称 = '" & e.DataRow("公式") & "'")
        If dr IsNot Nothing Then
            e.DataRow("金额") = Eval(dr("计算公式"),e.DataRow)
        End If
End Select

[此贴子已经被作者于2012-1-12 13:36:22编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
jinruan
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/1/12 13:36:00 [只看该作者]

Select Case e.DataCol.Name
    Case "客户","公式"
        If e.DataRow.IsNull("客户") Or e.DataRow.IsNull("公式") Then
            e.DataRow("产品单价")=Nothing
        Else
            Dim dr As DataRow
            dr=DataTables("客户报价").Find("客户='" & e.DataRow("客户") & "'")
            If dr IsNot Nothing Then
                Dim r As DataRow = e.DataRow
                If r("公式")="公式1" Then
                    r("产品单价")=((r("长")+r("宽"))*(r("宽")+r("高"))*dr("报价"))/1000
                Else
                    r("产品单价")=(((r("长")+2)*(r("宽")+1))*((r("宽")+2)*(r("高")+1)))*dr("报价")/1000
                End If
            End If
        End If
End Select
这个执行没问题,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
小猪鑫鑫
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/1/12 23:01:00 [只看该作者]

foxtable很强,顶


 回到顶部