字段

字段用于对模型中的数据进行分类。例如,Employee 模型可以包含 FirstName 字段,用于存储人名。

字段对应表格中的列,记录对应表格中的行。数据归入每条记录中的各个字段。例如,在第四条记录中,FirstName 字段可能包含 Bob

您可以使用服务器脚本、客户端脚本和绑定将数据归入各个字段中。

来自脚本的输入必须与字段的类型匹配。您可以确保脚本中包含正确的数据类型,也可以在绑定表达式中使用绑定转换器来将数据转换为正确类型。在可能的情况下,应用制作工具会自动将应用界面中的输入转换为适当类型。

创建字段

在创建字段时,您可以指定该字段的类型,以确定其所包含的数据类型。例如,字符串类型的字段用于存放字符串(如姓名或电子邮件地址),而数字类型的字段用于存放数字。

您可以创建以下字段:

  • 简单字段 - 简单字段最多可以包含一个值。应用中的大多数字段可能都属于简单字段。每条记录中的各字段要么不包含任何内容 (null),要么包含单个值。例如,特定记录中的 JobTitle 字段可能包含以下内容:

    Software Engineer

    您可以按简单字段中的数据对记录进行排序。在“Table”微件中,用作列标题的标签预定义了 onClick 操作以用于对表格进行排序;例如:

    window._am.sortTableBy(widget.datasource,
            widget.datasource.model.fields.LastName,
            widget, window._am.TableState);
  • 列表字段 - 列表字段可以包含多个值。应用制作工具会将列表字段中的值存储为数组。

    每条记录中的各列表字段可以不包含任何值(即为空数组、[]null),也可以包含单个值或多个值。例如,特定记录中的 Measurements 字段可能包含以下内容:

    [0.312,1.245,1.434,1.789, 42]

    您无法按列表字段中的数据对记录进行排序。

适用于简单字段的数据类型

类型 说明 示例
String 由 Unicode 字符组成的字符串 字段:FirstName

内容:Susan

Number 64 位浮点数 字段:EmployeeID

内容:13465

Boolean truefalse 字段:IsActive

内容:true

Date 日期对象 字段:HireDate

内容:2015-09-28

适用于列表字段的数据类型

类型 说明 示例
List<String> 字符串列表 字段:FoodAllergies

数组:["pecans","walnuts","shrimp"]

List<Number> 数字列表 字段:MRITesla

数组:[1.2,1.5,3,7]

List<Boolean> 布尔值列表 字段:Answers

数组:[true,false,false,true]

List<Date> 日期列表 字段:ReviewDate

数组:[2014-07-12,2015-07-15]

设置字段属性

您可以在每个模型的“Fields”标签页中设置字段属性。

名称 说明
类型 字段存储的数据类型:对于简单字段,该属性可以是字符串、数字、布尔值或日期;对于列表字段,该属性可以是列表<字符串>、列表<数字>、列表<布尔值>或列表<日期>。字段类型不可修改。要更改字段类型,请删除字段并重新创建。
名称 用于访问该字段的专用标签。该属性只能包含字母数字字符和下划线,并且必须以字母开头。
SQL 类型 (仅限 Google Cloud SQL)用于存储字段数据的基础 SQL 类型。
显示名 较为简明易懂的字段名称。该名称不必是唯一的,并且可以包含空格和特殊字符。
说明 对于该字段的描述;仅供参考之用。
使用默认值 如果选择此属性,您可以指定在应用创建记录时要使用的默认值。

使用默认值

对于除布尔值类型之外的其他所有简单字段,应用制作工具默认使用 null 作为其默认值(布尔值类型简单字段的默认值为 false)。对于列表字段,应用制作工具使用空数组作为其默认值。

选择“使用默认值”属性后,您可以设置自己的默认值。设置默认值对于不接受 null 的必填字段以及任何具有自然默认状态的字段都很有用。例如,在 Employee 模型中,您可以将 Status 字段的默认值设为 Active,因为每条新记录可能代表一位有效新员工。

对于以下记录,应用制作工具会使用默认值作为初始值:

  • 数据源的草稿记录
  • 在使用手动保存模式的数据源中创建的记录
  • 使用 newRecord() 在服务器上创建的记录
  • 从未指定相应字段值的 Google 电子表格或 CSV 文件中导入的记录

验证数据

对字段使用数据验证限制可以约束字段接受的数据。例如,您可以确保 ZipCode 字段的值为 5 位数,或者 Name 字段的值至少为两个字符长。可用的限制因字段类型而异。

对于列表字段,如果设置了任何验证条件,则列表中的所有项都必须满足这些验证条件。例如,2,3,5,3.235 将无法通过整数验证,因为 3.235 并非整数。

名称 类型 说明
必需 全部 如果选择此项,则当字段为 null 或为包含 null 元素的数组(对于列表字段),或者字段未定义时,记录将不会得到保存。
最小长度和最大长度 字符串 字段的最小和最大字符长度。
允许的值 字符串、数字、日期 一个列表,用于确定字段接受哪些输入。
正则表达式 字符串 一组条件;字符串必须满足这些条件,具有此值的字段所属的记录才会得到保存。

详细了解正则表达式

正则表达式错误消息 字符串 当输入与指定的正则表达式不匹配时应用显示的错误消息。
最小值和最大值 数字、日期

字段的最小值和最大值。

日期值始终根据世界协调时间 (UTC) 进行验证,即使微件已被配置为使用浏览器的时区也是如此。

整数 数字 如果选择此项,则当字段的数字值包含有效小数位时,记录将不会得到保存。您可能会认为,数字 4.4.00..00.0 均属于整数,而数字 1.0000000000000001 不属于整数,但应用制作工具会将后者视为整数,因为小数点后的数字小到可以忽略不计。
SQL 类型 日期

(仅限 Cloud SQL 模型)用于控制应用制作工具处理时区的方式:

  • TIMESTAMP - 包含时区。在将时间写入数据库之前,应用制作工具会将时间转换为 PT(UTC-7 或 UTC-8)。
  • DATE 和 DATETIME - 不包含时区信息。应用制作工具以 PT(UTC-7 或 UTC-8)格式读取和写入数据。

创建包含必填字段的记录

当您尝试创建包含 null 或未定义的必填字段或列表字段为 null 元素的数组的记录时,应用制作工具会抛出一个错误。您可以采取以下措施来避免这些错误:

  • 分配默认值 - 这是最简单的解决方案;分配默认值后,您可以保证字段在创建时存在值,从而避免任何验证错误。
  • (服务器端)使用草稿记录 - 您可以使用 newRecord() 方法在将记录保存到模型之前设置必填字段。
  • (客户端)使用草稿记录 - 采用自动保存模式的数据源包含一条 draft 记录,脚本和数据绑定可以在创建记录之前将值输入该记录中。
  • (客户端)使用采用手动保存模式的数据源 - 在手动保存模式下,用户或脚本可以在保存记录之前填充必填字段,从而避免验证错误。

将数据导入和导出列表字段

您可以通过以下方式将数据导入和导出列表字段:

  • 使用服务器脚本或客户端脚本 - 脚本可以读取和写入列表字段数组中的项。
  • 使用微件 - 您可以在列表字段中使用特定微件和绑定表达式
  • 使用导入和导出功能 - 应用制作工具可以导入和导出包含列表字段的记录。

英文逗号和引号语法

在应用的界面和(用于导入操作或由导出操作生成的)Google 电子表格中,列表字段的内容表示为以英文逗号分隔的列表;例如:

capable truck,magnificent truck,best truck
    

字符串类型列表字段中的项可以包含英文逗号。为了区分内容自带的英文逗号和充当分隔符的英文逗号,建议在界面以及导入和导出操作中分别使用不同的特殊语法。对于导入和导出操作,也可以使用特殊语法来表示双引号。

方面 界面语法 导入和导出操作语法
内容自带的英文逗号 使用 \,(反斜杠加英文逗号) 使用英文双引号括起列表项
内容自带的英文双引号 无特殊语法 使用英文双引号括起列表项,并将内容自带的引号加倍(即将 " 变为 "")。

英文单引号不需要使用特殊语法。如果某项同时包含英文逗号和一个或多个英文双引号,请仅使用一组英文双引号括起该项。

项中所含的前导和尾随空格会在保存数据时被删除。

示例
界面语法 导入和导出操作语法
horse,dog,cat horse,dog,cat
horse,dog\,cat horse,"dog,cat"
horse,a "beautiful" dog,cat horse,"a ""beautiful"" dog",cat
horse,a "beautiful\, strange\," exotic dog, cat horse,"a ""beautiful, strange,"" exotic dog",cat