以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]窗口表中新增临时列的表达式 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60332) |
-- 作者:chnfo -- 发布时间:2014/11/22 20:22:00 -- [求助]窗口表中新增临时列的表达式 我在窗口A中有一个Normal表,要在表中新增三列,A、P、V。 Dim t As Table = e.Form.Controls("Table1").Table If dt.DataCols.Contains("A") = False Then dt.DataCols.Add("A",Gettype(Double),"","数量") End If If dt.DataCols.Contains("P") = False Then dt.DataCols.Add("P",Gettype(Double),"","单价") End If If dt.DataCols.Contains("V") = False Then dt.DataCols.Add("V",Gettype(Double),"math.round([A] * [P] ,2)","合价") End If 这样为什么不行呢?表达式不能直接使用math.round? 但如果直接用 If dt.DataCols.Contains("V") = False Then dt.DataCols.Add("V",Gettype(Double),"A*P","合价") End If 这样又可以,咋个整法?
|
-- 作者:chnfo -- 发布时间:2014/11/22 20:25:00 -- 不好意思,看到了,有四舍五入的帮助 不过好象这样也不行啊 If dt.DataCols.Contains("V") = False Then dt.DataCols.Add("V",Gettype(Double),"Convert([A] * [P] * 100, \'System.Int64\') / 100 ","合价") End If 后面会被注释掉的
[此贴子已经被作者于2014-11-22 20:32:56编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/23 9:34:00 -- 测试没有问题啊 |
-- 作者:chnfo -- 发布时间:2014/11/23 9:50:00 -- dt.DataCols.Add("V",Gettype(Double),"Convert([A] * [P] * 100, \'System.Int64\') / 100 ","合价" 这里有一个注释符号,如果这样写,代码直接被注释掉了 |
-- 作者:有点甜 -- 发布时间:2014/11/23 9:52:00 -- 不可能,双引号里面的单引号不是注释 |
-- 作者:chnfo -- 发布时间:2014/11/23 11:12:00 -- 我在表达式中引入了一个全局变量 If dt.DataCols.Contains("V") = False Then dt.DataCols.Add("V",Gettype(Double),"Convert([A] * [P] * 10^Vars("Dot"), \'System.Int64\') / 10^Vars("Dot") ","合价") End If 这样就报出这个错误 编译错误:没有为“Public Function Add(ColumnName As String, DataType As System.Type, MaxLength As Integer, Expression As String, Caption As String) As DataCol”的参数“Expression”指定参数。 错误代码:dt.DataCols.Add("V",Gettype(Double),"Convert([A] * [P] * 10^Vars("Dot"), \'System.Int64\') / 10^Vars("Dot") ","合价") 是不是表达式中不能引用变量?
[此贴子已经被作者于2014-11-23 11:12:41编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/23 11:13:00 -- dt.DataCols.Add("V",Gettype(Double),"Convert([A] * [P] * 10^" & Vars("Dot") & ", \'System.Int64\') / 10^" & Vars("Dot"),"合价") |
-- 作者:chnfo -- 发布时间:2014/11/23 11:36:00 -- 啊,一时发晕………………,谢谢 |
-- 作者:chnfo -- 发布时间:2014/11/23 12:42:00 -- 再问: 如果表达式中的A列和P列也是在这个窗口AfterLoad事件中增加的临时列,就不能在其它的新增列中引用A和P列了吧?或者是不能使用乘方符号? 因为我在执行过程中,弹出来这个错误 无法设置列"V"的表达式,原因:表达式包含不支持的运算符“^”
[此贴子已经被作者于2014-11-23 12:42:15编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/23 14:11:00 -- 表达式没有 10 ^ 2 这种。
你计算好了以后,再加进去呗。 |