变量
变量有两种类型:域,临时变量,你可以在公式中使用域名作为变量如:FirstName
临时变量只能存在于公式中。它的作用范围就是它所在的公式,除了在公式中赋予给它的属性以外没有其他属性。创建一个临时变量的语法是:variableName := value
常量
常量类型
描述
文本型
用""标记的字符集,如:"joe.",注意:为了在文本串中用引号,用转义符"/",如:/""
数字型
数字0-9,能用(+和-),科学记数法和常量e
时间型
任何时间型的常量用([]),如:[98-2-31]
操作符
操作符类型
符号
例子
赋值
:=
Areacode:=@left(phone;3)
计算
乘号 * 除号 / 加号 + 减号
UnitPrice*3 TotalPrice/qty TotalPrice+Tax TotalPrice-Discount
比较
等于 = 不等于 != =! <> >< 小于< 小于等于 <= 大于 > 大于等于 >=
SELECT Year=1996 SELECT Month!="January" SELECT Age<70 SELECT Year<=1990 SELECT Age>30 SELECT Age>=21
串联
列表 : 文本 +
"Tricycle":"Mini-bike":"5-speed" CompanyName+",inc."
逻辑
否 ! 于 & 或 |
Status="Approved"&TargetMarket!="Children"
公式关键字
关键字语法
描述
例子
FIELD fieldname:=value
赋一个值给当前notes文档中的域,如果域不存在则创建一个,存在则覆盖该值。
FIELD CompanyName:=Company+"。inc"
REM ["remarks"]
注释
REM "12/15/95"
SELECT logicalValue
在视图,代理或复制公式中用来定义一个文档集
SELECT form="idea"
字符串处理函数介绍?
函数
描述
@propercase(string)
将字符串中的单词转换成字首大写的形式:每个单词的头一个字母大写,后面的其他字母小写。以下的样例将返回 Every Child Loves Toys. @ProperCase("every CHILD LOves toys")
@trim(strin)
从文本字符串中(或文本列表的每一个元素中)删除位于开头和结尾的空格,同时还删除多余的空格。以下的样例将返回 ROBERT SMITH。@Trim(@UpperCase("Robert Smith"))
@length(string)
返回文本字符串中字符的个数.该样例返回 45。@Length("The boy crossed the wide, but gentle, stream.")
@newline
在文本字符串中插入一个新行(回车)。下面公式返回 Hi There "Hi"+@NewLine+"There"
@matches(string;pattern)
用一个样本字符串去匹配一个字符串。因为样本字符串可以包含一定数量的通配符和逻辑符号,所以可以用较复杂的模式去匹配字符串。 该样例返回 0。 @Matches("A big test";"a?test")
@left
从左到右搜索字符串,并返回字符串中最左边的几个字符。 该样例返回"Len"。 @Left("Lennard Wallace";3)
逻辑操作
函数
操作
@if
@if(condition1;action1;condition2;action2;else-action)
如果满足条件1,则做action1,如果满足条件2,则做action2,否则做else-action.
注意: 1.该函数必须有奇数个参数。
2.总共可以加99个条件
3.可以嵌套
日期操作
函数
描述
@created
返回创建此文档时的时间-日期值。
@adjust(time-date; year;month;day;hour; month;day;hour;minute ;second)
按照指定的年、月、日、小时、分钟、秒来调整指定的时间-日期值。调整的值可正可负。
以下的样例将返回 09/2/97。 @adjust([06/30/95];2;2;2;0;0;0)
@today
返回当天的日期。
@month(time-date)
从指定的时间-日期中提取月份值
该样例返回 1。 @Month([1/15/88])
@Weekday(time-date)
算出一周中的某一天,返回一个表示这一天的数字。
下面样例返回 5(实际是星期六)。 Weekday([9/29/88])
@tomorrow
返回明天日期的时间-日期值。
算术操作
函数
描述
@Max(number;number)
给出两个数字,返回较大的那个数字。
下面样例返回 99;6;7;8
@Max(99:2:3;5:6:7:8)
@Max(number;number)
给定两个数字,返回较小的那一个。
以下的样例将返回 5;2;3;3
@Min(99:2:3;5:6:7:8)
@Round(number)
将指定的数字归整,结果为最接近它的一个数
该样例返回 1
@Round(1.499)
@Round(number;factor)
如果还指定了另外一个数字,就用它作为规整因子
如果称做 NumberOfEmployees 的域值是12338,则该样例返回12340
@Round(NumberOfEmployees;10)
@Sum(num;num;..)
在一组数字或数字列表中进行加法运算。
以下的样例将返回 3
@Sum( 1 : 2 )
列表操作
函数
描述
@Elements(list)
计算列表中文本、数字、时间-日期的个数。该函数总是返回数字以指明在列表中项目的个数。
如果 SalesForce 域中的列表是 "Rogers" : "Binney" : "Harris" : "Larson",则以下的样例将返回 4。" @Elements(SalesForce)
@Max(list;list)
给出两个数字列表,返回较大的那个数字列表。
@Member(value; stringlist)
给定一个值,在文本列表中找到该值的位置。
下面样例返回 0。 @Member("Sales"; "Finance":"Service":"Legal")"
@Subset(list;number)
从左到右搜索一个列,并返回您所指定数量的值。如果您指定了一个负数,@Subset 将从右到左搜索,但结果却是按从头到尾的次序排列。
以下的样例将返回 New Orleans;London。 @Subset("New Orleans":"London":"Frankfurt":"Tokyo"; 2)
数据转换
函数
描述
@Text(value)
将任意值转换成文本字符串。 如:@text(RetailPrice)
@TexttoNumber(string)
在可能的情况下,将文本字符串转换成数字。如: @texttonumber("32.95")
特殊函数
函数
描述
@Username
返回当前的用户名或服务器名。
如果用户名是层次结构名, @UserName 将以规范格式返回(其中包含 CN、OU、O 和 C 标识符)。 如果如果要返回缩写格式的名字(忽略标识符),请使用 @V3UserName。
@name([action];name)
用来裁剪层次结构名。可以用它将标准格式的名称进行缩写,将缩写名称扩展为它的标准格式,在名称中找到某一个部分,掉转部件的顺序以便用层次名称为一个视图分类。 如:@Name([CN];Author)
@AllChildren
包含父文档的所有满足选择标准的"答复"文档。
@AllDescendants
包含所有满足选择标准的父文档的答复文档以及答复的答复文档。
@IsResponseDoc
判断某个文档是否为答复文档。
@IsNewDoc
对于一个正在编辑的文档,指出该文档是否已经存盘
@IsText(value)
判断某个值是否为文本(或文本列表)。
@IsNumber(value)
判断某个值是否为一个数字(或数字列表)。
@Failure(string)
返回您给出的消息;当用于输入确认校验时,若输入的数值不符合校验条件,@Failure 将显示您给出的消息。
如:这个样例给出了输入校验公式。如果用户在"AreaCode"域中输入了大于 999 的数字,则返回一条错误信息"Area codes have only 3 digits"。 @If(AreaCode<999;@Success;@Failure(Area codes have only 3 digits")
@Success
返回 1(真)。在输入检查公式中将该函数与 @If 一起使用可以判断输入的值是否满足检查条件。
如:当"Price"域中的值小于100 时,以下的样例将返回 1 并允许文档保存。在输入检查公式中表示输入的数据正确。 @If(Price<100;@Success;@Failure(Price too large")