Foxtable(狐表)用户栏目专家坐堂 → 关于复杂的表达式,是否可以计算


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

主题:关于复杂的表达式,是否可以计算

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 13:31:00 [显示全部帖子]

居然碰到一个做纸箱的:

iif([纸制品名称]='箱夹七层板',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]='井字架',(([长]*[高]*2)+([宽]*[高]*2))*[每平方单价]/10000,IIF([纸制品名称]='纸桥',(([长]+[宽]+4)*([宽]+[高]+4))*[每平方单价]/10000,iif([纸制品名称]='五层箱',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]='七层箱',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]='七层橡筋箱',([长]+[宽]+8)*([宽]+[高]+4)*2*[每平方单价]/10000+[橡筋箱],iif([纸制品名称]='五层橡筋箱',([长]+[宽]+8)*([宽]+[高]+4)*2*[每平方单价]/10000+[橡筋箱],iif([纸制品名称]='三层内盒',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]='上下五层板',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]='上下箱夹板',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]='箱夹三层板',[长]*[宽]*[每平方单价]/10000,iif([纸制品名称]='dr七层箱',((([长]+[宽]+8)*([宽]+[高]+4))*2*[每平方单价])/10000,iif([纸制品名称]='十字架',[长]*[宽]*[每平方单价]/10000,Null)))))))))))))

把我的经典给你一下!

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 16:14:00 [显示全部帖子]

代码计算的话,分拆应该是这样的

 if e.datarow(纸箱名称")= "普通外箱" then
    e.datarow("规格_长") + e.datarow("规格_宽") + e,datarow("规格_宽") + e.datarow("规格_高")
end if

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 16:16:00 [显示全部帖子]

你那个纸箱名称列为什么全部是"普通外箱",计算方法不一样,系统认哪一个呢?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 17:16:00 [显示全部帖子]

你这个纸板型号呢?

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 17:30:00 [显示全部帖子]

Select Case e.DataCol.Name
    Case "纸箱名称","纸板型号"
        If e.DataRow.IsNull("纸箱名称")Then
            e.DataRow("纸板型号") = Nothing
            e.DataRow("规格_长") = Nothing
            e.DataRow("规格_宽") = Nothing
            e.DataRow("规格_高") = Nothing
            e.DataRow("单价") = Nothing
            e.DataRow("平方") = Nothing
            e.DataRow("数量") = Nothing
            e.DataRow("金额") = Nothing
        Else
            If e.DataRow("纸箱名称")="普通外箱"  Then
                If e.DataRow("纸板型号")="BC100" Then
                    e.DataRow("平方")=(e.DataRow("规格_长")*e.DataRow("规格_宽")*e.DataRow("规格_高"))*2/100000
                End If
            End If
        End If
End Select

在表事件DataColChanged中

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 17:32:00 [显示全部帖子]

看一下例子
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57602 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2011/5/3 19:54:00 [显示全部帖子]

我的刷新列是名称和版型。先刷新名称,后刷新版型的。

 回到顶部