ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:41.62KB ,
资源ID:6667659      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6667659.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(lotus domino notes公式语言.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

lotus domino notes公式语言.docx

1、lotus domino notes公式语言公式编码指南一编写公式的方法一个公式中含有一条或多条按顺序执行的语句。根据与公式相关联的对象和其他标准的不同,公式可以在所选的文档上运行一次或多次(每个文档运行一次)。除了从公式返回以外,公式中没有循环和控制跳转的语句。公式中对条件执行路径也有限制。代理公式将在选定的文档上多次地、有条件地执行。您可以:编写可得出计算结果的公式以下公式都应该有最后结果:复制公式 必须得出结果为真 (1) 或假 (0),并且可以应用到数据库的每个文档上。表单公式 必须得出表单名称。选择公式 必须得出结果为真 (1) 或假 (0),并且可以应用到视图中的每个文档上。列公式

2、 必须得出一个可以转换成文本字符串的值。显示操作公式 必须得出真 (1) 或假 (0)。弹出式公式 必须得出一个文本串。窗口标题公式 必须得出一个文本或数字值,除非公式由一个任意类型的单独的域组成。区段存取公式 必须得出一个姓名或姓名列表。插入子表单公式 必须得出一个子表单的名称的文本值。区段标题公式 必须得出一个文本或数字值,除非公式由一个任意类型的单独的域组成。段落隐藏公式 必须得出真 (1) 或者假 (0)。缺省值公式 必须得出一个可以存放在当前域中的值。输入转换公式 必须得出一个可以存放在当前域中的值。缺省校验公式 必须得出是成功 (1) 还是失败 (0)。计算域公式 必须得出一个可以

3、存放在当前域中的值。关键字公式 必须得出一个可以存放在当前域中的值或值的列表。这些公式可以简单到只有一个域、常量或者函数,也可以包含很多语句、使用临时变量、更改域的内容或者产生一些附加效果。但不论如何,其最后一个语句必须是一个合适的值。如果关键字 SELECT 没有显式指定的话,它会加在一个逻辑语句之前,这个逻辑语句用来终止复制或选择公式。这些公式运行于数据库(复制公式)或视图(选择公式)的每一个文档上,以确定复制和查看过程中包括或不包括哪些文档。函数 All 返回一个真值因此公式“SELECT All”将包括所有文档。样例:编写得出结果的公式1. 此样例是标准讨论数据库中“From”域的缺省

4、值公式。它只包含一个返回用户姓名的函数。UserName2. 此样例是一个标准讨论数据库中“Subject”域的输入校验公式。它含有一个 If 函数,如果“Subject”是空的(用户未输入任何值),它将返回一个失败的值,反之则返回成功值。失败时还将显示一个消息。If(Subject = ; Failure(You must enter a subject for your document.; Success)3. 该样例是标准讨论数据库的“Memo”表单的窗口标题公式。它只有一个语句,但包含有嵌套的 If 命令。如果当前文档是新的,则窗口标题是“New Memo”。如果当前文档已经存在,并

5、有一个“Subject”域,而且该域非空,则窗口标题将取“Subject”域中的内容(如果文档带有附件,则标题前还会出现“”)。如果不存在“Subject”域或该域为空,则窗口标题为创建日期。If(IsNewDoc; New Memo; If(IsAvailable(Subject) & Subject != ; If(Attachments; * ; + Subject; Text(Created)编写执行操作的公式下列公式不产生一个最后的可用结果,但可以改变域值和产生附加动作:便捷图标公式 触发时执行一次。代理公式 触发时在一个数据库上执行。一个代理公式运行在数据库中所选的每个文档上,这些

6、文档由 UI 中指定的条件和公式中的 SELECT 关键字所决定。SELECT 关键字缺省是 SELECT All。操作公式 触发时在一个视图或表单中执行。按钮公式 触发时在一个表单、导航器或 RTF 域中执行。操作热点 触发时在一个表单、导航器或 RTF 域中执行。样例:编写执行操作的公式该代理样例将一个基于“Main”表单的文档中的“Address”域的“Wayside Street”替换成“Wayside Drive”。有效的操作是 FIELD Address 赋值语句。如果 Address 中含有“Wayside Street”,则新的 Address 的内容是将字符串“Wayside

7、 Street”左边的字符,加上字符串“Wayside Drive”,然后再加上 Address 中“Wayside Street”右边的字符。否则,Address 将被重置为它的当前值。SELECT Form. = Main Form;ws := Wayside Street;wd := Wayside Drive;FIELD Address := If(Contains(Address; ws); Left(Address; ws) + wd +Right(Address; ws); Address)处理列表列表就是一个可以包含多个同类型值的命名实体。列表出现在以下几种情况:允许多值的域可

8、能包含一个列表而非一个单值。某些函数返回一个列表。常量可以被指定为一个列表或者是单值。语法是多个单值用冒号分开;例如,London:New York:Tokyo 就是一个由三个元素构成的字符串列表常量。由于列表的连接运算具有最高的优先级,所以如果列表元素中的表达式是一个仅用于其自身的表达式的话,它就必须用括号括起来。例如,如果 3 为负数而 4 不是负数的话就应该写成 1:2-3):4,而不是 1:2:-3:4 。并列运算或交叉运算时的列表组合。列表限制了操作的范围,因为列表操作仅限于每一个列表元素。就象在一个循环中处理数组一样。以下函数是列表所特有的。函数 描述Elements(list)

9、确定列表元素的数量。Explode(string) 将文本字符串转换成一个文本列表。空格、逗号和分号用于分隔字符串的元素。Explode(string; separator) 与上面的函数一样,但第二个参数指定了字符串中的元素的分隔符。Explode(string; separator; empties) 与上面的函数一样,但是返回值为 True ,因为第三个参数包含空的列表元素,其中出现了连续的分隔符。Explode(date-range) 将一个日期范围转换成一个日期列表。参数必须是一个时间-日期值;返回值是文本列表。Implode(list) 将文本列表转换成文本字符串,用空格分隔各个元

10、素。Implode(list; separator) 与上面的函数一样,但是第二个参数指定了字符串中每个元素之间的分隔符。IsMember(string; list) 确定一个字符串是否为一个列表的成员。返回真 (1) 或假 (0)。IsMember(list1; list2) 确定一个列表是否被包含在另一个列表中。返回真 (1) 或假 (0)。IsNotMember(string; list) 确定一个字符串是否不是一个列表的成员。返回真 (1) 或假 (0)。IsNotMember(list1; list2) 确定一个列表是否不被包含在另一个列表中。返回真 (1) 或假 (0)。Keywo

11、rds(list1; list2) 在 list1 中找到与 list2 中的单词相匹配的单词。单词分隔符有 , ? ! ; : 。Keywords(list1; list2; separator) 与上面的函数一样,但第二个参数指定了单词的分隔符。Member(value; list) 确定一个值在字符串列表中的位置。Replace(list1; list2; list3) 将 list1 中与 list2 相匹配的值用 list3 中对应的值替换。Subset(list; n) 从列表中提取出 n 个值。用 -n 表示从右到左提取。Unique(list) 从字符串列表中删除重复的值。Un

12、ique 返回一个随机的,唯一的文本值。公式编码指南二样例:使用列表1 (并列运算)该样例用并列算法把两个数字列表相加。结果列表中有四个值 11、22、27 和 44。list1 := 10 : 20 : 30 : 40;list2 := 1 : 2 : (-3) : 4;list3 := list1 + list2;result := Text(list1) + + + Text(list2) + = + Text(list3);Prompt(OKCANCELLIST; Result; ; ; result)2 (交叉运算)该样例用交叉算法将两个列表连接起来。结果列表中有 12 个值:Blu

13、e Sedan、Blue Coupe、Blue Van、Blue Truck、Red Sedan 等等最后是 Yellow Truck。cars := Sedan : Coupe : Van : Truck;colors := Blue : Red : Yellow;result := colors + *+ cars;Prompt(OKCANCELLIST; Result; ; ; result)3 (Elements) 如果“Categories”域中没有元素,此例将显示一条消息,如果有的话则显示列表。If(Elements(Categories) = 0; Prompt(OK; Cate

14、gories; No categories;Prompt(OKCANCELLIST; Categories; ; ; Categories)4 (Explode) 该样例使用缺省的分隔符空格、逗号和分号,把一个字符串分离成一个列表。结果列表中的值是:Paris、London、Chicago 和 Seoul。cityList := Explode(Paris London,Chicago;Seoul;Prompt(OKCANCELLIST; List of cities; ; ; cityList)5 (Explode) 该样例使用分隔符逗号和分号将一个字符串常量分离成一个列表。结果列表中的值为

15、:Paris、London、New York 和 Hong Kong。New York 和 Hong Kong 没有分离成 New、York、Hong 和 Kong,这是因为没有将空格作为分隔符。cityList := Explode(Paris,London,New York;Hong Kong; ,;Prompt(OKCANCELLIST; List of cities; ; ; cityList)6 (Explode) 该样例在 London 和 New York 之间有一个空条目。如果第三个参数是 False 或者被忽略,那么多个连续的分隔符将被看作一个。请确信逗号是连续的,没有被空格

16、分隔。cityList := Explode(Paris,London,New York;Hong Kong; ,; True);Prompt(OKCANCELLIST; List of cities; ; ; cityList)7 (Implode) 该样例将一个列表常量组合到一个字符串变量中,用空格(缺省)作为分隔符。结果字符串中的值为:Minneapolis Detroit Chicago。city := Minneapolis : Detroit : Chicago;cityString := Implode(city);Prompt(OK; Imploded string; city

17、String)8 (Implode) 该样例将一个列表常量组合到一个字符串列表中,用逗号和空格作为分隔符。结果字符串中的值为:Minneapolis, Detroit, Chicago。city := Minneapolis : Detroit : Chicago;cityString := Implode(city; , ;Prompt(OK; Imploded string; cityString)9 (Implode) 该样例使用冒号作为分隔符将一个列表域分离成一个字符串。如果 Categories 域中的输入是 Minneapolis, Detroit, Chicago 则结果为:Mi

18、nneapolisetroit:Chicago 。Prompt(OK; Categories; Implode(Categories; :)10 (IsMember) 该代理样例检查所选的文档,看 Categories 列表中是否有 Adjusted,如果有,Categories 将不变化。如果没有,Adjusted 将被添加到 Categories 列表中。FIELD Categories := If(IsMember(Adjusted; Categories); Categories; Explode(Implode(Categories; ; + ;Adjusted; ;);SELECT

19、 All11 (IsNotMember) 该样例检查所选文档,看 Categories 列表中是否有 Adjusted 和 Signed off。如果没有,则两者都被加入到 Categories 列表中。如果两者都已存在,则 Categories 维持原状。FIELD Categories := If(IsNotMember(Adjusted : Signed off; Categories); Explode(Implode(Categories; ; + ;Adjusted;Signed off; ; Categories);SELECT All12 (Keywords) 该样例查找在 C

20、ities 域中用到了哪个关键字。keywords := Keywords(Cities ; Paris : Moscow : Tokyo : Boston;Prompt(OK; Keywords; keywords)13 (Member) 该样例让用户从一个列表中选择一个值,并显示该值在列表中的编号。cars := Sedan : Coupe : Van : Truck;car := Prompt(OKCANCELLIST : NOSORT; Cars; Pick one; Sedan; cars);n := Member(car; cars);Prompt(OK; Your selecti

21、on is .; Number + Text(n)14 (Replace) 该样例将 colors 列表中的“red”替换成“scarlet”并将“blue”替换成“turquoise”。colors := red : blue : yellow : blue : black : red;from := red : blue;to := scarlet : turquoise;result := Replace(colors; from; to);Prompt(OKCANCELLIST : NoSort; Replacement list; ; ; result)15 (Subset) 该样例

22、将 New Orleans, London 和 Frankfurt 放到 first3 中,并将 Singapore 和 Sydney 放到 last2 中。cities := New Orleans : London : Frankfurt : Singapore :Sydney;first3 := Subset(cities; 3);last2 := Subset(cities; -2);Prompt(OKCANCELLIST : NoSort; First three; ; ; first3);Prompt(OKCANCELLIST : NoSort; Last two; ; ; las

23、t2)16 (Unique) 该样例返回一个有四个元素的列表:red, blue, yellow 和 black。colors := red : blue : yellow : blue : black : red;result := Unique(colors);Prompt(OKCANCELLIST : NoSort; Unique list; ; ; result)公式编码指南三使用条件语句If 可以使您根据条件的真假执行不同的语句。这个条件通常是值和值的比较,但也可以是一个常量、一个变量或者一个函数的结果。例如:如果当前视图是“By Author”,则 ViewTitle = By A

24、uthor 为真。如果 Categories 至少有一个元素,Elements(Categories) 0 为真。1 用在条件中时表示真。True 和 Yes 都返回 1。如果条件为真,则比较运算和判断条件的函数返回 1 。0 用在条件中时表示假。False 和 No 都返回 0。如果条件为假,则比较运算和判断条件的函数返回 0 。If 语句有奇数个参数,必须至少有三个,例如:条件为第一个参数,如果 If 有多个条件的话,此后每隔一个参数就是一个条件。条件为真时,执行的是第二个参数中的语句,如果 If 有多个条件,则第二个参数以后的每隔一个参数都是一个可执行的语句。条件为假时执行最后一个参数中

25、的语句。最简单的 If 语句有如下的形式:If(condition; true statement; false statement)三个条件的 If 语句有如下形式:If(condition1; true1; condition2; true2; condition3; true3; false)If 函数从左到右依次计算,遇到第一个为真的条件就执行对应的语句(也就是接下来的那个参数中的语句)。此后就不再执行任何 If 中的语句了。如果没有一个条件为真,则执行最后一个参数中的语句。真值语句和假值语句的形式根据其前后关系的不同而有些变化:如果 If 语句是公式中最后一条需要得出结果的语句,则真

26、值和假值语句必须得出一个计算结果。如果 If 语句是赋值语句右边的部分,则真值和假值语句必须能得出一个可以存放在左边的域或临时变量中的值。否则,真值和假值语句必须产生一个操作。If 中的真值和假值语句不能包含一个赋值语句。赋值语句左边的部分只能出现在一个公式的最外层。以下语法形式是错误的:If(condition; variable := value1; variable := value2)必须写成:variable := If(condition; value1; value2)If 语句是可以嵌套的。嵌套的 If 语句对于解决公式语言有限的逻辑结构问题是很有帮助的,但它会导致复杂的语法表

27、达。Do 函数可以使您在一个条件下执行多条语句。样例:使用条件语句1. 该代理的例子将 Categories 中元素的数量与 0 比较。如果域中有元素,则不作任何改变(设置成自己的值)。如果域中没有元素,则设置成一个常量字符串。FIELD Categories := If(Elements(Categories) 0; Categories; To be supplied .;SELECT All2. 此窗口标题的样例首先检查 IsNewDoc 的返回值。如果文档是新的,则窗口标题设置成文本常量“New Topic”。如果文档已经存在,并且当前视图是“AuthorView”的话,窗口标题设置为

28、“Subject”域中的内容。否则,窗口标题就是“Subject”域的内容加上一个表示答复文档数目的字符串。StandardTitle := Subject + DocDescendants( (No Responses); (1 Response); (% Responses);If(IsNewDoc; New Topic; ViewTitle = AuthorView; Subject; StandardTitle)公式编码指南四编写消息和取得用户输入的方法您可以通过以下技术与用户进行交互:使用 Prompt 编写消息用以下形式的 Prompt 编写消息,与用户交流。Prompt(OK;

29、title; prompt) 显示一个信息对话框,标题文本在对话框的顶部,提示文本在对话框的主体部分。Prompt(OKCANCELLIST : NOSORT; title; prompt; default; choices) 将显示一个对话框,标题文本在对话框的顶部,提示文本在对话框的主体部分,选择文本列表在提示文本的下面。这种形式的 Prompt 主要用于取得输入信息,但也可以用于显示。最后一个参数必须是一个文本列表。prompt 和 default 可以为空。然而,如果该语句不是公式的最后一条语句,而且用户单击了“Cancel”的话,则接下来的公式便不再执行了。如果您想将列表排序的话就不

30、要指定 NOSORT 。非文本值必须用 Text 转换成文本才能用作 Prompt 的参数。文本值可以是常量、临时变量、域或者表达式。样例:使用 Prompt 编写消息1. 该样例在对话框中编写一个作为标题的文本常量和一个文本表达式。表达式是文本常量和已转换成文本的日期-时间值的组合。Prompt(OK; Current time and date; The date is + Text(Now; D0S0 + . + The time is + Text(Now; T0S1 + .2. 该样例编写一个文本常量作为标题。而对话框的内容是一个文本常量,后面跟一个多值域中的值。Prompt(OKCANCELLIST : NoSort; Field offices; Current field offices are located in the following cities:; ; Field_offices)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1