Lotus 公式 (一)

来源:互联网 发布:中小企业银行贷款数据 编辑:程序博客网 时间:2024/04/29 06:51

Lotus 公式 ()

l        访问用户环境

用户环境是包含数据库的服务器或工作站,数据库包括以下内容: 复制公式、由新邮件到达时或定时触发的代理、选择公式或列公式。否则,用户环境是用户运行公式的 Notes 工作站。

用户名可以是专有名称也可以是非专有名称,专有名称可以是规范或缩写的,使用 @Name 可更改用户名的格式。

以下函数返回或处理用户环境的信息。

函数 描述

@UserName 返回用户名或服务器名。

@Name([key]; name) 更改用户名的格式。关键字包含 [CN] 以从一个专有名字中解析出公共名,[Abbreviate] 缩写规范格式的专有名字,[Canonicalize] 与上述作用相反,[ToKeyword] 将名字各部分按相反顺序排序,用反斜杠分开(用于分类视图)。

@UserRoles 对于服务器上的数据库,返回当前用户的角色列表。

@MailDbName 返回用户邮件数据库的服务器名和路径名。该 @function 计算出一个包含两元素的列表。

@OptimizeMailAddress(address) 从地址中删除无用的网络域。

@Platform 返回用户当前运行的平台:MacintoshNetWareOS2V1OS2V2UNIXWindows/16 Windows/32

@Version 返回正在运行的 Notes 版本(字符串)。

@Password(string) 对字符串加密。加密后别人无法从中得到最初的字符串。

l        访问当前数据库和视图

可以直接访问正在运行公式的数据库(便捷图标除外,因为它没有数据库环境)。也可以在视图环境中直接访问正在运行公式的视图。同样,在文档环境中可直接访问打开文档的视图。

数据库和视图属性

下表列出返回数据库和视图属性的函数。

函数 描述

@DbManager 返回当前对数据库有管理者权限的用户、群组和服务器。返回一个列表。

@DbName 返回当前 Notes 服务器和数据库的名称。返回二个元素的列表。

@ViewTitle 返回当前视图的标题。

l        窗口标题和列公式 @function

许多 @function 提供了关于视图的答复层次和其他方面的信息。在视图中,主文档以 123 等编号。每组答复文档或答复的答复文档则有第二个和第三个层次的从 1 开始的编号。缺省情况下,完整的答复文档的编号以小数形式出现。例如:第三个主文档的第二个答复文档编号为 3.2,而它下面的第一个答复文档编号为 3.2.1

这些函数仅工作于窗口标题和列公式中,有一些会被限制。返回值都是一个字符串。

函数 描述

@Responses 返回当前视图中当前文档的答复文档的编号(只限于窗口标题公式)。

@DocLevel 返回在当前视图中当前文档的级别。

@DocSiblings 返回与当前文档同级的文档编号(包含当前文档)。

@DocNumber 返回当前视图中的当前文档或分类的编号。

@DocNumber(sep) 同上,只是用 sep,而不是句点来分隔编号。

@DocNumber("") 同上,只是仅返回编号的最右边部分。

@DocParentNumber 返回当前视图中当前文档或分类的父文档或父分类的编号。

@DocParentNumber(sep) 同上,只是用 sep,而不是句点分隔编号。

@DocParentNumber("") 同上,只是仅返回编号的最右部分。

@DocDescendants 返回后续文档的编号。包含当前文档的子文档,子文档的子文档。

@DocDescendants(def) 同上,只是返回 def。在 def 中使用 % 以表示编号。

@DocDescendants(zero; def) 同上,只是如果没有后续文档的话则返回 zero

@DocDescendants(one, zero; def) 同上,如果只有一个后续文档的话,则返回 one

@DocChildren 返回当前文档的直接子文档的编号。

@DocChildren(def) 同上,仅返回 def。在 def 中使用 % 以表示编号。

@DocChildren(zero; def) 同上,只是如果没有后续文档的话,则返回 zero

@DocChildren(one, zero; def) 同上,如果只有一个后续文档的话,则返回 one

@IsCategory 如果当前行的当前域右边任何域是一个分类,则返回一个星号。

@IsCategory(True) 同上,只是返回 Frue 代替星号。

@IsCategory(True; False) 同上,但是如果没有分类域,则返回 False

@IsExpandable 如果当前行是可展开的,则返回一个加号。

@IsExpandable(True) 同上,只是返回 True 代替加号。

@IsExpandable(True; False) 同上,但是如果当前行是不可展开的,则返回 False

l        使用 @function 通过 LS:DO 访问外部数据库

以下 @function 通过 ODBC 访问外部数据库并返回一个值或值的列表:

@DbColumn 返回表的一列中的全部值,或者全部的不同的值。

@DbLookup 返回表的一列中通过关键字匹配选定的值。

@DbCommand 将一个命令传递给外部的数据库管理系统(DBMS)并返回结果。

@DbColumn @DbLookup 都只能提取数据。它们不能增加、删除、修改数据或执行其他操作。@DbCommand 能提取数据或发送其他可以更改数据的 SQL 语句。LotusScript 提供了包括更新外部数据库的更加强大的功能。

前四个参数对于三个函数是同样的,通过 ODBC 建立访问数据库。这些参数是:

"ODBC" 是字符常量;或 "ODBC" : "NoCache"

定义在数据源表格中的数据源名称(在 Windows 中的 ODBC.INI

用户标识符,两个用户标识符列表,或者一个空串,根据外部数据源而定

口令,两个口令列表,或者一个空串,根据外部数据源而定

(@DbColumn @DbLookup) 要访问的表的名称

(@DbCommand) 要执行的命令

(@DbColumn @DbLookup) 要访问的列的名称

处理由数据源返回的空数据的选项  

(@DbLookup) 包含关键字的列名

(@DbLookup) 适当的数据类型的关键字值,或者是一个列表

(@DbColumn @DbLookup) 两个元素的列表:Distinct作为关键字或空串;AscendingDescending作为一个关键字

在需要用 IDS 和口令的地方,您可以指定空串并让用户在执行函数时提供它们。

l        使用 @function 通过 LS:DO 访问外部数据库

1. 该公式取得 MANUAL 表中的 PARTNO 列。

@DbColumn("ODBC";"Oracle";"";"";"MANUALS";"PARTNO";"":"Ascending")

2. 该公式从 MANUALS 表的行中取得 TITLE,在该行中 PARTNO 17-895A

@DbLookup("ODBC";"Oracle";"";"";"MANUALS";"TITLE";"PARTNO";"17-895A")

3. 该公式从 MANUALS 表中的 ONHAND 列的数字值小于 100 的每行中取得 PARTNO 列值。

@DbCommand("ODBC";"Oracle";"";"";"SELECT PARTNO FROM MANUALS WHERE ONHAND <100")

l        转换数据类型

在对数据操作时类型必须是正确的。以下的函数用来转换数据和测试数据类型。

函数 描述

@Text(value) 将一个值转换为文本字符串。

@Text(value; format) 根据指定的格式将一个数字或时间-日期值转换成文本字符串。

@TextToNumber(string) 将文本字符串转换成一个数字。

@TextToTime(string) 将文本字符串转换成一个日期-时间值。

@IsText(value) 如果值是文本字符串或文本字符串列表,则返回(1)

@IsNumber(value) 如果值是数字或数字列表,则返回(1)

@IsTime(value) 如果一个值是时间-日期或时间-日期列表,则返回(1)

@Char(number) 将一个 IBM 代码页 850 代码转换为对应的字符。

l        连接、比较和判定长度

运算符 + 用来连接字符串。运算符 =<>!==!><<><= >= 用来比较字符串。以下的函数用来判定字符串的长度和比较字符串:

函数 描述和用法

@Length (string) 以字符为单位返回字符串的长度。

@Length(stringlist) 以字符为单位,返回字符串列表中每个元素的长度。

@Matches (string; pattern) 判定两个字符串是否匹配。可以用通配符来扩展比较的范围。

@Like (string; pattern) 判定两个字符串是否匹配。遵循 ANSI SQL 标准。

@Like(string; pattern; esc) 与上面的一样只是多了一个转义字符。  

@Matches @Matches ?来匹配任意一个单独的字符,用*来匹配任意的字符序列,@Matches 使用/作为转义字符。

@Like 按照 ANSI X3.135-1992 标准,使用_(下划线)来匹配任意一个单独的字符,用%(百分号)来匹配任意的字符序列。

 

原创粉丝点击