Foxtable(狐表)用户栏目专家坐堂 → [求助]表达式错误,无法调用


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

主题:[求助]表达式错误,无法调用

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


加好友 发短信
等级:婴狐 帖子:18 积分:177 威望:0 精华:0 注册:2017/12/1 0:20:00
[求助]表达式错误,无法调用  发帖心情 Post By:2017/12/8 17:08:00 [只看该作者]

调用的目标发生了异常。

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.10.26.1图片点击可在新窗口打开查看
错误所在事件:表,订单明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“金额”为只读。

(发不了图片)


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/8 17:09:00 [只看该作者]

把金额列改成数据列

 

http://www.foxtable.com/webhelp/scr/2494.htm

 


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


加好友 发短信
等级:婴狐 帖子:18 积分:177 威望:0 精华:0 注册:2017/12/1 0:20:00
回复:(61623823)[求助]表达式错误,无法调用  发帖心情 Post By:2017/12/9 10:40:00 [只看该作者]

我的表达式为:
长|宽|面积|单位|数量|单价|金额|备注
现在面积和金额为表达式列,面积的公式为:IIF([单位] = '平方',[规格_长] * [规格_宽],null)金额的公式为:IIF([单位] = '平方',[规格_长] * [规格_宽],IIF([单位] = '米' or [单位] = '厘米',[规格_长],1)) * [数量] * [单价],
计算面积的时候都没有出现上面的情况,为什么计算金额的时候会出现上面的情况,我把金额改成数据列后,它就只计算:数量*单价的值,不懂,求教!

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106023 积分:539208 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/12/9 11:09:00 [只看该作者]

如果是写代码计算的,必须把金额改成数据列

把完整的出错事件代码贴出来看看,错误所在事件:表,订单明细,DataColChanged

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


加好友 发短信
等级:婴狐 帖子:18 积分:177 威望:0 精华:0 注册:2017/12/1 0:20:00
回复:(有点蓝)如果是写代码计算的,必须把金额改成...  发帖心情 Post By:2017/12/10 10:38:00 [只看该作者]

我把表达式列改成数据列后,得到的只是数量和单价的积,本来我是用一个IIF函数做的,为什么面积是一个表达式列,不会出现这个情况,面积也用了一个IIF函数,只不过金额是一个IIF函数嵌套



我的表为:
        长|宽|面积|单位|数量|单价|金额|备注        
        面积 在单位为平方的时候,等于长*宽,否则为零,,,
        金额 在单位为平方的时候,等于面积*数量*单价,
                单位为长度的时候,应该等于长*数量*单价,
                其他就为数量*单价
       现在面积和金额为表达式列,面积的公式为:IIF([单位] = '平方',[长] * [宽],null)金额的公式为:IIF([单位] = '平方',[长] * [宽],IIF([单位] = '米' or [单位] = '厘米',[长],1)) * [数量] * [单价],
计算面积的时候都没有出现上面的情况,为什么计算金额的时候会出现上面的情况,我把金额改成数据列后,它就只计算:数量*单价的值,不懂,求教!


最先出现的情况为:
调用的目标发生了异常。

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.10.26.1图片点击可在新窗口打开查看
错误所在事件:表,订单明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“金额”为只读。


为什么列“面积"没出现只为只读的情况

[此贴子已经被作者于2017/12/10 10:46:25编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/10 15:10:00 [只看该作者]

1、改成数据列;

 

2、datacolchanged事件写代码计算

 

Select e.DataCol.name
    Case "单位", "长", "宽", "数量"
        If e.DataRow("单位") = "平方" Then
            e.DataRow("金额") = e.DataRow("长") * e.DataRow("宽") * e.DataRow("数量") * e.DataRow("单价")
        ElseIf e.DataRow("单位") = "米" OrElse e.DataRow("单位") = "厘米" Then
            e.DataRow("金额") = e.DataRow("长")  * e.DataRow("数量") * e.DataRow("单价")
        End If
End Select


 回到顶部