以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 数据列与表达式列 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=50336) |
-- 作者:1234567 -- 发布时间:2014/5/5 8:47:00 -- 数据列与表达式列 金额列等于单价列*数量列。 如果把金额列设为数据列,该如何写代码? |
-- 作者:Bin -- 发布时间:2014/5/5 8:51:00 -- 利用DataColChanged事件 if e.datacol.name="单价" orelse e.datacol.name="数量" then if e.datarow.isnull("单价")=false andalso e.datarow.isnull("数量")=false then e.datarow("金额")=e.datarow("单价")*e.datarow("数量") end if end if
|
-- 作者:liuxiang16 -- 发布时间:2014/5/5 8:58:00 -- 也想知道。 |
-- 作者:Bin -- 发布时间:2014/5/5 9:01:00 -- 看2楼 这些帮助都有介绍的. |
-- 作者:1234567 -- 发布时间:2014/5/5 9:33:00 -- 表达式改成数据式
表达式 (3.14 * (IsNull([材料直径],0) / 2) * (IsNull([材料直径],0) / 2)* IsNull([圆柱体高度],0) + IsNull([材料长度],0) * IsNull([材料宽度],0) * IsNull([材料高度],0) ) * 7.8 / 1000000
表达式改成数据式后不能达到上述结果 If e.DataCol.name="材料直径" OrElse e.DataCol.name="圆柱体高度"OrElse e.DataCol.name="材料长度" OrElse e.DataCol.name="材料宽度" OrElse e.DataCol.name="材料高度" Then |
-- 作者:有点甜 -- 发布时间:2014/5/5 9:38:00 -- 是没达到效果?试试这样,再看看帮助文档,记得重置列
If e.DataCol.name="材料直径" OrElse e.DataCol.name="圆柱体高度" OrElse e.DataCol.name="材料长度" OrElse e.DataCol.name="材料宽度" OrElse e.DataCol.name="材料高度" Then
http://www.foxtable.com/help/topics/1469.htm
[此贴子已经被作者于2014-5-5 9:37:46编辑过]
|
-- 作者:1234567 -- 发布时间:2014/5/5 9:58:00 -- ok |
-- 作者:1234567 -- 发布时间:2014/5/5 10:24:00 -- e.datarow("金额")=e.datarow("单价")*e.datarow("数量") 希望如果数量列为空值,就默认为1,怎么处理? |
-- 作者:有点甜 -- 发布时间:2014/5/5 10:38:00 -- e.datarow("金额") = e.datarow("单价") * IIF(e.datarow.IsNull("数量"), 1, e.datarow("数量")) |