Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
SUBSTRING
说明 | 从字符串中的指定位置开始,返回指定长度的子字符串。 |
语法 | SUBSTRING(expression, start, length) |
参数 | expression — 原字符串。 start — 起始位置,从1开始编号。 length — 返回长度。 |
例如:SUBSTRING([电话号码], 3, 9)
If([执行] = -1,round((number([停止日期])-number([开始日期]))*(round(([单价]*(round([剂量值]/[规格值] * Number(Left([用法],1))+0.2,0))+0.002),2)),2),round((number([停止日期])+1-number([开始日期]))*(round(([单价]*(round([剂量值]/[规格值] * Number(Left([用法],1))+0.2,0))+0.002),2)),2))
这是易表里的刷新公式,能否改成狐表函数用在表达式列?
因为易表跟狐表不大一样,刷新公式有IF函数....
是不是用IIF代替?
另外那个日期加减在表达式列里好象无法运用...
这么长,我宁愿用数据列加代码了。
如果用表达式:
1、if用iif代替。
2、round参考这个:
表达式并没有提供传统的四舍五入函数Round,我们只能用Convert函数来间接实现。
例如金额列原来的计算公式为:
[数量] * [单价] * (1 - [折扣])
为了保留两位小数,可以将公式改为:
Convert([数量] * [单价] * (1 - [折扣]) * 100, 'System.Int64') / 100
原理很简单:将计算结果乘以100,然后取整,最后除以100。
如果你要保留三位小数,将表达式中的100改为1000即可,其余类推。
If e.DataCol.Name = "停止日期" Then
e.datarow("日期相差")= Format(e.datarow("停止日期"), "dd") - Format(e.datarow("开始日期"), "dd")
end if
If([执行] = -1,round((number([停止日期])-number([开始日期]))*(round(([单价]*(round([剂量值]/[规格值] * Number(Left([用法],1))+0.2,0))+0.002),2)),2),round((number([停止日期])+1-number([开始日期]))*(round(([单价]*(round([剂量值]/[规格值] * Number(Left([用法],1))+0.2,0))+0.002),2)),2))
这是易表里的刷新公式
可以简化如下:
round((number([停止日期])-number([开始日期])+1+[执行])*(round(([单价]*(round([剂量值]/[规格值] * Number(Left([用法],1))+0.2,0))+0.002),2)),2)
同感.同感....