通过公式计算字段值

在哪些地方可以使用公式?

公式可用于:

  • 批准过程:定义记录必须满足才能进入批准过程的条件。
  • 批准步骤:定义记录必须满足才能进入批准步骤的条件。
  • 自定义字段:创建根据其他值、合并字段或表达式自动计算值的自定义公式字段。
  • 自定义按钮和链接:定义自定义按钮和链接内容。
  • 公式字段:使用您指定的值、合并字段或表达式,自动计算自定义字段的值。用户不能更改公式字段的值。

公式的元素

公式可以包含对字段值、运算符、函数、文字表示值或其他公式的引用。

  • 文字表示值: 您输入的未经计算或更改的文本字符串或数字。例如,如果您有一个总是要乘以金额的 2% 的值,公式将会包含该金额的 2% 的文字表示值:
ROUND((Amount*0.02), 2)

此示例包含公式每个可能的部分:

  • 一个称为 ROUND 的函数,用于返回一个数值舍入为指定小数位数的数值。

  • 名为“金额”的字段引用。

  • 一个运算符 *,告诉公式生成器用文字表示值 0.02 乘以金额字段的值。

  • 一个文字表示数值 0.02。对所有百分数使用小数值。要在您的公式中包括实际文本,应将其括在引号内。

  • 此公式中的最后一个数字 2 是确定要返回的小数位数的 ROUND 函数所需的输入

  • 字段引用: 使用合并字段引用另一个自定义字段或标准字段的值。合并字段的语法对于标准字段是 field_name,对于自定义字段是 field_name_c。相关对象上合并字段的语法是 object_name_r.field_name。使用下拉列表,必要时在您的公式中插入合并字段。

  • 函数:函数即系统定义的公式,可能需要您的输入值并返回一个或几个值。例如,TODAY() 不需要输入值,但会返回当前日期。TEXT(value) 函数需要您输入百分比、数字或货币并返回文本。

  • 运算符:一个符号,指定要执行的计算类型或其执行顺序。例如,“+”号指定两个值应相加。左括号和右括号指定想要先计算的表达式。

公式运算符和函数

在构建公式时使用这些运算符和函数。除非另行指定,否则所有的函数都可用在任何能够包含公式(例如,公式字段、验证规则、批准过程和工作流规则)的位置。

数学运算符

  • +(加): 计算两个值的和。
  • -(减): 计算两个值的差。
  • *(乘): 乘以其值。
  • /(除): 除以其值。
  • ^(幂): 使一个数字变成指定数字的幂。
  • ()(左括号和右括号): 指定先计算左括号和右括号内的表达式。所有其他表达式均使用标准运算符优先权进行评估。

逻辑运算符

  • = 与 ==(等于): 计算两个值是否相等。 = 和 == 运算符可以互换。
  • !=(不等于): 计算两个值是否不相等。
  • <(小于): 计算一个值是否小于此符号后面的值。
  • (大于): 计算一个值是否大于此符号后面的值。
  • <=(小于或等于): 计算一个值是否小于或等于此符号后面的值。
  • (大于或等于): 计算一个值是否大于或等于此符号后面的值。
  • &&(与): 评估两个值或表达式是否都为真。使用此运算符作为逻辑函数 AND 的备选。
  • ||(或): 评估多个值或表达式中是否至少有一个为真。使用此运算符作为逻辑函数 OR 的备选。

文本运算符

  • &(串联): 连接两个或两个以上字符串。

日期和时间函数

  • ADDMONTHS:返回的日期是,指定日期之前或之后的指定月数。如果剩余月的天数比起始月少,函数会返回剩余月的最后一天。否则,结果包含与指定日期相同的日组件。
  • DATE:从您输入的年、月和日值返回一个日期值。如果公式字段中的 DATE 函数值是无效日期,如非闰年的 2 月 29 日,Salesforce 会在详细信息页上显示错误。
  • DATEVALUE:为日期时间或文本表达式返回日期值。
  • DATETIMEVALUE:返回年份、月份、日和 GMT 时间值。
  • DAY:以 1 与 31 之间的一个数字形式返回一个月中的某一天。
  • HOUR:以 1-12 的数字格式返回当地时间小时值(无日期)。
  • MILLISECOND:以 0 与 999 之间的数字形式,返回毫秒值。
  • MINUTE:以 0 与 60 之间的数字形式,返回分钟值。
  • MONTH:以给定日期的数字格式返回月份,即 1(一月)与 12(十二月)之间的一个数字。
  • NOW:返回表示当前时刻的日期时间。
  • SECOND:以 0 与 60 之间的数字形式,返回秒值。
  • TIMENOW:返回表示当前时刻的时间值 (GMT)。如果您仅想要跟踪时间,而非日期,使用此函数,而不是 NOW 函数。
  • TIMEVALUE:返回没有日期的当地时间值,例如工作时间。
  • TODAY:将当前日期返回为日期数据类型。
  • WEEKDAY:返回指定日期是周几,用 1 表示周日,2 表示周一,以此类推,7 表示周六。
  • YEAR:以给定日期的数字格式返回四位数字表示的年份。

逻辑函数

  • AND:果所有的值均为真,则返回 TRUE(真)响应;如果一个或多个值为假,则返回 FALSE(假)响应。
  • BLANKVALUE:判断表达式是否具有值,如果没有值则返回一个置换表达式。如果表达式具有值,则返回表达式的值。
  • CASE:根据一系列值检查一个给定表达式。如果表达式等于其中一个值,则返回相应结果。如果它不等于任何值,则返回其他结果。
  • IF:确定表达式为真或为假。如果为真则返回一个给定值,如果为假则返回另一个值。
  • ISBLANK:判断表达式是否具有值,如果没有值则返回 TRUE(真)。如果它包含一个值,则该函数返回 FALSE(假)。
  • ISCLONE:查看记录是否为另一个记录的副本,且如果是副本则返回 TRUE。反之,返回 FALSE(假)。
  • ISNEW:在创建新记录的过程中检查公式是否正在运行,如果是,则返回 TRUE(真)。如果正在更新现有的记录,则该函数返回 FALSE(假)。
  • ISNULL:确定表达式是否为空(空白),如果是则返回 TRUE(真)。如果它包含一个值,则该函数返回 FALSE(假)。
  • ISNUMBER:确定文本值是否为数字,如果是则返回 TRUE(真)。反之,返回 FALSE(假)。
  • NOT:对于 TRUE(真)返回 FALSE(假),对于 FALSE(假)返回 TRUE(真)。
  • NULLVALUE:确定一个表达式是否为空(空白),如果为空则返回一个置换表达式。如果表达式不为空,则返回表达式的值。
  • OR:确定表达式为真或为假。如果任何表达式为真,则返回 TRUE(真)。如果所有表达式均为假,则返回 FALSE(假)。
  • PRIORVALUE:返回字段的上一个值。

数学函数

  • ABS(绝对值) 计算一个数字的绝对值。数字的绝对值是不含正、负号的数字。
  • CEILING 将数字向上四舍五入为最接近的整数;如果是负数,避免四舍五入为零。
  • EXP 返回一个值,该值等于所指定数字的 e 幂。
  • FLOOR 返回向上舍入为最接近整数的数字;如果是负数,舍入为零。
  • LN 返回一个指定数值的自然对数。自然对数以常数 e(值为 2.71828182845904)为底。
  • LOG 返回数字以 10 为底的对数。
  • MAX 返回一系列数字中的最大数字。
  • MCEILING 将数字向上四舍五入为最接近的整数;如果是负数,四舍五入为零。
  • MFLOOR 将数字向下四舍五入为最接近的整数;如果是负数,避免四舍五入为零。
  • MIN 返回一系列数字中的最小数字。
  • MOD 返回一个数字除以指定除数后的余数。
  • ROUND 返回与所指定的数字最接近的一个数字,并通过指定的位数来约束新数字。
  • SQRT 返回给定数字的正平方根。

文本函数

  • BEGINS 确定文本是否以特定字符开头,如果是则返回 TRUE(真)。如果不是,则返回 FALSE(假)。
  • BR 在文本字符串中插入一个换行符。
  • CASESAFEID 将 15 个字符的 ID 转换成区分大小写的 18 个字符 ID。
  • CONTAINS 比较两个文本参数,如果第一个参数包含第二个参数,则返回 TRUE(真)。如果不包含,则返回 FALSE(假)。
  • FIND 返回某个字符串在文本字符串内的位置(以数字形式表示)。
  • GETSESSIONID 返回用户的会话 ID。
  • HTMLENCODE 通过将 HTML 中保留的字符(如大于号 (>))更换为同等的 HTML 实体(如 >)编码文本和合并字段值以在 HTML 中使用。
  • HYPERLINK 从指定文本创建一个到可链接的指定 URL 的链接。
  • IMAGE 插入具有备用文本和高度/宽度规格的图像。
  • INCLUDES 决定多选选项列表字段中选择的任何值是否等于您所指定的文本文字。
  • ISPICKVAL 确定选项列表字段的值是否等于所指定的文本文字。
  • JSENCODE 通过在不安全 JavaScript 字符(如单引号 ('))前插入转义符(如反斜线 ())编码文本和合并字段值以在 JavaScript 中使用。
  • JSINHTMLENCODE 通过在不安全 JavaScript 字符前插入转义符并把 HTML 中保留的字符更换为同等的 HTML 实体,编码文本和合并字段值以在 HTML 标记内的 JavaScript 中使用。
  • LEFT 返回从文本字符串开头算起的指定数量的字符。
  • LEN 返回指定的文本字符串中所含的字符数。
  • LOWER 将指定文本字符串中的所有字母转换为小写。不是字母的任何字符不受此函数的影响。如果提供区域则应用区域规则。
  • LPAD 将指定的字符插入文本字符串的左侧。
  • MID 从文本字符串中间返回从给定的起始位置算起的指定数量的字符。
  • RIGHT 返回从文本字符串右边算起的指定数量的字符。
  • RPAD 将指定的字符插入文本字符串的右侧。
  • SUBSTITUTE 用新文本替换文本字符串中的旧文本。
  • TEXT 在使用公式的任何地方将百分比、数字、日期、日期时间或货币类型字段转换为文本。另外,还将选项列表值转换为批准规则、批准步骤规则、工作流规则、升级规则、分配规则、自动响应规则、验证规则、公式字段、字段更新和自定义按钮及链接中的文本。
  • TRIM 删除文本字符串开头和末尾处的空格和制表符。
  • UPPER 将指定文本字符串中的所有字母转换为大写。不是字母的任何字符不受此函数的影响。如果提供区域则应用区域规则。
  • URLENCODE 通过将 URL 中的非法字符(如空格)更换为代表这些字符的代码(在 RFC 3986,统一资源标识符 (URI) 中定义)编码文本和合并字段值以在 URL 中使用:一般语法。例如,以 %20 替换空格,以 %21 替换惊叹号。
  • VALUE 将文本字符串转换为数字。

高级函数

  • CURRENCYRATE 对于指定币种 ISO 代码,返回企业币种的汇率。如果币种无效,返回 1.0。
  • GETRECORDIDS 以记录 ID 形式返回列表(如列表视图或相关列表)中选定记录的字符串数组。
  • IMAGEPROXYURL 安全检索外部图像,并阻止未经授权地请求用户凭据。
  • INCLUDE 返回 S-Control 代码片断中的内容。使用此函数可以在许多 S-Control 中重复使用常用代码。
  • ISCHANGED 将字段的值与上一个值相比较,如果二者不相等,则该函数返回 TRUE(真)。如果二者相等,则该函数返回 FALSE(假)。
  • JUNCTIONIDLIST 根据提供的 ID,返回 JunctionIDList。
  • LINKTO 以链接(href 和链接标志)形式返回 Custom S-Control 或 Salesforce 页面的相对 URL。
  • REGEX 将文本字段与正则表达式进行比较,如果匹配则返回 TRUE(真)。反之,返回 FALSE(假)。正则表达式是一个字符串,它根据一定语法规则描述字符串的格式。
  • REQUIRESCRIPT 返回一个脚本标记,其中包含所指定 URL 的源代码。在引用 Lightning 平台 AJAX Toolkit 或其他 JavaScript 工具包时,可以使用此函数。
  • URLFOR 返回操作、S-Control、Visualforce 页或 Visualforce 页中静态资源归档中文件的相对 URL。
  • VLOOKUP 在自定义对象上查找相关值并返回,与 VLOOKUP() Excel 函数类似。

在公式中使用日期、日期时间和时间值

日期使用了两种数据类型:date和datetime。一个数据类型时间依赖于跟踪时间的日期,例如工作时间。处理日期时使用的大部分值都是date数据类型,存储年、月和日。CreatedDate 等一些字段是datetime字段,意味着它们不仅存储日期值,而且还存储时间值(以 GMT 存储,但以用户的时区显示)。当在报表和记录详细信息页面查看时,日期、日期时间和时间字段以用户的区域设置格式化。时间值的精度以毫秒为单位。日期时间值的精度以秒为单位。

您可在日期、日期时间和时间值上使用加和减等运算符,以计算未来日期或两个日期或时间之间的已过去的时间。例如,如果您将一个日期减去另一个日期,由此得出的值将是两个初始值之差(天)(数字数据类型)。两个日期时间值之间的同一操作将返回十进制值,表示天、小时和分钟数之差。两个时间值的相同操作会返回毫秒。

例如,如果两个日期时间值之差是 5.52,这意味着两个值分隔 5 天、12 小时(1 天的 0.5)和 28 分钟(1 天的 0.02)。您还可以添加数字值到日期和日期时间。例如,操作 TODAY() + 3 将返回今天日期后的三天。

TODAY()、NOW() 和 TIMENOW()

TODAY() 函数以日期数据类别返回当前日、月和年。对于希望了解自上一天过去的天数、未来某些天数中的日期或仅仅希望显示当前日期的公式,本函数非常有用。

NOW() 函数返回当前时刻的日期时间值。当关心当天的特定时间以及日期时,这将非常有用。

TIMENOW() 函数会返回 GMT 的值,并表示不带日期的当前时间。如果您需要当前小时、分钟、秒或毫秒,使用此函数,而不是 NOW() 函数。

DATE() 函数

DATE() 函数返回日期值,给定年、月和日。数字 Y/M/D 值和 YEAR()、MONTH() 和 DAY() 函数是 DATE() 的有效参数。例如,DATE( 2013, 6, 1 ) 返回2013 年 6 月 1 日。同样,DATE( YEAR( TODAY() ), MONTH( TODAY() ) + 3, 1) 返回当年今天起三个月的第一天的日期值,假定该日期有效(例如,月份在 1 和 12 之间)。

如果输入的 Y/M/D 值导致无效的日期,DATE() 函数将返回错误,因此错误检查是使用日期值的重要部分。

在日期时间和日期之间转换

日期和日期时间是不可交换的数据类型,因此在日期和日期时间值之间执行操作时,您需要转换这些值,使它们具有相同的类型。一些函数(如 YEAR()、MONTH() 和 DAY())还仅适用于日期值,因此必须首先转换日期时间值。

使用 DATEVALUE( date/time ) 函数返回日期时间的日期值。例如,要从日期时间获取年,使用 YEAR( DATEVALUE( date/time ) ) )。

您可以使用 DATETIMEVALUE( date ) 函数将日期值转换为日期时间。时间将设置为格林威治标准时间 (GMT) 12:00 a.m.,然后转换为用户查看记录时显示的时区。对于位于旧金山的用户,DATETIMEVALUE( TODAY() ) 将返回前一天的 5:00 p.m.(夏令时期间)而不是当天的 12:00 a.m.。

在日期时间和时间之间转换

TIMEVALUE() 函数返回的时间数据类型值的格式为 24 小时制的“HH:MM:SS.MS”(hours:minutes:seconds.milliseconds)数字 H/M/S/MS 值和 HOUR()、MINUTE()、SECONDS() 和 MILLISECONDS() 函数是 TIMEVALUE() 的有效参数。

使用 TIMEVALUE(value) 函数,以返回日期时间类型的时间值、文本、合并字段或表达式。例如,使用 TIMEVALUE(ClosedDate) 从 ClosedDate 日期时间值中提取时间。

在日期和文本之间转换

如果希望将日期作为字符串一部分包含,在 TEXT() 函数中包含日期值以转换为文本。例如,如果希望将今天的日期转换为文本,使用:

"Today's date is " & TEXT( TODAY() )

这将以格式“YYYY-MM-DD”而不是取决于区域设置的格式返回日期。先从日期中提取日、月、年,然后按所需格式重新组合,即可更改公式。例如:

"Today's date is " & TEXT( MONTH( date ) ) & "/" & TEXT( DAY( date ) ) & "/" & TEXT( YEAR( date ) ) )

您还可以将文本转换为日期,以便将字符串值与您的其他日期字段和公式一起使用。您将希望文本的格式为“YYYY-MM-DD”。使用本公式以返回日期值:

DATEVALUE( "YYYY-MM-DD" )

在日期时间和文本之间转换

您可使用 TEXT() 函数在字符串包含日期时间值,但需要小心时区。例如,考虑本公式:

"The current date and time is " & TEXT( NOW() )

在本公式中,NOW() 偏移到 GMT。通常,NOW() 将在查看时转换成用户的时区,但由于被转换为文本,因此转换不会发生。因此,如果您在 8 月 1 日旧金山时间 (GMT-7) 5:00 PM 执行本公式,结果是“The current date and time is 2013–08–02 00:00:00Z”。

当将日期时间转换为文本时,将在最后包含“Z”以表示 GMT。如果字段为空,TEXT( date/time ) 返回“Z”。因此,如果您使用的日期时间值可能为空,在转换为文本之前检查:

IF(
ISBLANK( date/time ),
"",
TEXT( date/time )
)

要将字符串转换为日期时间值,使用 DATETIMEVALUE() 将以“YYYY-MM-DD HH:MM:SS”的格式传输字符串。本方法将返回 GMT 的日期时间值。

在日期和文本之间转换

如果您想要将时间作为字符串的一部分包含,在 TEXT() 函数中封装时间值,以将其转换为文本。例如,如果您想要将当前时间返回为文本,使用:

"The time is " & TEXT( TIMENOW() )

此函数会返回格式为“HH:MM:SS.MS”的时间。

您也可以将文本转换为时间数据类型,以便将字符串值与其他时间字段和公式一起使用。按 24 小时制将文本格式化为“HH:MM:SS.MS”。使用 TIMEVALUE() 函数:

TIMEVALUE("17:30:45.125")

有关日期时间和时区的备注

日期和日期时间值以 GMT 存储。保存好记录后,字段值将从用户的时区调整为 GMT,然后在记录详细信息页面和报表中显示时调整回查看者的时区。不会因日期转换而造成问题,因为转换日期时间为日期将导致相同的日期值。

然而,当使用日期时间和值时,转换始终以 GMT 而不是用户的时区完成。从另一个提取标准日期时间字段不是一个问题,因为这两个字段都在同一时区。然而,当计算中的一个值从文本或日期值转换为日期时间值时,结果将不同。

让我们假定旧金山用户在名为 Date_Time_c 的自定义日期时间字段输入 2013 年 8 月 2 日 12:00 AM 的值。该值被存储为 2013–08–02 07:00:00Z,因为太平洋夏季时间的时差是 GMT-7。在 8 月 1 日 12:00 p.m. PDT,用户查看记录并运行以下公式:

Date_Time_c - NOW()

在计算中,NOW() 是 2013–08–01 19:00:00Z,然后从 2013–08–02 07:00:00Z 提取以返回 0.5(12 小时)的预期结果。

假定不使用 NOW(),公式将转换字符串“2013–08–01 12:00:00”为日期时间值:

Date_Time_c - DATETIMEVALUE( "2013-08-01 12:00:00" )

在这种情况下,DATETIMEVALUE( “2013–08–01 12:00:00” ) 是 2013–08–01 12:00:00Z,并返回 0.79167 的结果或 19 小时。

无法在公式中确定用户的时区。如果您的所有用户都在同一时区,则可以通过加或减用户的时区和 GMT 之间的时差以调整时区差别为您的已转换值。然而,由于时区会受夏令时的影响,同时每年的 DST 开始和结束日期都不同,因此很难在公式中管理。我们建议为需要在日期时间值和文本或日期值之间转换的事务使用 Apex。

高级公式字段示例

查看您可以根据自己的需求使用并修改的各类应用程序的公式字段示例。

示例客户管理公式

客户评级

本公式将评估 Annual Revenue(年收入)、Billing Country(开单国家)和 Type(类型),并分配“热”、“温”或“冷”的值。

IF (AND (AnnualRevenue > 10000000,
CONTAINS (CASE (BillingCountry, "United States", "US", "America", "US", "USA", "US", "NA"), "US")),
IF(ISPICKVAL(Type, "Manufacturing Partner"), "Hot",
IF(OR (ISPICKVAL (Type, "Channel Partner/Reseller"),
ISPICKVAL(Type, "Installation Partner")), "Warm", "Cold")),
"Cold")

此外,您可以使用跨对象公式从联系人对象引用本“客户评级”公式字段。

Account.Account_Rating__c

客户地区

本公式将基于客户的 Billing State/Province(开单地址 – 州/省)返回 "North"、"South"、"East"、"West" 或 "Central" 的文本值。

IF(ISBLANK(BillingState), "None",
IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",
IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",
IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",
IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",
IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))

合同时间

本公式计算自启用带客户的合同起的天数。如果合同 Status(状态)不是“已启用”,则此字段为空。

IF(ISPICKVAL(Contract_Status__c, "Activated"),
NOW() - Contract_Activated_Date__c, null)

示例联系人管理公式

联系人的客户折扣百分比

本百分比公式在联系人页面上显示客户的 Discount Percent(折扣百分比)字段。

Account.Discount_Percent__c

联系人的客户名

本公式在联系人页面上显示标准 Account Name(客户名)字段。

Account.Name

联系人的客户评级

使用本公式在联系人页面上显示 Account Rating(客户评级)字段。

CASE(Account.Rating, "Hot", "Hot", "Warm", "Warm", "Cold", "Cold", "Not Rated")

联系人的客户网站

本公式在联系人页面上显示标准 Account Website(客户网站)字段。

Account.Website

如果客户网站 URL 很长,使用 HYPERLINK 函数显示标签,如“单击这里”而不是 URL。例如:

IF(Account.Website="", "",
IF(
OR(LEFT(Account.Website, 7) = "http://",LEFT(Account.Website, 8) = "https://"),
HYPERLINK( Account.Website , "Click Here" ),
HYPERLINK( "http://" & Account.Website , "Click Here" )
)
)

如果在 URL 字段未包含任一内容,本公式还会在 URL 前添加必要的 "http://" 或 "https://"。

联系人优先级

本公式基于客户评级和联系人标题评估联系人的重要性。如果客户评级是 Hot(热)或职务以 Executive(主管)开头,则优先级为高 (P1)。如果客户评级为 Warm(温)或职务以 VP(副总裁)开头,则优先级为中等 (P2),同时如果客户评级为 Cold(冷),则优先级为低 (P3)。

IF(OR(ISPICKVAL(Account.Rating, "Hot"), CONTAINS(Title, "Executive")), "P1",
IF(OR(ISPICKVAL(Account.Rating, "Warm"), CONTAINS(Title, "VP")), "P2",
IF(ISPICKVAL(Account.Rating, "Cold"), "P3",
"P3")
)
)

示例日期格式

从日期查找日、月或年

使用函数 DAY( date )、MONTH( date ) 和 YEAR( date ) 以返回它们的各自数字值。使用日期类型值替换 date(例如,TODAY())。

要对日期时间值使用这些函数,首先使用 DATEVALUE() 函数将它们转换为日期。例如,DAY( DATEVALUE( date/time ))。

查看年是否是闰年

本公式确定某年是否是闰年。年仅在可被 400 整除,或可被 4 整除但无法被 100 整除的情况下为闰年。

OR(
MOD( YEAR( date ), 400 ) = 0,
AND(
MOD( YEAR( date ), 4 ) = 0,
MOD( YEAR( date ), 100 ) != 0
)
)
对于华炎魔方有疑问??
微信扫描二维码,我们的技术专家会为您解答。

我们的技术专家拥有十年以上的管理软件开发经验,无论您询问有关华炎魔方的功能、定价、实施或任何其他方面的问题,他们都将随时准备为您提供帮助。

华炎魔方

华炎魔方是新一代低代码平台,基于商业智能和模型驱动,可以按照业务部门的需求,轻松便捷地创建智能化、移动化、个性化的应用程序。

© 2020 华炎软件. 保留所有权利.