﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-bpel4ws-文章分类-DOMINO</title><link>http://www.blogjava.net/bpel4ws/category/15199.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 09:36:41 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 09:36:41 GMT</pubDate><ttl>60</ttl><item><title>一些常用的公式</title><link>http://www.blogjava.net/bpel4ws/articles/69591.html</link><dc:creator>有点迷惑</dc:creator><author>有点迷惑</author><pubDate>Thu, 14 Sep 2006 03:30:00 GMT</pubDate><guid>http://www.blogjava.net/bpel4ws/articles/69591.html</guid><wfw:comment>http://www.blogjava.net/bpel4ws/comments/69591.html</wfw:comment><comments>http://www.blogjava.net/bpel4ws/articles/69591.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bpel4ws/comments/commentRss/69591.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bpel4ws/services/trackbacks/69591.html</trackback:ping><description><![CDATA[
		<p>访问用户环境 </p>
		<p>用户环境是包含数据库的服务器或工作站，数据库包括以下内容： 复制公式、由新邮件到达时或定时触发的代理、选择公式或列公式。否则，用户环境是用户运行公式的 Notes 工作站。<br />用户名可以是专有名称也可以是非专有名称，专有名称可以是规范或缩写的，使用 @Name 可更改用户名的格式。<br />以下函数返回或处理用户环境的信息。<br />函数 描述<br />@UserName 返回用户名或服务器名。<br />@Name([key]; name) 更改用户名的格式。关键字包含 [CN] 以从一个专有名字中解析出公共名，[Abbreviate] 缩写规范格式的专有名字，[Canonicalize] 与上述作用相反，[ToKeyword] 将名字各部分按相反顺序排序，用反斜杠分开（用于分类视图）。<br />@UserRoles 对于服务器上的数据库，返回当前用户的角色列表。<br />@MailDbName<br /><a id="more-44"></a><br />访问用户环境 </p>
		<p>用户环境是包含数据库的服务器或工作站，数据库包括以下内容： 复制公式、由新邮件到达时或定时触发的代理、选择公式或列公式。否则，用户环境是用户运行公式的 Notes 工作站。<br />用户名可以是专有名称也可以是非专有名称，专有名称可以是规范或缩写的，使用 @Name 可更改用户名的格式。<br />以下函数返回或处理用户环境的信息。<br />函数 描述<br />@UserName 返回用户名或服务器名。<br />@Name([key]; name) 更改用户名的格式。关键字包含 [CN] 以从一个专有名字中解析出公共名，[Abbreviate] 缩写规范格式的专有名字，[Canonicalize] 与上述作用相反，[ToKeyword] 将名字各部分按相反顺序排序，用反斜杠分开（用于分类视图）。<br />@UserRoles 对于服务器上的数据库，返回当前用户的角色列表。<br />@MailDbName 返回用户邮件数据库的服务器名和路径名。该 @function 计算出一个包含两元素的列表。<br />@OptimizeMailAddress(address) 从地址中删除无用的网络域。<br />@Platform 返回用户当前运行的平台：Macintosh、 NetWare、 OS2V1、 OS2V2、 UNIX、 Windows/16 或 Windows/32。<br />@Version 返回正在运行的 Notes 版本（字符串）。<br />@Password(string) 对字符串加密。加密后别人无法从中得到最初的字符串。 </p>
		<p>访问当前数据库和视图 </p>
		<p>可以直接访问正在运行公式的数据库（便捷图标除外，因为它没有数据库环境）。也可以在视图环境中直接访问正在运行公式的视图。同样，在文档环境中可直接访问打开文档的视图。<br />数据库和视图属性<br />下表列出返回数据库和视图属性的函数。<br />函数 描述<br />@DbManager 返回当前对数据库有“管理者”权限的用户、群组和服务器。返回一个列表。<br />@DbName 返回当前 Notes 服务器和数据库的名称。返回二个元素的列表。<br />@ViewTitle 返回当前视图的标题。<br />窗口标题和列公式 @function<br />许多 @function 提供了关于视图的答复层次和其他方面的信息。在视图中，主文档以 1、2、3 等编号。每组答复文档或答复的答复文档则有第二个和第三个层次的从 1 开始的编号。缺省情况下，完整的答复文档的编号以小数形式出现。例如：第三个主文档的第二个答复文档编号为 3.2，而它下面的第一个答复文档编号为 3.2.1。<br />这些函数仅工作于窗口标题和列公式中，有一些会被限制。返回值都是一个字符串。<br />函数 描述<br />@Responses 返回当前视图中当前文档的答复文档的编号（只限于窗口标题公式）。<br />@DocLevel 返回在当前视图中当前文档的级别。<br />@DocSiblings 返回与当前文档同级的文档编号（包含当前文档）。<br />@DocNumber 返回当前视图中的当前文档或分类的编号。<br />@DocNumber(sep) 同上，只是用 sep，而不是句点来分隔编号。<br />@DocNumber("") 同上，只是仅返回编号的最右边部分。<br />@DocParentNumber 返回当前视图中当前文档或分类的父文档或父分类的编号。<br />@DocParentNumber(sep) 同上，只是用 sep，而不是句点分隔编号。<br />@DocParentNumber("") 同上，只是仅返回编号的最右部分。<br />@DocDescendants 返回后续文档的编号。包含当前文档的子文档，子文档的子文档。<br />@DocDescendants(def) 同上，只是返回 def。在 def 中使用 % 以表示编号。<br />@DocDescendants(zero; def) 同上，只是如果没有后续文档的话则返回 zero。<br />@DocDescendants(one, zero; def) 同上，如果只有一个后续文档的话，则返回 one。<br />@DocChildren 返回当前文档的直接子文档的编号。<br />@DocChildren(def) 同上，仅返回 def。在 def 中使用 % 以表示编号。<br />@DocChildren(zero; def) 同上，只是如果没有后续文档的话，则返回 zero。<br />@DocChildren(one, zero; def) 同上，如果只有一个后续文档的话，则返回 one。<br />@IsCategory 如果当前行的当前域右边任何域是一个分类，则返回一个星号。<br />@IsCategory(True) 同上，只是返回 Frue 代替星号。<br />@IsCategory(True; False) 同上，但是如果没有分类域，则返回 False。<br />@IsExpandable 如果当前行是可展开的，则返回一个加号。<br />@IsExpandable(True) 同上，只是返回 True 代替加号。<br />@IsExpandable(True; False) 同上，但是如果当前行是不可展开的，则返回 False。 </p>
		<p>使用 @function 通过 LS:DO 访问外部数据库 </p>
		<p>以下 @function 通过 ODBC 访问外部数据库并返回一个值或值的列表：<br />@DbColumn 返回表的一列中的全部值，或者全部的不同的值。<br />@DbLookup 返回表的一列中通过关键字匹配选定的值。<br />@DbCommand 将一个命令传递给外部的数据库管理系统（DBMS）并返回结果。<br />@DbColumn 与 @DbLookup 都只能提取数据。它们不能增加、删除、修改数据或执行其他操作。@DbCommand 能提取数据或发送其他可以更改数据的 SQL 语句。LotusScript 提供了包括更新外部数据库的更加强大的功能。<br />前四个参数对于三个函数是同样的，通过 ODBC 建立访问数据库。这些参数是：<br />"ODBC" 是字符常量；或 "ODBC" : "NoCache"<br />定义在数据源表格中的数据源名称（在 Windows 中的 ODBC.INI）<br />用户标识符，两个用户标识符列表，或者一个空串，根据外部数据源而定<br />口令，两个口令列表，或者一个空串，根据外部数据源而定<br />(@DbColumn 和 @DbLookup) 要访问的表的名称<br />(@DbCommand) 要执行的命令<br />(@DbColumn 和 @DbLookup) 要访问的列的名称<br />处理由数据源返回的空数据的选项<br />(@DbLookup) 包含关键字的列名<br />(@DbLookup) 适当的数据类型的关键字值，或者是一个列表<br />(@DbColumn 和 @DbLookup) 两个元素的列表：“Distinct”作为关键字或空串；“Ascending”或“Descending”作为一个关键字<br />在需要用 IDS 和口令的地方，您可以指定空串并让用户在执行函数时提供它们。 </p>
		<p>使用 @function 通过 LS:DO 访问外部数据库 </p>
		<p>1. 该公式取得 MANUAL 表中的 PARTNO 列。<br />@DbColumn("ODBC";"Oracle";"";"";"MANUALS";"PARTNO";"":"Ascending")<br />2. 该公式从 MANUALS 表的行中取得 TITLE，在该行中 PARTNO 是 17-895A。<br />@DbLookup("ODBC";"Oracle";"";"";"MANUALS";"TITLE";"PARTNO";"17-895A")<br />3. 该公式从 MANUALS 表中的 ONHAND 列的数字值小于 100 的每行中取得 PARTNO 列值。<br />@DbCommand("ODBC";"Oracle";"";"";"SELECT PARTNO FROM MANUALS WHERE ONHAND 、!=、=!、&gt;、= 用来比较字符串。以下的函数用来判定字符串的长度和比较字符串：<br />函数 描述和用法<br />@Length (string) 以字符为单位返回字符串的长度。<br />@Length(stringlist) 以字符为单位，返回字符串列表中每个元素的长度。<br />@Matches (string; pattern) 判定两个字符串是否匹配。可以用通配符来扩展比较的范围。<br />@Like (string; pattern) 判定两个字符串是否匹配。遵循 ANSI SQL 标准。<br />@Like(string; pattern; esc) 与上面的一样只是多了一个转义字符。<br />@Matches @Matches 用“?”来匹配任意一个单独的字符，用“*”来匹配任意的字符序列，@Matches 使用“\”作为转义字符。<br />@Like 按照 ANSI X3.135-1992 标准，使用“_”（下划线）来匹配任意一个单独的字符，用“%”（百分号）来匹配任意的字符序列。 </p>
		<p>查找并提取子串 </p>
		<p>样例<br />以下函数查找并提取子串：<br />函数 描述<br />@Contains(string; sub) 判定一个字符串是否包含一个子串。<br />@Contains(string; list) 判定一个字符串是否包含一个列表中的子串。<br />@Begins(string; sub) 判定一个字符串是否以一个子串开始。<br />@Ends(string; sub) 判定一个字符串是否以一个子串结束。<br />@Left(string; n) 从一个字符串中提取最左边的 n 个字符。<br />@Left(string; sub) 从一个字符串中提取最左边的字符，直到一个子串为止，从左到右搜索。<br />@LeftBack (string; n) 从一个字符串中提取最左边的字符，直到从右边开始的第 n 个字符为止。<br />@LeftBack(string; sub) 从一个字符串中提取最左边的字符，直到一个子串为止，从右到左搜索。<br />@Right(string; n) 从一个字符串中提取最右边的 n 个字符。<br />@Right(string; sub) 从一个字符串中提取最右边的字符，直到一个子串为止，从左到右搜索。<br />@RightBack (string; n) 从一个字符串中提取最右边的字符，直到从左边开始的第 n 个字符为止。<br />@RightBack(string; sub) 从一个字符串中提取最右边的字符，直到一个子串为止，从左到右搜索。<br />@Middle(string; off; n) 从一个字符串中提取 n 个字符，从一个偏移量开始，从左到右搜索。<br />@Middle(string; sub; n) 从一个字符串中提取 n 个字符，从一个子串开始，从左到右搜索。<br />@Middle(string; off; sub) 从一个字符串中提取字符，从一个偏移量开始，到一个子串结束，从左到右搜索。<br />@Middle(string; sub; sub) 从一个字符串中提取字符，从一个子串开始，到另一个子串结束，从左到右搜索。<br />@MiddleBack(str; off; n) 从一个字符串中提取 n 个字符，从一个偏移量开始，从右到左搜索。<br />@MiddleBack(str; sub; n) 从一个字符串中提取 n 个字符，从一个子串开始，从右到左搜索。<br />@MiddleBack(str; off; sub) 从一个字符串中提取字符，从一个偏移量开始，到一个子串结束，从右到左搜索。<br />@MiddleBack(str; sub; sub) 从一个字符串中提取字符，从一个子串开始，到另一个子串结束，从右到左搜索。<br />@ReplaceSubstring(source; from; to) 在 source 中用 from 的内容替换 to 的内容。如果 from 和 to 都是列表，按次序替换对应的项目。<br />@Word(string; sep; n) 从 string 提取单词 n，其中单词是在指定的分隔符之间的文本。<br />@Word(list; sep; n) 从列表中的每个字符串中提取单词 n，其中单词是在指定的分隔符之间的文本。 </p>
		<p>修剪、重复、添加新行，并改变大小写 </p>
		<p>样例 </p>
		<p>以下函数修剪字符串、重复字符、添加新行（回车），并改变大小写：<br />函数 描述<br />@Trim(string) 从字符串中删除开头、结尾和多余的空格。<br />@Trim(list) 从字符串列表的每个元素中删除开头、结尾和多余的空格，并从列表中删除空白元素。<br />@Repeat(string , number) 将字符串重复若干次。<br />@NewLine 在文本字符串中插入一个新行（回车）。<br />@LowerCase(string) 将字符串中所有的大写字符转换成小写。<br />@UpperCase(string) 将字符串中所有的小写字符转换成大写。<br />@ProperCase 将字符串中每个单词的第一个字符转换成大写，并将其余的字符转换为小写。 </p>
		<p>执行算术运算 </p>
		<p>乘、除、加、减运算符（*/+-）。乘法和除法运算符的优先级高于加法和减法；运算顺序是从左到右。但可以使用括号更改运算顺序。以下列出的是算术运算函数。<br />函数 描述<br />@Abs(number) 计算一个数的绝对（无符号）值。<br />@Sign (number) 对于正数返回 1，对于负数返回 -1，对于零则返回 0。<br />@Sum(num; num; ...) 计算数字和数字列表的和。<br />@Integer(number) 去掉数字的小数部分，使它成为整数。<br />@Integer(numlist) 去掉数字列表所有元素的小数部分，使它们成为整数。<br />@Round(number) 对一个数字进行四舍五入。<br />@Round(number; factor) 以一个指定的因子规整数字。<br />@Round(numlist) 对数字列表中的每个数字进行四舍五入。<br />@Round(numlist; factor) 以一个指定的因子规整数字列表中的每个元素。<br />@Max(number; number) 取两个数中较大的一个。<br />@Max(numlist; numlist) 对两个数字列表进行矩阵式操作时，取两个数字中较大的一个<br />@Min(number; number) 取两个数中较小的一个。<br />@Min(numlist; numlist) 对两个数字列表进行矩阵式操作时，取两个数字中较小的一个。<br />@Modulo(number; number) 计算一个数字被第二个数字除后得出的余数。<br />@Modulo(numlist; numlist) 对两个数字列表进行矩阵式操作时，计算一个数字被第二个数字除后得出的余数。<br />@Power(base; exp) 指数计算。<br />@Sqrt (number) 计算平方根。<br />@Pi 取得圆周率。<br />@Log(number) 计算常用（以 10 为底）对数。<br />@Ln(number) 计算自然（以 e 为底）对数。<br />@Exp(number) 计算以 e 为底的指数。<br />@Random 返回一个 0 到 1 之间的随机数。<br />@Sin(angle) 计算角度的正弦（弧度）。<br />@Cos(angle) 计算角度的余弦（弧度）。<br />@Tan(angle) 计算角度的正切（弧度）。<br />@Asin(sine) 反正弦函数。<br />@Acos(cosine) 反余弦函数。<br />@Atan(tangent) 反正切函数。<br />@Atan2(x; y) 计算以 y/x 作为正切值的反正切函数。 </p>
		<p>答复列的公式 </p>
		<p>仅用于答复的列需要公式来生成总结答复文档的文本。<br />包含作者的信息<br />讨论数据库可以使用如下答复列的公式来显示答复文档的作者、日期和主题：<br />From + " added this comment: " + Subject + " (" + @Text(@Created) + ")"<br />按以下方式显示答复：<br />Stephanie Mahar added this comment: Great job! (10/10/97 04:43:15 PM)<br />跟踪文档状态<br />在雇员信息数据库中，答复列可以显示新雇员以及离职雇员的调查信息，作为“按雇员姓名”视图中常规的“雇员记录”的答复文档。下面公式根据答复文档使用的表单的不同，显示不同的消息，并且显示文档的邮递状态。<br />@If(Form = "Exit"; "Exit Form, "; "New Hire Information, ") + @If(Mailed = "Yes"; "mailed to employee " + @Text(@Date(PostedDate)); "not yet mailed")<br />如果答复文档使用 Exit 表单，那么答复行显示也许如下：<br />Exit Form, mailed to employee 08/26/97<br />如果答复文档使用 New Hire Information 表单，那么答复行显示也许如下：<br />New Hire Information, not yet mailed<br />跟踪答复的数目<br />可以使用 @DocDescendants 跟踪答复文档的数目，以便作者迅速知道收到多少答复文档。下面的主文档列（不是答复列）公式对于答复样式的视图非常有用。<br />Subject + " (" + @Name([CN]; From) + @DocDescendants(")"; ", % response)"; ", % responses)")<br />如果是主文档，那么列显示 Subject 域的内容、作者名称、答复以及答复的答复文档的数目。如果文档有一个答复，那么列显示“response”；否则显示“responses”。主文档行可作如下显示：<br />Need Help with Trade Show (Indy Montoya, 1 response)<br />Changing the Product Name (Sandy Braun, 2 responses) </p>
		<p>视图小程序编程<br />通过使用一些 @commands 命令可以对视图小程序编程。有以下命令：<br />@command 描述<br />ViewCollapse 折叠所选文档<br />ViewExpand 展开所选文档<br />ViewCollapseAll 折叠所有文档<br />ViewExpandAll 展开所有文档<br />ViewRefreshFields 刷新视图。<br />刷新时，视图小程序不删除标记为已删除的文档<br />MoveToTrash 使当前所选文档标记为已删除<br />EmptyTrash 永久删除标记为已删除的文档<br />Folder 将所选文档移动或拷贝到文件夹<br />RemoveFromFolder 从当前文件夹删除所选文档。</p>
<img src ="http://www.blogjava.net/bpel4ws/aggbug/69591.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bpel4ws/" target="_blank">有点迷惑</a> 2006-09-14 11:30 <a href="http://www.blogjava.net/bpel4ws/articles/69591.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>