查找字段

查找字段可以显示一个用户友好的值,该值绑定到另一个表或值列表中的另一个值。例如,查找字段可以显示一个客户名称,该名称绑定到另一个实体表或列表中的相应客户 ID 号。

要在查找字段中输入值时,用户可以从值列表中选择。这可以使数据输入更快、更准确。

您可以创建的查找字段有两种类型:基于查找实体的查找字段,和基于值列表的查找字段。

基于查找实体的查找字段

在框架中,您可以向实体添加一个字段,以查找另一个实体表中信息。 例如,在演示应用程序的 专辑(Albums) 目录中,有一个 艺术家(Artist) 查找字段。

albums_edit_form_jampy.png

要设置字段的值,用户必须点击字段输入框右侧的按钮,并从出现的 艺术家(Artist) 列表中选择一条记录。然后该字段的值将是选中记录的 id 。 如果在 字段编辑器对话框 中设置了 预输入(Typeahead) 标志,设置字段值的另一种方法可以使用预输入 :

查找字段

对于此类字段,必须在 字段编辑器对话框 中指定 查找实体(Lookup item)查找字段(Lookup field)

当调用 open 方法且 expanded 参数设置为 true(默认)时,服务器上生成的 SQL 查询使用 JOIN 子句来获取此类字段的查找值。 因此,每个这样的字段都有一对值: 第一个值存储对查找实体表中记录的引用(其主键字段的值), 第二个值具有该记录中查找字段的值。

要访问这些值,请使用查找字段的以下属性:

客户端

服务器端

描述

value

value

存储在实体表中的值,它是对查找实体表中记录的引用。

lookup_value

lookup_value

查找实体表中查找字段的值。

有时需要从查找实体表中的同一记录获取两个或多个值。 例如,演示应用程序中,业务台账下的 "发票(Invoices)" 有多个查找字段(“联系人(Customer)”、”账单地址(Billing Address)”、“账单城市(Billing City)” 等),这些字段包含有关客户的信息,所有这些信息都存储在 “客户(Customers)” 实体项对应的表的一条记录中,用于描述该客户。 为了避免在 “发票(Invoices)” 实体对应的表中创建不必要的字段,存储相同的记录引用,并为每个此类字段创建 JOIN ,除 “联系人(Customer)” 之外的所有查找字段都将其 主字段(Master field) 值指向 “联系人客户(Customer)” 字段。 这些字段在实体底层的数据库表中没有对应的字段。 它们的 value 属性始终等于主字段的 value 属性,并且当调用 open 方法时,在服务器上生成的 SQL 查询对所有此类字段使用一个 JOIN 子句。

主字段示例

当用户点击字段输入框右侧的按钮或使用预输入时,应用程序会创建字段对应的查找实体项的副本,设置其 lookup_field 属性为该字段,并触发 on_field_select_value 事件。 编写此事件处理程序以指定将显示的字段,在打开查找实体并显示给用户以选择字段值之前,为其设置过滤器。

查找实体中的查找字段也可以是查找字段,例如:

tracks_lookup_field_jampy.png

要设置此类字段,请使用 查找字段 2(Lookup field 2)查找字段 3(Lookup field 3) 属性。

值列表

有时,查找字段的来源可以定义为值列表。例如, 演示项目曲目(Tracks) 目录中的 媒体类型(MediaType) 字段具有 查找值列表(Lookup value list) 属性,设置为 MediaTypes(媒体类型) 查找列表:

MediaType 字段定义

使用任务的 查找列表对话框 来定义此类查找列表。

另请参阅

查找字段

查找列表