以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  表达式列为只读,请教  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=43351)

--  作者:CRM2013
--  发布时间:2013/12/5 9:44:00
--  表达式列为只读,请教

请教一下:

在datacolchanged中写了如下代码:用于自动计算小计列

If e.DataCol.Name = "零件价格" OrElse e.DataCol.Name = "数量" OrElse e.DataCol.Name = "商业折扣"  Then   
    e.DataRow("小计") = e.DataRow("数量") * e.DataRow("零件价格")  * e.DataRow("商业折扣")
End If

 

在表达式列中填写的表达式 为:[数量] * [零件价格] * (IsNull([商业折扣],1))

 

表属性的prepareedit 中

 

If e.Col.Name <> "小计" AndAlso e.Col.Name <> "数量"  Then
  e.Cancel = True
End If

 

但每次增加行或修改数量时报错:

.NET Framework 版本:2.0.50727.6407
Foxtable 版本:2013.10.13.1
错误所在事件:表,业务明细,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“小计”为只读。

 

 


--  作者:狐狸爸爸
--  发布时间:2013/12/5 9:48:00
--  

既然是表达式列,直接设置了表达式就行:

[数量] * [零件价格] * (IsNull([商业折扣],1))

 

不需要写代码了,删除代码。