Top Banner
bc FormCalc 用户手册 Adobe® LiveCycle® Designer Version 8.0
97

FormCalc User Referencesendsms.cn/download/FormCalc.pdf · 2020. 10. 30. · 该操作有时会导致意想不到的结果。FormCalc 提供第38页中的“Round” 函数返回给定的近似数字

Feb 03, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • bc

    FormCalc 用户手册

    Adobe® LiveCycle® DesignerVersion 8.0

  • © 2006 Adobe Systems Incorporated。保留所有权利。

    Adobe® LiveCycle® Designer 8.0 FormCalc User Reference for Microsoft® Windows®July 2006。

    2006 十月

    如果本指南是与包含最终用户许可协议的软件一起分发,则本指南以及其中所说明的软件受许可协议的约束,只能在符合许可协议中所述的条件下才可使用和复制。 除了许可协议中所允许的范围外,未经 Adobe Systems Incorporated 事先书面许可,不得将本指南的任何部分进行复制、存储在检索系统中、或以任何形式或手段 (电子、机械、录制等等)传送。 请注意本指南的内容受版权法的保护,即使其不是与包含最终用户许可协议的软件一起分发。

    该参考内容仅提供信息用途,服从无公告改变,并且 Adobe Systems Incorporated 不承担解释义务。 本指南的内容仅供参考,以后若有更改,恕不另行通知,不应将此理解为 Adobe Systems Incorporated 的责任。

    请记住,您准备纳入您项目中的现存的插图或图像可能受版权法保护。 未经授权将这些材料合并到您的新工作中可能将侵犯版权所有者的权益。 请确保已从版权所有者处获取了所需的许可。

    本软件包含的示例材料或示例表单中引用的任何公司名称和公司标志仅用于举例,并无意针对任何真实的单位。

    Acrobat、 Adobe 标志、 LiveCycle 和 Reader 是 Adobe Systems Incorporated 在美国和/或其它国家的注册商标或商标。

    JavaScript 是 Sun Microsystems, Inc 在美国和其它国家的商标。

    Microsoft 和 Windows 是 Microsoft Corporation 在美国和 / 或其它国家的注册商标或商标。

    所有其它的商标由其各自所有者所有。

    本产品包括 Apache Software Foundation (http://www.apache.org/) 开发的软件。

    Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA。

    对美国政府最终用户通知。 本软件和文档如 48 C.F.R. ß2.101 中所定义是 " 商用品 ",由 " 商用计算机软件 " 和 " 商用计算机软件文档 "组成,这些术语在 48 C.F.R. ß12.212 或 48 C.F.R. ß227.7202 中使用。 与 48 C.F.R. ß12.212 或 C.F.R. ßß227.7202-1 至 227.7202-4 一致 (凡适用),这个商用计算机软件和商用计算机文档许可给美国政府最终用户: (a) 只作为商用品 (b) 所授予的权利与遵守这个软件的Adobe 标准商业协议中所述条款和条件的所有其它最终用户的权利相同。 根据美国版权法保留未发表权利。 Adobe Systems Incorporated, 345 Park Avenue, San Jose, CA 95110-2704, USA。对美国政府最终用户,Adobe 同意遵守所有可用的机会平等法律,如果合适的话,要包括 Executive Order 11246, Vietnam Era Veterans Readjustment Assistance Act of 1974 (38 USC 4212) 中的第 402 节, Rehabilitation Act of 1973 中的第 503 节,以及 41 CFR regulations 中的 60-1 到 60-60,60-250, 和 60-741 部分。以上所包含的积极的行为条款和规章应参考合并。

    http://www.apache.org/

  • 3

    目录

    前言........................................................................................................................................................ 6本指南内容............................................................................................................................................................... 6本指南服务对象....................................................................................................................................................... 6相关文档 ................................................................................................................................................................... 6

    1 FormCalc 介绍 ..................................................................................................................................... 7关于 LiveCycle Designer 脚本.................................................................................................................................. 7

    2 语言参考 ............................................................................................................................................... 8构建块........................................................................................................................................................................ 8文字............................................................................................................................................................................ 8操作符................................................................................................................................................................ 10注释 .................................................................................................................................................................... 10关键字................................................................................................................................................................ 11标志符................................................................................................................................................................ 12行结束符............................................................................................................................................................ 12空白 .................................................................................................................................................................... 13

    表达式...................................................................................................................................................................... 13简单表达式........................................................................................................................................................ 14赋值 .................................................................................................................................................................... 16逻辑或................................................................................................................................................................ 16逻辑与................................................................................................................................................................ 16

    一元表达式............................................................................................................................................................. 17相等与不等表达式........................................................................................................................................... 17关系表达式........................................................................................................................................................ 18If 表达式............................................................................................................................................................. 19While 表达式 ..................................................................................................................................................... 20For 表达式 ......................................................................................................................................................... 20Foreach 表达式.................................................................................................................................................. 21Break 表达式...................................................................................................................................................... 22Continue 表达式................................................................................................................................................ 22

    变量.......................................................................................................................................................................... 23引用语法 ................................................................................................................................................................. 23属性与方法调用..................................................................................................................................................... 27内建函数调用......................................................................................................................................................... 28

    3 函数列表(按字母顺序)................................................................................................................. 294 数学函数 ............................................................................................................................................. 32

    Abs............................................................................................................................................................................ 32Avg............................................................................................................................................................................ 33Ceil............................................................................................................................................................................ 33Count........................................................................................................................................................................ 34Floor ......................................................................................................................................................................... 34Max........................................................................................................................................................................... 35Min ........................................................................................................................................................................... 36Mod .......................................................................................................................................................................... 37

  • Adobe LiveCycle Designer 目录FormCalc 用户手册 4

    Round....................................................................................................................................................................... 38Sum........................................................................................................................................................................... 39

    5 日期和时间函数................................................................................................................................. 40构建日期和时间..................................................................................................................................................... 40区域 .................................................................................................................................................................... 40时间原点............................................................................................................................................................ 44日期格式............................................................................................................................................................ 44时间格式............................................................................................................................................................ 44日期和时间图片格式....................................................................................................................................... 45

    Date .......................................................................................................................................................................... 48Date2Num................................................................................................................................................................ 49DateFmt.................................................................................................................................................................... 50IsoDate2Num........................................................................................................................................................... 50IsoTime2Num.......................................................................................................................................................... 51LocalDateFmt........................................................................................................................................................... 51LocalTimeFmt .......................................................................................................................................................... 52Num2Date................................................................................................................................................................ 53Num2GMTime ........................................................................................................................................................ 53Num2Time............................................................................................................................................................... 54Time.......................................................................................................................................................................... 55Time2Num............................................................................................................................................................... 55TimeFmt ................................................................................................................................................................... 56

    6 财务函数 ............................................................................................................................................. 58Apr............................................................................................................................................................................ 58CTerm ...................................................................................................................................................................... 59FV ............................................................................................................................................................................. 60IPmt .......................................................................................................................................................................... 61NPV.......................................................................................................................................................................... 62Pmt ........................................................................................................................................................................... 62PPmt ......................................................................................................................................................................... 63PV............................................................................................................................................................................. 64Rate ........................................................................................................................................................................... 65Term ......................................................................................................................................................................... 66

    7 逻辑函数 ............................................................................................................................................. 68Choose...................................................................................................................................................................... 68Exists ......................................................................................................................................................................... 69HasValue .................................................................................................................................................................. 69Oneof........................................................................................................................................................................ 70Within....................................................................................................................................................................... 71

    8 其它函数 ............................................................................................................................................. 72Eval ........................................................................................................................................................................... 72Null ........................................................................................................................................................................... 73Ref............................................................................................................................................................................. 73UnitType .................................................................................................................................................................. 73UnitValue ................................................................................................................................................................. 74

    9 字符串函数 ......................................................................................................................................... 76At .............................................................................................................................................................................. 76Concat ...................................................................................................................................................................... 77

  • Adobe LiveCycle Designer 目录FormCalc 用户手册 5

    Decode ..................................................................................................................................................................... 78Encode...................................................................................................................................................................... 78Format ...................................................................................................................................................................... 79Left ............................................................................................................................................................................ 80Len ............................................................................................................................................................................ 81Lower ........................................................................................................................................................................ 82Ltrim ......................................................................................................................................................................... 82Parse.......................................................................................................................................................................... 83Replace ..................................................................................................................................................................... 83Right ......................................................................................................................................................................... 84Rtrim......................................................................................................................................................................... 85Space......................................................................................................................................................................... 85Str.............................................................................................................................................................................. 86Stuff........................................................................................................................................................................... 86Substr ........................................................................................................................................................................ 87Uuid.......................................................................................................................................................................... 88Upper ....................................................................................................................................................................... 89WordNum................................................................................................................................................................ 89

    10 URL 函数 ............................................................................................................................................. 91Get ............................................................................................................................................................................ 91Post ........................................................................................................................................................................... 91Put............................................................................................................................................................................. 93

    索引...................................................................................................................................................... 95

  • 6

    前言

    Adobe® LiveCycle® Designer 8.0 提供了一组能使表单开发者建立智能商业文档的工具。表单开发者可以通过合并计算和脚本使表单使用者更为充分地体会表单。例如,您可以用简单计算自动更新订单上的成本,或者您可以用更高级的脚本根据用户区域修改表单外观。

    为了方便创建计算,LiveCycle Designer 向用户提供了 FormCalc。FormCalc 是 Adobe 创建的以通用电子表单应用程序为模型的简单计算语言。FormCalc 对那些很少或没有编写脚本经验的用户来说简单易操作。它遵从其它脚本语言通用的规则和惯例,因此有经验的表单开发者将发现他们有和使用 FormCalc 相关的技巧。

    本指南内容本指南针对要使用 LiveCycle Designer 在表单中合并 FormCalc 计算的表单开发者。指南根据函数类别组织章节,提供对 FormCalc 函数的参考。本指南还介绍了 FormCalc 语言和组成 FormCalc 表达式的构建块。

    本指南服务对象本指南向对使用 FormCalc 语言创建用以增强 LiveCycle Designer 中创建的表单设计的计算有兴趣的表单开发者提供信息帮助。

    相关文档关于在您的表单中使用 FormCalc 计算的其它信息,请参阅 LiveCycle Designer 帮助中的“创建计算和脚本”。

    若您需要更多关于 FormCalc 的技术信息,可在 Adobe Solutions Network (ASN) 网站参考 Adobe XML Forms 2.1 Specification。

  • 7

    1 FormCalc 介绍FormCalc 是一种简单而有效的以通用电子表格软件为模型的计算语言。其目的是帮助快速有效的进行表单设计,而不需要传统的表单技术或语言知识。FormCalc 新用户可以使用几个内建函数快速创建表单以节省执行计算,验证和其它验证的时间。这样,表单开发者可以在设计时创建根据所遇到数据得出交互结果的基本表单智能。

    FormCalc 中的内建函数覆盖了很大的范围,包括数学、日期和时间、字符串、财务、逻辑和网络函数。这些区域表明了表单中经常出现的数据类型,并且这些函数提供了快速方便的而有效的数据操作方式。

    关于 LiveCycle Designer 脚本在 LiveCycle Designer 中,FormCalc 是所有脚本位置的默认脚本语言,JavaScript 脚本为其替换语言。脚本发生在附加于每个表单对象的各种事件上,并且您可以在交互表单中使用 FormCalc 和 JavaScript™ 混合脚本。然而,若您正在使用基于服务器的程序,例如 LiveCycle Forms,创建在互联网浏览器上查看的表单,某些表单对象事件的 FormCalc 脚本将不显示到 HTML 表单上。该功能用于防止用户使用已完成表单时出现因特网浏览器错误。

  • 8

    2 语言参考构建块

    FormCalc 语言包含大量组成 FormCalc 表达式的构建块。每个 FormCalc 表达式都是这些构建块的某个组合序列。

    第 8页中的“文字”

    第 10 页中的“操作符”

    第 10 页中的“注释”

    第 11 页中的“关键字”

    第 12 页中的“标志符”

    第 12 页中的“行结束符”

    第 13 页中的“空白”

    文字文字是传送到 FormCalc 处理形成的全部数值基础的常数值。数字和字符串是文字的两个一般类型。

    数字文字

    一个数字文字是由一个或多个以下字符组成的数字序列: 一个整数,一个小数点,一个纯小数,一个指数符号 ("e" 或 "E") 和一个可选的带符号的指数值。 这些都是数字文字的示例:

    -12

    1.5362

    0.875

    5.56e-2

    1.234E10

    省略数字文字中的整数或纯小数部分中的任一个都有可能的,但不会两者都省略。另外,在纯小数部分您可以省略小数点或指数,但不能两者都没有。

    所有数字文字在内部转换成 Institute of Electrical and Electronics Engineers (IEEE) 64 位二进制数值。然而 IEEE 数值只能表示有限数字值,因此某些数值无法以二进制分数表示。这种情况与某些数值,例如 1/3 不能用小数精确表示类似(该小数需要无限位小数位数以准确表示)。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 文字 9

    不等值的二进制表示的数值通常是在指数之前有超过 16 个有效数字的数字文字。为与 IEEE 标准一致,FormCalc 近似这些数值到近似可表示的 IEEE 64-bit 数值。例如,以下值:

    123456789.012345678

    近似到(最接近)值:

    123456789.01234567

    然而第二个示例则不同,取数字文字。

    99999999999999999

    近似到(最接近)值:

    100000000000000000

    该操作有时会导致意想不到的结果。FormCalc 提供第 38 页中的“Round” 函数返回给定的近似数字到给定的小数位数。当给定数字刚好在两个可表示的数字之间时近似为离零远的数值。即正数向上近似,负数向下近似。 例如:Round(.124, 2)

    返回 0.12,

    Round(.125, 2)

    返回 0.13。

    照此规则会得出:

    Round(.045, 2)

    返回 0.05。

    然而 IEEE 754 标准规定数字文字 0.045 近似成 0.0449999999999999。该近似值更接近 0.04,而不是 0.05。

    因此,

    Round(.045, 2)

    返回 .04。

    这同样符合 IEEE 754 标准。

    IEEE 64 bit 数值支持如 NaN(不是数字), +Inf (正无穷), 和 -Inf (负无穷)这样的表示形式。FormCalc 不支持在 NaN,+Inf,或 Inf 这些错误中断中得到错误的传送到表达式的余数。

    字符串文字

    一个字符串文字是在一个引号中的 Unicode 字符序列。例如:

    "The cat jumped over the fence.""Number 15, Main street, California, U.S.A"

    字符串文字 "" 定义了一个称为空字符串的空文本字符序列。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 操作符 10

    要在字符串中嵌入一个引号,您必须在引号之前放置一个反斜线符号(\)。

    例如: "The message reads: \"Warning: Insufficient Memory\""

    所有 Unicode 字符都有一个等价 6 字符逸出序列,它由 \u 以及跟随的四个十六进制数字组成。在任意文字字符串中,使用等值 Unicode 逸出序列表示包括控制符在内的任意字符是可能的。例如:

    "\u0047\u006f\u0066\u0069\u0073\u0068\u0021"“u000d" _(回车)“\u000a" _(换行)

    操作符FormCalc 包含大量操作符:一元、乘法、加法、关系、相等、逻辑和赋值操作符。

    FormCalc 操作符具有几个等值记忆操作符关键字。这些关键字操作符只要 FormCalc 表示式植入到 HTML 和 XML 源程序正文就有用,其中符号 " 小于 "() 和 " 与 "(&) 预定义的意思必须排除。下表列出了所有 FormCalc 操作符,在适当的地方指明了符号和记忆形式。

    注释注释是 FormCalc 不执行的代码部分。 通常注释包含解释特殊代码段用途的信息和说明。FormCalc 运行时忽略注释中存储的所有信息。

    操作符类型 表示符

    加 +

    除 /

    等于 == eq ne

    逻辑 与 & and

    逻辑 或 | or

    乘 *

    关系 < lt (less than)> gt (greater than)= ge (greater than or equal to)

    减 -

    一元 -

    +not

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 关键字 11

    您可以使用一个分号 (;) 或一对斜线 (//) 指定注释。 在 FormCalc 中注释从开始位置到下一行终点结束。

    例如:

    // This is a type of commentFirst_Name="Tony"Initial="C" ;This is another type of commentLast_Name="Blue"

    对事件中所有 FormCalc 计算的注释

    当您在 "PDF 预览 " 标签预览表单,或查看最终 PDF 时,对某一特定事件中所有 FormCalc 计算的注释会生成错误 要求每项 FormCalc 计算都返回一个数值,且 FormCalc 不考虑注释为数值的情况。

    为防止加注释的 FromCalc 代码返回错误,您必须执行以下步骤之一:

    从事件中删除加注释的代码

    添加一个表达式,使数值返回事件中的 FormCalc 代码

    为防止表达式的数值产生您的表单所不想要结果,可使用下列表达式之一:

    由一个单字符组成的简单表达式,如下例:

    // First_Name="Tony"// Initial="C"// Last_Name="Blue"//// The simple expression below sets the value of the event to zero.0

    保持对象值不变的赋值表达式。如果加注释的 FormCalc 代码位于计算事件中,可使用此类型的表达式防止对象的实际值被改变。如下例所示:

    // First_Name="Tony"// Initial="C"// Last_Name="Blue"//// The assignment expression below sets the value of the current// field equal to itself.$.rawValue = $.rawValue

    关键字FormCalc 中的关键字是保留字并且区分大小写。关键字用作存取器、表达式部分、特殊数字文字和操作符。

    字符名称 表示符

    注释 ;//

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 标志符 12

    下表列出了 FormCalc 的关键字。您表单设计上的对象不要以这些关键字命名。

    标志符标志符是一个指示函数或方法名称的无限长字符序列。标志符以以下字符中的一个开始:

    字母字符(基于 Unicode 字母分类)

    下划线 (_)

    美元符号 ($)

    感叹号 (!)

    FormCalc 标志符区分大小写。即大小写不同的同一组字符表示不同的标志符。

    以下是有效标志符示例:

    GetAddr$primary_item!dbresult

    行结束符行结束符用于分隔行和改善可读性。

    下表列出了有效的 FormCalc 行终点:

    and endif in step

    break endwhile infinity then

    continue eq le this

    do exit lt throw

    downto for nan upto

    else foreach ne var

    elseif func not while

    end ge null

    endfor gt or

    endfunc if return

    字符名称 表示符

    标志符 A..Z,a..z$!_

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 空白 13

    空白空白字符把各种对象和数学运算分隔开。这些字符有利于改善可读性并且在 FormCalc 处理过程中不相关。

    表达式表达式列表由文字、操作符、注释、关键字、标志符、行结束符和空白组成,即使该列表只包含一个表达式。通常列表中的每个表达式解析为数值,并且整个列表数值是该列表最后一个表达式的值。

    例如考虑某表单设计上的以下两个域:

    评估每个域的表达式列表之后 Field1 和 Field2 的数值都是 50。

    FormCalc 把组成表达式列表的各种表达式类型分成以下几种:

    第 14 页中的“简单表达式”

    第 16 页中的“赋值”

    第 16 页中的“逻辑或”

    第 16 页中的“逻辑与”

    字符名称 Unicode 字符

    回车 #xDU+000D

    换行 #xA

    D;

    字符名称 Unicode 字符

    Form Feed #xC

    Horizontal Tab #x9

    Space #x20

    Vertical Tab #xB

    域名 计算 返回

    Field1 5 + Abs(Price)"Hello World"10 * 3 + 5 * 4

    50

    Field2 10 * 3 + 5 * 4 50

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 简单表达式 14

    第 17 页中的“一元表达式”

    第 17 页中的“相等与不等表达式”

    第 18 页中的“关系表达式”

    第 19 页中的“If 表达式”

    第 20 页中的“While 表达式”

    第 20 页中的“For 表达式”

    第 21 页中的“Foreach 表达式”

    第 22 页中的“Break 表达式”

    第 22 页中的“Continue 表达式”

    简单表达式大多数 FormCalc 表达式基本形式是操作符、关键字和文字组成的逻辑串组。例如这些简单表达式:

    2"abc"2 - 3 * 10 / 2 + 7

    每个 FormCalc 表达式按照传统操作顺序解析为一个值,即使该顺序在表达式语法中不明显。例如以下表达式集,当应用到表单设计上的对象时会产生相同的结果:

    表达式 等价于 返回

    "abc" "abc" abc

    2 - 3 * 10 / 2 + 7 2 - (3 * (10 / 2)) + 7 -6

    10 * 3 + 5 * 4 (10 * 3) + (5 * 4) 50

    0 and 1 or 2 > 1 (0 and 1) or (2 >1) 1 (true)

    2 < 3 not 1 == 1 (2 < 3) not (1 == 1) 0 (false)

    优先级 操作符

    最高 =

    (Unary) - , + , not

    * , /

    + , -

    < , , >= , lt , le , gt , ge

    == , , eq , ne

    & , and

    最低 | , or

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 简单表达式 15

    转换操作数

    如果给定操作中的一个或多个操作数与期望的操作类型不匹配,FormCalc 将转换该操作数使与需要类型匹配。怎样转换取决于操作需要的操作数类型。

    数字操作

    执行包含非数字操作数的数字操作时,该非数字操作数首先改进为它的等价数字。若非数字操作数字无法转换为数字值,则设为 0。当转换 null 值操作数到数字时,其值始终为零。

    下表提供了一些转换非数字操作数的示例:

    布尔操作

    执行非布尔操作数的布尔操作时,该非布尔操作数首先转换为它的等价布尔数。若该非布尔操作数无法转换为非零值,它的值为 true (1) ;否则为 false (0)。当转换 null 值操作数到布尔值时,该值始终为 false (0)。例如以下表达式:

    "abc" | 2

    结果为 1。即,false | true = true, 然而

    if ("abc") then10else20endif

    结果为 20。

    字符串操作

    在非字符串操作数上执行字符串操作时,该非字符串操作数使用其作为一个字符串的值先将其转换成字符串。当转换 null 值操作数到字符串时,其值始终为 null 字符串。例如以下表达式:

    concat("The total is ", 2, " dollars and ", 57, " cents.")

    表达式 等价于 返回

    (5 - "abc") * 3 (5 - 0) * 3 15

    "100" / 10e1 100 / 10e1 1

    5 + null + 3 5 + 0 + 3 8

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 赋值 16

    结果为 "total is 2 dollars and 57 cents".

    注意 :在表达式评估过程中若中间步骤产生了 NaN,+Inf,或 Inf,FormCalc 就生成错误中断并传送该错误到其它表达式。 像这样该表达式的值将始终为 0。例如:

    3 / 0 + 1

    结果为 0。

    赋值赋值表达式将给定引用语法的属性设置为一个简单表达式的值。例如:

    $template.purchase_order.name.first = "Tony"

    此处设置表单设计对象 "first" 的值为 Tony。

    有关使用引用语法的更多信息,请参阅第 23 页中的“引用语法”。

    逻辑或若至少有一个操作数为 true (1) 时,逻辑或表达式返回 true (1),若操作数都为 false (0),则返回 false (0)。若两个操作数为 null,表达式返回 null。

    以下是使用逻辑或表达式的示例:

    逻辑与若两个操作数都为 true(1),逻辑与表达式返回 true(1),若至少有一个操作数为 false(0),则返回 false(0)。若两个操作数为 null,表达式返回 null。

    以下是使用逻辑与表达式的示例:

    表达式 表示字符

    逻辑或 |or

    表达式 返回

    1 or 0 1 (true)

    0 | 0 0 (false)

    0 or 1 | 0 or 0 1 (true)

    表达式 表示字符

    逻辑与 &and

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 一元表达式 17

    一元表达式一元表达式根据使用的一元操作符返回不同的结果。

    注意 : null 操作数的算术负值生成 null,而其逻辑否则生成布尔值 true。 这由常识即可证明: 若 null 意味着没东西,则 "非没有东西 " 就应该是有东西。

    以下是使用一元表达式的示例:

    相等与不等表达式相等与不等表达式返回操作数的相等比较结果。

    使用相等操作符时以下特殊情况也适用:

    表达式 返回

    1 and 0 0 (false)

    0 & 0 1 (true)

    0 and 1 & 0 and 0 0 (false)

    表达式 表示字符 返回

    一元表达式 - 操作数的算术负值,或操作数为 null 时返回 null。.

    + 操作数的算术值(不变),或操作数为 null 时返回 null。

    not 操作数的逻辑否。

    表达式 返回

    -(17) -17

    -(-17) 17

    +(17) 17

    +(-17) -17

    not("true") 1 (true)

    not(1) 0 (false)

    表达式 表示字符 返回

    等于 == eq 操作数相同返回 True (1),不同返回 false (0)。

    不等于 ne 操作数不同返回 True (1),相同返回 false (0)。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 关系表达式 18

    若操作数为 null,则执行 null 比较。两个操作数都为 null 时比较方法相同,有一个操作数不为 null 时比较方法不同。

    若操作数为引用,当引用相同的对象时操作数比较方法相同,当引用不同的对象时比较方法不同。

    若两个操作数都是字符串,操作数执行区分区域的词典字符串比较。否则,若它们都不为 null,操作数转换为数字值并执行数字比较。

    以下是使用等于和不等于表达式的示例:

    关系表达式相关表达式返回操作数相互比较的布尔型结果。

    使用关系操作符时以下特殊情况也适用:

    若操作数为 null,则执行 null 比较。当操作数都为 null 且相关操作数是小于或等于或者大于或等于时比较方法相同,否则不同。

    若两个操作数都是字符串,操作数执行区分区域的词典字符串比较。否则,若它们都不为 null,操作数转换为数字值并执行数字比较。

    表达式 返回

    3 == 3 1 (true)

    3 4 1 (true)

    "abc" eq "def" 0 (false)

    "def" ne "abc" 1 (true)

    5 + 5 == 10 1 (true)

    5 + 5 "10" 0 (false)

    表达式 表示字符 返回

    关系 < lt 第一个数小于第二个数时返回 True (1),第一个数大于第二个数时返回 false (0)。

    > gt 第一个数大于第二个数时返回 True (1),第一个数小于第二个数时返回 false (0)。

    = ge 第一个数大于或等于第二个数时返回 True (1),否则,返回 false (0)。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 If 表达式 19

    以下是使用相关表达式的示例:

    If 表达式if 表达式是一个条件声明,评测给定简单表达式为真时,返回与该真值对应的一列表达式的结果。若初始简单表达式为 false (0),FormCalc 检查 elseif 和 else 条件的真假并返回它们对应的表达式列的结果。

    以下是使用 if 表达式的示列:

    表达式 返回

    3 < 3 0 (false)

    3 > 4 0 (false)

    "abc" "abc" 1 (true)

    12 >= 12 1 (true)

    "true" < "false" 0 (false)

    表达式 语法 返回

    If if ( simple expression ) then

    list of expressions

    elseif ( simple expression ) then

    list of expressions

    else

    list of expressions

    endif

    返回与 if 表达式有效条件关联的表达式列的结果。

    在 if 表达式部分您不必有 elseif(...) 或 else 声明,但是您必须以 endif 表达式结束。

    表达式 返回

    if ( 1 < 2 ) then

    1

    endif

    1

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 While 表达式 20

    While 表达式While 表达式是一个评测给定简单表达式的反复声明或循环。如果评测结果为 true (1) ,则 FormCalc 反复检查 do 条件并返回它们对应的表达式列的结果。如果结果为 false (0) , 则控件转到下一个声明。

    While 表达式特别适合需要条件重复的情况。相反,需要无条件重复的情况经常最适合使用 for 表达式。

    在下例中,对列于 list1 中不等于 3 的所有 XML 元素,使用 addItem 方法将元素的数值从 XML文件添加到下拉列表中:

    var List = ref(xfa.record.lists.list1)var i = 0while ( List.nodes.item(i+1).value ne "3")do$.addItem (List.nodes.item(i).value,List.nodes.item(i+1).value)i = i + 2endwhile

    For 表达式For 表达式是一个条件重复声明或循环。

    For 表达式特别适合需要无条件重复的循环情况。相反,需要条件重复的情况经常最适合使用 while 表达式。

    For 表达式的值就是经过评估的上个评估列表的值,即 false (0)。

    if ( "abc" > "def") then

    1 and 0

    else

    0

    endif

    0

    if ( Field1 < Field2 ) then

    Field3 = 0

    elseif ( Field1 > Field2 ) then

    Field3 = 40

    elseif ( Field1 = Field2 ) then

    Field3 = 10

    endif

    随 Field1 和 Field2 的值变化。例如,若 Field1 为 20, Field2 为 10,那么该表达式设 Field3 为 40。

    表达式 返回

    表达式 语法 返回

    While while ( simple expression ) do

    expression list

    endwhile

    表达式列的结果与 do 条件关联。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 Foreach 表达式 21

    For 条件对 FormCalc 控制循环动作的变量进行初始化。

    在 upto 变体中,循环变量的数值自起始表达式到终止表达式以步进表达式增量重复计算。如果省略步进表达式,则步进增量默认值为 1。

    在 downto 变体中,循环变量的数值将自起始表达式到终止表达式以步进减量重复计算。如果省略步进表达式,则步进减量默认值为 -1。

    循环的重复数由终止表达式的值控制。在每次重复之前,计算终止表达式并将其与循环变量相比较。如果结果为 true (1) ,则对表达式列表进行评估。在每次评估之后,计算步进表达式并将其添加到循环变量。

    在每次重复之前,计算终止表达式并将其与循环变量相比较。另外,在 do 条件的每次评估之后,计算步进表达式并将其添加到循环变量。

    当起始表达式超过终止表达式时,for 循环终止。如果使用 upto 变体,起始表达式可在向上方向超过终止表达式;如果使用 downto 表达式,起始表达式也可在向下方向超过终止表达式。

    在下例中,对列于 list1 中的所有 XML 元素,使用 addItem 方法将元素的数值从 XML 文件添加到下拉列表中:

    var List = ref(xfa.record.lists.list1)for i=0 upto List.nodes.length - 1 step 2 do$.addItem (List.nodes.item(i).value,"")endfor

    Foreach 表达式Foreach 表达式对其参数列表中的每个数值重复整个表达式列表。

    Foreach 表达式的值就是经过评估的上个表达式列表的值,如果未输入循环,即为 zero (0)。

    只执行一次的 in 条件(在声明循环变量后)控制着循环的重复。在每次重复前,从参数列表中为循环变量指定连续值。参数列表不得为空。

    在下例中,只有“显示”的 XML 元素数值被添加到 foreach 下拉列表中:

    表达式 语法 返回

    For for variable = start expression(upto | downto ) end expression

    (step step expression ) doexpression list

    endfor

    注意 :起始和终止表达式都必须是简单表达式。

    表达式列的结果与 do 条件关联。

    表达式 语法 返回

    Foreach foreach variable in( argument list )doexpression list

    endfor

    注意 :使用逗号隔开参数列表中的一个以上的简单表达式。

    经过评估的上个表达式列表的值,如果未输入循环,即为 zero (0)。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 Break 表达式 22

    foreach Item in (xfa.record.lists.list1.display[*]) do$.addItem(Item,"")endfor

    Break 表达式Break 表达式使最内部包含 while、for、或 foreach 表达式的循环立即退出。控件将转到中止的循环后面的表达式。

    Break 表达式的值总是 zero (0) 。

    在下例中,在 while 循环中放置了 if 条件来检查当前值是否等于 "Display data for 2" 。如为 true,则执行 break 并终止循环继续。

    var List = ref(xfa.record.lists.list1)var i=0while (List.nodes.item(i+1).value ne "3") do$.addItem(List.nodes.item(i).value,List.nodes.item(i+1).value)i = i + 2if (List.nodes.item(i) eq "Display data for 2" thenbreakendifendwhile

    Continue 表达式Continue 表达式使最内部包含while、for、或 foreach 表达式的循环进行下一次重复。

    Continue 表达式的值总是 zero (0) 。

    下例的目的是将 XML 文件的数值置入下拉列表。 如果当前 XML 元素的值为 "Display data for 3",则 while 循环通过 break 表达式退出。 如果当前 XML 元素的值为 "Display data for 2",则脚本向变量 i (计数器) 添加 2,同时循环立即进入其下一循环。 当当前 XML 元素的值为 "Display data for 2" 时,最后两行被忽略。

    表达式 语法 返回

    Break break 将控件转到中止的循环后面的表达式。

    表达式 语法 返回

    Continue continue 当用于 while 表达式时,控件转到 while 条件。当用于 for 表达式时,控件转到 step 表达式。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 变量 23

    var List = ref(xfa.record.lists.list1)var i = 0while (List.nodes.item(i+1).value ne "5") doif (List.nodes.item(i) eq "Display data for 3") then breakendifif (List.nodes.item(i) eq "Display data for 2" then i=i+2continueendif$.addItem(List.nodes.item(i).value,List.nodes.item(i+1).value)i=i+2endwhile

    变量在您的计算中,FormCalc 允许您创建和操作存储数据的变量。您给每一个创建的变量指定的名称必须是唯一的标志符。

    例如,以下 FormCalc 表达式定义 username 变量并设文本域的值为 username 的值。

    var userName = "Tony Blue" TextField1.rawValue = userName

    您可以用相同的方式引用您在 "表单属性 "对话框变量标签中定义的变量。 使用表单变量 salutation 和 name 并通过 Concat 函数为文本域设置数值。

    TextField1.rawValue = Concat(salutation, name)

    注意 :您使用 FormCalc 创建的变量将代替您在 " 表单属性 "对话框 " 变量 " 标签中定义的相似名称的变量。

    引用语法FormCalc 提供通过使用引用语法到表单设计对象属性和值的访问。以下示例演示了分配和检索对象值: Invoice_Total.rawValue = Invoice_SubTotal.rawValue * (8 / 100)

    在这里引用语法 Invoice_Total 将 Invoice.Total * (8 / 100) 的值赋予域 Invoice_Total 。

    在表单设计上下文中,完全合格的引用语法可以访问一个表单设计上的所有对象。

    为使访问对象特性和数值更为容易, FormCalc 包含了快捷键以减少创建引用所需的工作。下表概述了 FormCalc 的引用语法快捷键。

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 引用语法 24

    表示法 说明

    $ 引用当前域或对象,如本例所示:

    $ = "Tony Blue"

    上例将当前域或对象的值设置为 "Tony Blue"。

    $data 表示根数据模型, xfa.datasets.data 。例如:

    $data.purchaseOrder.total

    等价于:

    xfa.datasets.data.purchaseOrder.total

    $event 表示当前表单 object 事件。 例如:

    $event.name

    等价于:

    xfa.event.name

    $form 表示根表单模型 xfa.form 。例如:

    $form.purchaseOrder.tax

    等价于:

    xfa.form.purchaseOrder.tax

    $host 表示主机对象。 例如:

    $host.messageBox("Hello world")

    等价于:

    xfa.host.messageBox("Hello world")

    $layout 表示根布局模型, xfa.layout。例如:

    $layout.ready

    等价于:

    xfa.layout.ready

    $record 表示数据集(如来自 XML 文件)的当前记录。例如:

    $record.header.txtOrderedByCity

    在当前 XML 数据的 header 节点中引用 txtOrderedByCity 节点。

    $template 表示根模板模型 xfa.template 。例如:

    $template.purchaseOrder.item

    等价于:

    xfa.template.purchaseOrder.item

    ! 表示根数据模型 xfa.datasets。例如:

    !data

    等价于:

    xfa.datasets.data

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 引用语法 25

    * 无论名称如何在给定容器中,如子表单中选择所有表单对象,或选择有相似名称的所有对象。

    例如,以下表达式选择表单上名称为 item 的所有对象:

    xfa.form.form1.item[*]

    .. 您可以在引用语法中的任意位置使用两点(..)查找作为当前容器对象的子容器的一部分的对象,如子表单。 例如,表达式 Subform_Page..Subform2 的意思是在节点 Subform_Page (照常)处找出 Subform_Page 中名称为 Subform2 的子节点。

    使用上面的示例树,

    Subform_Page..TextField2

    等价于:

    Subform_Page.Subform1[0].Subform3.TextField2[0]

    因为 TextField2[0] 是 FormCalc 在搜索中遇到的第一个 Subform1 节点。 下一个示例:

    Subform_Page..Subform3[*]

    返回 TextField2 对象的所有 4个实例。

    # 数字符号 (#)表示法用来在引用语法中指示以下项目:

    一个未命名的对象。 例如,下面的引用语法访问一个未命名子表单:xfa.form.form1.#subform

    如果属性与一个对象的名称相同,在引用语法中指定属性。 例如,如果子表单也包含一个域命名的名称,下列引用语法访问子表单的名称属性:

    xfa.form.form1.#subform.#name

    表示法 说明

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 引用语法 26

    [ ] 方括号([ ])表示法指示对象的出现次数值。 为了构建出现次数值引用,把方括号 ([ ]) 放在一个对象名称之后并在括号内包含以下数值之一:

    [ n ],这里 n 是从零开始的绝对出现索引数。超出范围的数字返回错误。 例如:

    xfa.form.form1.#subform.Quantity[3]

    指的是 Quantity 对象的第四次出现。

    [ +/- n ],这里的 n 指的是发生相对于产生引用对象的事件。 正值生成更高的出现数字而负值生成更低的出现数字。 例如:

    xfa.form.form1.#subform.Quantity[+2]

    该引用生成 Quantity 的出现,而 Quantity 的出现次数比产生引用的容器的出现次数大 2。

    xfa.template.Quantity[4]

    若计算的索引号超出范围,则引用返回错误。 该语法的普通用法是加载特定对象的前一个或下一个出现事件。 例如,Quantity 对象(除了第一个)的每次出现都可能使用 Quantity[-1] 获取上一个 Quantity 对象的值。

    [*] 表示对象的多次出现。 找到第一个命名的对象,再返回与第一个对象相同名称的对象。 注意使用该表示法返回对象集。 例如:

    xfa.form.form1.#subform.Quantity[*]

    该表达式指的是与通过引用找到的首次出现 Quantity 同名的所有对象。

    注意 :在对阿拉伯语、希伯来语、泰语和越南语的指定语言表单中,引用语法总是在右边(即使在自右向左的语言中)。

    注意 : LiveCycle Forms 7.1 不支持包含阿拉伯语、希伯来语、泰语和越南语字体的表单设计。

    表示法 说明

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 属性与方法调用 27

    属性与方法调用LiveCycle Designer 为表单设计上的所有对象定义各种属性和方法。FormCalc 提供到这些属性和方法的访问并允许您运用它们修改您表单上对象的外观和操作。类似于函数调用,您通过以指定的顺序传送参数到它们调用属性和方法。每个属性和方法参数的数量和类型对每个对象类型是特定的。

    注意 :不同的表单设计对象支持不同的属性和方法。关于完整的属性和方法对象的支持列表,请参阅网址在 www.adobe.com/devnet/livecycle/designing_forms.html 的 LiveCycle Designer 开发中心的 Adobe XML Form Object Model Reference 。

    [ ]

    (Continued)

    使用引用树,此表达式返回以下对象:

    Subform_Page.Subform1[*]返回两个 Subform1对象。

    Subform_Page.Subform1.Subform3.TextField2[*]返回两个 TextField2对象。 Subform_Page.Subform1解析为左边的第一个 Subform1对象,且 TextField2[*]相对于 Subform3对象评测。

    Subform_Page.Subform1[*].TextField1返回两个 TextField1实例。 Subform_Page.Subform1[*]解析为两个 Subform1 对象,且 TextField1相对于 Subform1对象评测。

    Subform_Page.Subform1[*].Subform3.TextField2[1]返回自左边起第二和第四个 TextField2对象。 Subform_Page.Subform1[*]解析为两个 Subform1对象,且 TextField2[1]相对于 Subform3 对象评测。

    Subform_Page.Subform1[*].Subform3[*]返回两个 Subform3对象。

    Subform_Page.*同时返回 Subform1对象和 Subform2对象。

    Subform_Page.Subform2.*返回 NumericField2对象的两个实例。

    表示法 说明

  • Adobe LiveCycle Designer 语言参考FormCalc 用户手册 内建函数调用 28

    内建函数调用FormCalc 支持功能广泛的大型内建函数集。函数名称区分大小写,但不像关键字,FormCalc 不保留函数名称。这意味着表单计算和名称与 FormCalc 函数名称符合的对象不冲突。

    函数需要或不需要某些参数集处理和返回数值。许多函数有可选的参数,意味着由您决定该参数对特定情况的必要性。

    FormCalc 顺序评测所有函数,从前面的参数开始。如果试图传送少于需要的参数数字到一个函数,该函数产生一个错误中断。

    每个函数期望特殊格式的参数,数字文字或者字符串文字。若参数值与函数期望不匹配,FormCalc 转换该值。例如:

    Len(35)

    第 81 页中的“Len” 函数期望文字字符串。 这种情况下,FormCalc 把该参数从数字 35 转换成字符串 "35",并且该函数评测为 2。

    然而,从字符串文字到数字文字的转换并不简单。例如:

    Abs("abc")

    第 32 页中的“Abs”函数期望数字文字。FormCalc 转换所有字符串文字值为 0。在零值产生错误的函数中可能产生问题,例如 Apr 函数。

    某些函数参数只要求整数值;这种情况下,传送的参数要去掉小数部分,只保留整数。

    以下是内建函数关键属性的总结:

    内建函数名称区分大小写。

    内建函数是预定义的,但名称不是保留字。

    许多内建函数有强制参数数量,也可以有可选的参数数量。

    内建函数第 33 页中的“Avg”, 第 34 页中的“Count”, 第 35 页中的“Max”, 第 36 页中的“Min”, 第 39 页中的“Sum”和 第 77 页中的“Concat”, 可接受不确定的参数个数。

    对于完整的 FormCalc 函数列表,请参阅第 29 页中的“函数列表(按字母顺序)”。

  • 29

    3 函数列表(按字母顺序)下表列出了所有可用的 FormCalc 函数,提供每个函数的说明,并且指出每个函数所属的类型。

    函数 说明 类型

    第 32 页中的“Abs” 返回数值或表达式的绝对值。 数学

    第 58 页中的“Apr” 返回贷款年利率。 财务

    第 76 页中的“At” 确定一个字符串在另一个字符串中的起始字符位置。 字符串

    第 33 页中的“Avg” 计算一组数字值和 / 或表达式并返回组中包含的 non-null 元素的平均值。

    数学

    第 33 页中的“Ceil” 返回大于或等于给定值的整数。 数学

    第 68 页中的“Choose” 从给定参数集中选择数值。 逻辑

    第 77 页中的“Concat” 合并两个或更多字符串并返回。 字符串

    第 34 页中的“Count” 计算一组数值和 / 或表达式并返回组中包含的非 null 元素的数目。

    数学

    第 59 页中的“CTerm” 返回一笔投资按一个固定但复利方式的利率增长到预期值需要的周期数。

    财务

    第 48 页中的“Date” 以从时间原点开始的天数的形式返回当前系统日期。 日期和时间

    第 49 页中的“Date2Num”

    返回从时间原点开始的天数,需提供日期字符串。 日期和时间

    第 50 页中的“DateFmt” 返回日期格式字符串,需提供日期格式样式。 日期和时间

    第 78 页中的“Decode” 返回给定字符串的解码版本。 字符串

    第 78 页中的“Encode” 返回给定字符串的编码版本。 字符串

    第 72 页中的“Eval” 返回给定表单计算值。 其它

    第 69 页中的“Exists” 确定给定参数是否为现有对象的存取器。 逻辑

    第 34 页中的“Floor” 返回小于或等于给定数值的最大整数。 数学

    第 79 页中的“Format” 根据指定的图片格式字符串格式化给定数据。 字符串

    第 60 页中的“FV” 基于固定利率及等额分期付款方式,返回某项投资的未来值。

    财务

    第 91 页中的“Get” 下载给定 URL 的内容。 URL

    第 69 页中的“HasValue”

    确定给定参数是否为带有 non-null,non-empty,或 non-blank 数值的存取器。

    逻辑

    第 61 页中的“IPmt” 返回在给定期次内某项投资回报的利息部分。 财务

  • Adobe LiveCycle Designer 函数列表(按字母顺序)FormCalc 用户手册 30

    第 50 页中的“IsoDate2Num”

    返回从时间原点开始的天数,需提供有效的日期字符串。

    日期和时间

    第 51 页中的“IsoTime2Num”

    返回从时间原点开始的毫秒数,需提供有效的时间字符串。

    日期和时间

    第 80 页中的“Left” 从字符串左边第一个字符开始截取指定数目的字符。 字符串

    第 81 页中的“Len” 返回给定字符串的字符数目。 字符串

    第 51 页中的“LocalDateFmt”

    返回本地日期格式字符串,需提供日期格式样式。 日期和时间

    第 52 页中的“LocalTimeFmt”

    返回本地时间格式字符串,需提供时间格式样式。 日期和时间

    第 82 页中的“Lower” 将指定字符串中的所有大写字母转换为小写字母。 字符串

    第 82 页中的“Ltrim” 返回删除了所有前导空白的字符串。 字符串

    第 35 页中的“Max” 返回一组给定数值中非 null 元素的最大值。 数学

    第 36 页中的“Min” 返回一组给定数值中非 null 元素的最小值。 数学

    第 37 页中的“Mod” 返回一数值被另一数值整除后的余数。 数学

    第 62 页中的“NPV” 基于一系列收支现金流和固定的各期贴现率,返回一项投资的净现值。

    财务

    第 73 页中的“Null” 返回 null 值。 null 值即无数值。 其它

    第 53 页中的“Num2Date”

    返回日期字符串,需提供从时间原点开始的天数。 日期和时间

    第 53 页中的“Num2GMTime”

    返回 GMT 时间字符串,需提供从时间原点开始的毫秒数。

    日期和时间

    第 54 页中的“Num2Time”

    返回时间字符串,需提供从时间原点开始的毫秒数。 日期和时间

    第 70 页中的“Oneof” 若数值在给定集合中,则返回 true (1),否则返回 false (0)。

    逻辑

    第 83 页中的“Parse” 按指定图片格式分析给定数据。 字符串

    第 62 页中的“Pmt” 返回基于常数偿还和常数利率的贷款偿还额。 财务

    第 91 页中的“Post” 发送给定数据到指定的 URL。 URL

    第 63 页中的“PPmt” 返回在给定期次内贷款偿还的本金部分。 财务

    第 93 页中的“Put” 上传给定数据到指定的 URL。 URL

    第 64 页中的“PV” 返回某项投资的一系列等额分期偿还额的当前值之和。

    财务

    第 65 页中的“Rate” 基于等额分期付款方式,返回投资的实际偿还率。 财务

    第 73 页中的“Ref” 返回现有对象的引用。 其它

    函数 说明 类型

  • Adobe LiveCycle Designer 函数列表(按字母顺序)FormCalc 用户手册 31

    第 83 页中的“Replace” 在指定的字符串中以其它字符串替换所有出现的某个字符串。

    字符串

    第 84 页中的“Right” 从字符串右边最后一个字符开始截取指定数目的字符。

    字符串

    第 38 页中的“Round” 计算给定的数值或表达式并返回在给定的小数位上四舍五入的数值。

    数学

    第 85 页中的“Rtrim” 返回删除了所有尾随空白的字符串。 字符串

    第 85 页中的“Space” 返回由给定数目的空白组成的字符串。 字符串

    第 86 页中的“Str” 将数字转换成字符串。 FormCalc 将结果格式化至指定的宽度并且在给定的小数位上四舍五入。

    字符串

    第 86 页中的“Stuff” 将一个字符串插入另一个字符串。 字符串

    第 87 页中的“Substr” 截取给定字符串的一部分。 字符串

    第 39 页中的“Sum” 返回一组给定数字中非 null 元素之和。 数学

    第 66 页中的“Term” 返回将定期定额支付改为带息帐款后达到给定的未来值所需的期数。

    财务

    第 55 页中的“Time” 以从时间原点开始的毫秒数的形式返回当前系统时间。

    日期和时间

    第 55 页中的“Time2Num”

    返回从时间原点开始的毫秒数,需提供时间字符串。 日期和时间

    第 56 页中的“TimeFmt” 返回时间格式,需提供时间格式样式。 日期和时间

    第 73 页中的“UnitType” 返回跨度的单位。 跨度是由一个数字及其尾随的单位名称组成的字符串。

    其它

    第 74 页中的“UnitValue”

    经可选单位转换后,与跨度相关的测量数值。 其它

    第 88 页中的“Uuid” 将字符串中所有的小写字符转换成大写。 字符串

    第 89 页中的“Upper” 返回一个 " 通用唯一标识符 "(UUID)字符串作为辨认方法。

    字符串

    第 71 页中的“Within” 若测试数值在给定范围内,则返回 true (1),否则返回 false (0)。

    逻辑

    第 89 页中的“WordNum”

    返回与给定数字等值的英文文本。 字符串

    函数 说明 类型

  • 32

    4 数学函数这些函数执行一定范围内的数学运算。

    函数第 32 页中的“Abs”

    第 33 页中的“Avg”

    第 33 页中的“Ceil”

    第 34 页中的“Count”

    第 34 页中的“Floor”

    第 35 页中的“Max”

    第 36 页中的“Min”

    第 37 页中的“Mod”

    第 38 页中的“Round”

    第 39 页中的“Sum”

    Abs返回数值或表达式的绝对值,或者若此值或表达式为 null 则返回 null。

    语法Abs(n1)

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Abs 函数的示例:

    参数 说明

    n1 待计算的数字值或表达式。

    表达式 返回

    Abs(1.03) 1.03

    Abs(-1.03) 1.03

    Abs(0) 0

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Avg 33

    Avg计算一组数字值和 /或表达式并返回组中包含的 non-null 元素的平均值。

    语法Avg(n1 [, n2 ...])

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Avg 函数的示例:

    Ceil返回大于或等于给定值的整数,或者若参数为 null 则返回 null。

    语法Ceil(n)

    参数

    处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Ceil 函数的示例:

    参数 说明

    n1 组中第一个数字值或表达式。

    n2 ( 可选 ) 附加的数字值或表达式。

    表达式 返回

    Avg(0, 32, 16) 16

    Avg(2.5, 17, null) 9.75

    Avg(Price[0], Price[1], Price[2], Price[3]) 前四个 non-null 的 Price 的平均值。

    Avg(Quantity[*]) 所有 non-null 的 Quantity 的平均值。

    参数 说明

    n 任何数值或表达式。

    若 n 不是数值或表达式,则函数将返回零。

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Count 34

    Count计算一组数值和 /或表达式并返回组中包含的非 null 元素的数目。

    语法Count(n1 [, n2 ...])

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Count 函数的示例:

    Floor返回小于或等于给定数值的最大整数。

    语法Floor(n)

    参数

    表达式 返回

    Ceil(2.5875) 3

    Ceil(-5.9) -5

    Ceil("abc") 0

    Ceil(A) 若 A 的值为 99.999 则返回 100

    参数 说明

    n1 数值或表达式。

    n2 ( 可选 ) 附加的数值和 /或表达式。

    表达式 返回

    Count("Tony", "Blue", 41) 3

    Count(Customers[*]) Customers 中出现的 non-null 值数目。

    Count(Coverage[2], "Home", "Auto") 若 Coverage 第三个出现的值非 null 则返回 3。

    参数 说明

    n 任何数值或表达式。

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Max 35

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Floor 函数的示例:

    Max返回一组给定数值中非 null 元素的最大值。

    语法Max(n1 [, n2 ...])

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Max function 函数的示例:

    表达式 返回

    Floor(21.3409873) 21

    Floor(5.999965342) 5

    Floor(3.2 * 15) 48

    参数 说明

    n1 数值或表达式。

    n2 ( 可选 ) 附加的数值和 /或表达式。

    表达式 返回

    Max(234, 15, 107) 234

    Max("abc", 15, "Tony Blue") 15

    Max("abc") 0

    Max(Field1[*], Field2[0]) 计算 Field1 中的 non-null 值和 Field2 中第一个值,并返回其中的最大值。

    Max(Min(Field1[*], Field2[0]), Field3, Field4) 第一个表达式计算 Field1 中的 non-null 值和 Field2 中的第一个值,并返回其中的最小值。最终结果是上述返回值与 Field3 和 Field4 中的值相比的最大值。

    也参阅第 36 页中的“Min”

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Min 36

    Min返回一组给定数值中非 null 元素的最小值。

    语法Min(n1 [, n2 ...])

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Min 函数的示例:

    参数 说明

    n1 数值或表达式。

    n2 ( 可选 ) 附加的数值和 /或表达式。

    表达式 返回

    Min(234, 15, 107) 15

    Min("abc", 15, "Tony Blue") 15

    Min("abc") 0

    Min(Field1[*], Field2[0]) 计算 Sales_July 中出现的 non-null 值和 Sales_August 中第一个值,并返回其中的最小值。

    Min(Max(Field1[*], Field2[0]), Field3, Field4) 第一个表达式计算 Field1 中的 non-null 值和 Field2 中的第一个值,并返回其中的最大值。最终结果是上述返回值与 Field3 和 Field4 中的值相比的最小值。

    也参阅第 35 页中的“Max”

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Mod 37

    Mod返回一数值被另一数值整除后的余数。余数是被除数与除数相除后的剩余。余数的符号总是与被除数相同。

    语法Mod(n1, n2)

    参数

    若 n1 和 / 或 n2 不是数值或表达式,则函数返回 0。

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Mod 函数的示例:

    参数 说明

    n1 被除数,数字值或表达式。

    n2 除数,数字值或表达式。

    表达式 返回

    Mod(64, -3) 1

    Mod(-13,3) -1

    Mod("abc", 2) 0

    Mod(X[0], Y[9]) X 中第一个值作为被除数, Y 中第十个值作为被除数。

    Mod(Round(Value[4], 2), Max(Value[*])) Value 中第五个值在第二个小数位四舍五入后作为被除数, Value 中所有 non-null 的最大值作为除数。

    也参阅第 35 页中的“Max”和第 38 页中的“Round”

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Round 38

    Round计算给定的数字值或表达式并返回在给定的小数位上四舍五入的数值。

    语法Round(n1 [, n2])

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Round 函数的示例:

    参数 说明

    n1 数值或表达式。

    n2 ( 可选 ) 附加的数值和 /或表达式。

    表达式 返回

    Round(12.389764537, 4) 12.3898

    Round(20/3, 2) 6.67

    Round(8.9897, "abc") 9

    Round(FV(400, 0.10/12, 30*12), 2) 904195.17. 此处使用 FV 函数的计算结果并将其在第二个小数位四舍五入。

    也参阅第 60 页中的“FV”。

    Round(Total_Price, 2) 将 Total_Price 的值四舍五入至两个小数位。

  • Adobe LiveCycle Designer 数学函数FormCalc 用户手册 Sum 39

    Sum返回一组给定数字中非 null 元素之和。

    语法Sum(n1 [, n2 ...])

    参数

    注意 :处理浮点数字值时,FormCalc 遵循 IEEE-754 国际标准。详细信息请参阅第 8页中的“数字文字”。

    示例

    以下表达式是使用 Sum 函数的示例:

    参数 说明

    n1 数值或表达式。

    n2 (optional) 附加的数值和 /或表达式。

    表达式 返回

    Sum(2, 4, 6, 8) 20

    Sum(-2, 4, -6, 8) 4

    Sum(4, 16, "abc", 19) 39

    Sum(Amount[2], Amount[5]) Amount 中第三个和第六个值之和。

    Sum(Round(20/3, 2), Max(Amount[*]), Min(Amount[*])) 四舍五入到两个小数位的 20/3 的值与 Amount 中的 non-null 的最大值和最小值三者之和。

    也参阅第 35 页中的“Max”,第 36 页中的“Min”和第 38 页中的“Round”

  • 40

    5 日期和时间函数此节中的函数专门用于创建和操作日期和时间值。

    函数Date

    Date2Num

    DateFmt

    IsoDate2Num

    IsoTime2Num

    LocalDateFmt

    LocalTimeFmt

    Num2Date

    Num2GMTime

    Num2Time

    Time

    Time2Num

    TimeFmt

    构建日期和时间

    区域区域是在开发国际标准时用来标志特定国家的标准术语(语言、国家或两者)。对于 FormCalc 而言,区域定义了相对于指定的国家或地区日期、时间、数字和币值的格式,以使用户能够使用他们习惯的格式。

    每个区域由名为区域标志符的唯一字符串组成。 这些字符串的合成由国际标准化组织 (ISO) 互联网工程任务小组 (IETF) 控制,它是互联网协会的一个工作组 (www.isoc.org)。

    区域标志符由语言部分、国家部分分别或共同组成。下表列出了此版本 LiveCycle Designer 中的有效区域:

    语言 国家 ISO 代码

    阿拉伯语 阿拉伯联合酋长国 ar_AE

    阿拉伯语 巴林 ar_BH

    阿拉伯语 阿尔及利亚 ar_DZ

    阿拉伯语 埃及 ar_EG

    阿拉伯语 伊拉克 ar_IQ

    http://www.isoc.orghttp://www.isoc.orghttp://www.isoc.orghttp://www.isoc.org

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 区域 41

    阿拉伯语 约旦 ar_JO

    阿拉伯语 科威特 ar_KW

    阿拉伯语 黎巴嫩 ar_LB

    阿拉伯语 利比亚 ar_LY

    阿拉伯语 摩洛哥 ar_MA

    阿拉伯语 阿曼 ar_OM

    阿拉伯语 卡塔尔 ar_QA

    阿拉伯语 沙特阿拉伯 ar_SA

    阿拉伯语 苏丹 ar_SD

    阿拉伯语 叙利亚 ar_SY

    阿拉伯语 突尼斯 ar_TN

    阿拉伯语 也门 ar_YE

    保加利亚语 保加利亚 bg_BG

    中文 香港 zh_HK

    中文 中华人民共和国(简体中文) zh_CN

    中文 台湾(繁体中文) zh_TW

    克罗地亚语 克罗地亚 hr_HR

    捷克语 捷克共和国 cs_CAZ

    丹麦语 丹麦 da_DK

    荷兰语 比利时 nl_BE

    荷兰语 荷兰 nl_NL

    英语 澳大利亚 en_AU

    英语 加拿大 en_CA

    英语 印度 en_IN

    英语 爱尔兰 en_IE

    英语 新西兰 en_NZ

    英语 南非 en_ZA

    英语 英国 en_GB

    英语 英国(Euro) en_GB_EURO

    英语 美国 en_US

    爱沙尼亚语 爱沙尼亚 et_EE

    语言 国家 ISO 代码

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 区域 42

    芬兰语 芬兰 fi_FI

    法语 比利时 fr_BE

    法语 加拿大 fr_CA

    法语 法国 fr_FR

    法语 卢森堡 fr_LU

    法语 瑞士 fr_CH

    德语 奥地利 de_AT

    德语 德国 de_DE

    德语 卢森堡 de_LU

    德语 瑞士 de_CH

    希腊语 希腊 el_GR

    希伯来语 以色列 he_IL

    匈牙利语 匈牙利 hu_HU

    印度尼西亚语 印度尼西亚 id_ID

    意大利语 意大利 it_IT

    意大利语 瑞士 it_CH

    日语 日本 ja_JP

    韩语 大韩民国 ko_KR

    韩语 韩国(汉字) ko_KR_HANI

    拉脱维亚语 拉脱维亚 lv_LV

    立陶宛语 立陶宛 lt_LT

    马来语 马来西亚 ms_MY

    挪威语(博克马尔) 挪威 nb_NO

    挪威语(尼诺斯克) 挪威 nn_NO

    波兰语 波兰 pl_PL

    葡萄牙语 巴西 pt_BR

    葡萄牙语 葡萄牙 pt_PT

    罗马尼亚语 罗马尼亚 ro_RO

    俄语 俄罗斯 ru_RU

    塞波-克罗地亚语 波斯尼亚和黑塞哥维那 sh_BA

    塞波-克罗地亚语 克罗地亚 sh_HR

    语言 国家 ISO 代码

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 区域 43

    通常情况下,区域中的两个元素都很重要。例如,在加拿大和英国的星期名称和月份的格式是相同的,但是日期的格式不同。因此,指定一个英语区域是不够的。同样,仅指定一个国家作为指定区域也不够。例如,加拿大的日期有英语和法语两种格式。

    塞波-克罗地亚语 塞尔维亚和黑山 sh_CS

    斯洛伐克语 斯洛伐克 sk_SK

    斯洛文尼亚语 斯洛文尼亚 sl_SI

    西班牙语 厄瓜多尔 es_EC

    西班牙语 萨尔瓦多 es_SV

    西班牙语 危地马拉 es_GT

    西班牙语 洪都拉斯 es_HN

    西班牙语 尼加拉瓜 es_NI

    西班牙语 巴拿马 es_PA

    西班牙语 巴拉圭 es_PY

    西班牙语 波多黎各 es_PR

    西班牙语 乌拉圭 es_UY

    西班牙语 阿根廷 es_AR

    西班牙语 玻利维亚 es_BO

    西班牙语 智利 es_CL

    西班牙语 哥伦比亚 es_CO

    西班牙语 哥斯达黎加 es_CR

    西班牙语 多米尼加共和国 es_DO

    西班牙语 墨西哥 es_MX

    西班牙语 秘鲁 es_PE

    西班牙语 西班牙 es_ES

    西班牙语 委内瑞拉 es_VE

    瑞典语 瑞典 sv_SE

    泰语 泰国 th_TH

    泰语 Thailand Traditional th_TH_TH

    土耳其语 土耳其 tr_TR

    乌克兰语 乌克兰 uk_UA

    越南语 越南 vi_VN

    语言 国家 ISO 代码

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 时间原点 44

    通常,每个应用程序都在当前的区域环境中运行。此区域即为环境区域。有时,运行应用程序的系统或环境中没有区域。在极少出现的这些情况下,环境区域默认设置为为 "英语(美国)"(en_US)。此区域即为默认区域。

    时间原点日期值和时间值都有相关的原点或时间原点,它是事件发生的时刻。在时间原点之前的任何日期值和时间值都是无效的。

    所有的日期函数值的单位均为从时间原点开始的天数。所有的时间函数值的单位均为从时间原点开始的毫秒数。

    LiveCycle Designer 将 1900 年 1 月 1 日定义为所有日期函数相对于时间原点的第 1 天,且所有时间函数的时间原点是以格林尼治标准时间(GMT)的午夜 00:00:00 为准。此项定义意味着在格林尼治以东的时区会返回负时间值。

    日期格式日期格式是显示日期的规格。它由各种代表日期的使用格式的标点和符号组成。下表列出了日期格式的示例:

    日期格式由 ISO 标准管理。每个国家或地区分别指定各自的日期格式。四种通用的日期格式种类是短、中、长和完整时间格式。下表给出了不同区域的不同日期格式的示例。

    时间格式时间格式是用来格式化时间的速记规格。它由标点符号、文字和模式符号组成。下表列出了时间格式的示例

    日期格式 示例

    MM/DD/YY 11/11/78

    DD/MM/YY 25/07/85

    MMMM DD, YYYY March 10, 1964

    区域标志符说明 日期格式种类 示例

    en_GB

    英语(英国 - 欧洲)

    DD/MM/YY ( 短 ) 08/18/92

    08/04/05

    fr_CA

    法语(加拿大)

    YY-MM-DD ( 中 ) 92-08-18

    de_DE

    德语(德国)

    D. MMMM YYYY ( 长 ) 17. Juni 1989

    fr_FR

    法语(法国)

    EEEE, ' le ' D MMMM YYYY ( 完整 ) Lundi, le 29 Octobre, 1990

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 日期和时间图片格式 45

    时间格式由 ISO 标准管理。每个国家分别指定默认、短、中、长和完整时间格式的形式。区域遵循该国的国家标准指定时间格式。

    下表给出了不同区域的不同日期格式的一些示例。

    日期和时间图片格式以下符号用来创建日期 /时间域的日期和时间模式。某些日期符号只用于中文、日语和韩语区域。下面也指明了这些符号。

    注意 :逗号 (,)、破折号 (-)、冒号 (:)、斜杠 (/)、句号 (.) 和空格 ( ) 被看作文字值,并可包含在模式中的任意地方。 若模式中包含短语,需用单引号(')引住文本串。 如," 您最迟的支付日期是 " MM-DD-YY。

    时间格式 示例

    h:MM A 7:15 PM

    HH:MM:SS 21:35:26

    HH:MM:SS 'o''clock' A Z 14:20:10 o’clock PM EDT

    区域标志符和说明 时间格式(种类) 示例

    en_GB

    英语(英国)

    HH:MM ( 短 ) 14:13

    fr_CA

    法语(加拿大)

    HH:MM:SS ( 中 ) 12:15:50

    de_DE

    德语(德国)

    HH:MM:SS z ( 长 ) 14:13:13 -0400

    fr_FR

    法语(法国)

    HH ‘ h ‘ MM Z( 完整 ) 14 h 13 GMT-04:00

    日期符号 说明分区域的输入值为 1/1/08 (即 2008 年 1月 1日)时,英语(美国)区域的格式化值

    D 月份中的 1 或 2 位 (1-31)日期 1

    DD 月份中添 0 后的 2 位 (01-31)日期 01

    J 一年中的 1、2 或 3 位 (1-366)日期 1

    JJJ 一年中添 0 后的 3 位 (001-366)日期 001

    M 一年中的一位或两位(1-12)月份 1

    MM 一年中添 0 后的两位(01-12)月份 01

    MMM 简写的月份名称 Jan

    MMMM 完整的月份名称 January

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 日期和时间图片格式 46

    为中文、日语和韩语区域指定日期模式准备了一些附加的日期模式。

    日本纪元可用几种不同的符号表示。最后 4种纪元符号为日本纪元的表示提供了替换符号。

    E 一星期中的一位(1-7)工作日,此处(1= 星期日)

    3

    EEE 简写的工作日名 Tue ( 由于 2008 年 1 月 1 日是星期二 )

    EEEE 四位年份 Tuesday ( 由于 2008 年 1 月 1 日是星期二 )

    YY 两位年份,此处的数值若小于 30 则表示 2000 年以后,大于等于 30 则表示出现在 2000 年以前。例如,00=2000,29=2029,30=1930 以及 99=1999

    08

    YYYY 四位年份 2008

    G 纪元名(公元前或公元) AD

    w 月份中的一位(0-5)星期,此处第一个星期是最早的一组以星期六结束的连续四天

    1

    WW 一年中的两位(01-53)ISO-8601 星期,此处第一个星期是包含一月四号的那个星期

    01

    CJK 日期符号 说明

    DDD 区域表意文字的数字值表示的月份中的日期

    DDDD 区域 10数规则(tens rule)表意文字的数字值表示的月份中的日期

    YYY 区域表意文字的数字值表示的年

    YYYYY 区域 10数规则表意文字的数字值表示的年

    g 区域的替换纪元名。当前的日本纪元为“平成”,此模式显示为 ASCII 字母 H (U+48)

    gg 区域的替换纪元名。对当前的日本纪元,此模式显示为以 Unicode 符号 (U+5E73) 表示的象形文字

    ggg 区域的替换纪元名。对当前的日本纪元,此模式显示为以 Unicode 符号 (U+5E73U+6210) 表示的象形文字

    g 区域的替换纪元名。对当前的日本纪元,此模式显示为完整宽度的字母 H (U+FF28)

    g g 区域的替换纪元名。对当前的日本纪元,此模式显示为以 Unicode 符号 (U+337B) 表示的象形文字

    日期符号 说明分区域的输入值为 1/1/08 (即 2008 年 1月 1日)时,英语(美国)区域的格式化值

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 日期和时间图片格式 47

    时间符号 说明 分区域的输入值英语(美国)区域的格式化值

    h 一天中的一位或两位(1-12)小时

    (AM/PM)

    12:08 AM or 2:08 PM 12 or 2

    hh 添 0 后一天(AM/PM)中的两位(1-12)小时

    12:08 AM or 2:08 PM 12 or 02

    k 一天中的一位或两位(0-11)小时

    (AM/PM)

    12:08 AM or 2:08 PM 0 or 2

    kk 一天(AM/PM)中的两位(00-11)小时 (AM/PM)

    12:08 AM or 2:08 PM 00 or 02

    H 一天中的一位或两位(0-23)小时 12:08 AM or 2:08 PM 0 or 14

    HH 添 0 后一天中的两位(00-23)小时 12:08 AM or 2:08 PM 00 or 14

    K 一天中的一位或两位(1-24)小时 12:08 AM or 2:08 PM 24 or 14

    KK 添 0 后一天中的两位(01-24)小时 12:08 AM or 2:08 PM 24 or 14

    M 小时内的一位或两位(0-59)分钟

    注意 :您必须与小时符号同时使用本符号。

    2:08 PM 8

    MM 添 0 后小时内的一位或两位(0-59)分钟

    注意 :您必须与小时符号同时使用本符号。

    2:08 PM 08

    S 分钟内的一位或两位(0-59)秒

    注意 :您必须与小时符号同时使用本符号。

    2:08:09 PM 9

    SS 添 0 后分钟内的一位或两位(0-59)秒

    注意 :您必须与小时符号同时使用本符号。

    2:08:09 PM 09

    FFF 三位(000-999)的千分之一秒

    注意 :您必须与小时符号同时使用本符号。

    2:08:09 PM 09

    A 一天中从午夜到正午 (AM)或从正午到午夜的部分(PM)

    2:08:09 PM PM

  • Adobe LiveCycle Designer 日期和时间函数FormCalc 用户手册 Date 48

    保留符号

    以下符号有特殊含义,无法用作文字文本。

    Date以从时间原点开始的天数的形式返回当前系统日期。

    z ISO-8601 time-zone format (for example, Z, +0500, -0030, -01, +0100)

    注意 : You must use this symbol with an hour symbol.

    2:08:09 PM -0400

    zz ISO-8601 时区格式(例如,Z,+0500,-0030,-01,+0100)

    注意 :您必须与小时符号同时使用本符号。

    2:08:09 PM -04:00

    Z 简写的时区名称,例如,GMT,GMT+05:00,GMT-00:30,EST,PDT

    注意 :您必须与小时符号同时使用本符号。

    2:0