GetFieldsOnLayout
Devuelve una lista de los campos de una presentación como datos JSON.
Formato
GetFieldsOnLayout( layoutName )
Parámetros
layoutName
: una expresión de texto que representa el nombre de la presentación. Si layoutName
es una cadena vacía (""), se utiliza la presentación actual.
Tipo de datos devuelto
texto
Se origina en
22.0
Descripción
Esta función devuelve un objeto JSON que contiene información sobre los campos de la presentación especificada que están accesibles para las búsquedas.
Se excluyen los campos que cumplan cualquiera de los siguientes criterios:
-
El objeto de campo está fuera del área de la presentación (ver Insertar y eliminar campos en presentaciones).
-
Se cumple la condición Ocultar objeto si y se selecciona Aplicar en Modo Buscar (consulte Ocultar o mostrar objetos de una presentación).
-
Para Entrada de campo, el Modo Buscar no está seleccionado (consulte Permitir o evitar entradas en campos).
-
Incluir campo para búsqueda rápida no está seleccionado (consulte Configurar la búsqueda rápida).
-
El conjunto de privilegios de la cuenta actual no tiene acceso de lectura (Editar privilegios de acceso a registros).
-
El campo es un campo de sumario, global o contenedor (consulte Definir campos de sumario, Definir campos globales (campos con almacenamiento global) y Acerca de los campos contenedor).
El objeto JSON devuelto tiene la siguiente estructura:
{
"layout_name": "LayoutName",
"fields": {
"TableOccurrence::FieldName1": {
"type": "string",
"description": "Comentario de campo (opcional)"
},
"TableOccurrence::FieldName2": {
"type": "number"
}
}
}
-
La clave
layout_name
contiene el nombre de la presentación. -
El objeto
fields
contiene pares clave-valor para cada campo accesible. -
La clave de cada campo es su nombre totalmente calificado (por ejemplo, TableOccurrence::FieldName).
-
El valor de cada campo es un objeto con una clave
type
(number
si el tipo de datos del campo es un número; de lo contrario,string
). -
Se incluye una clave
description
opcional si el campo tiene un comentario en el cuadro de diálogo Administrar base de datos. Si cualquier comentario de campo de la tabla comienza con[LLM]
, solo se mostrarán aquellos comentarios que comiencen con[LLM]
. El prefijo[LLM]
se elimina del valordescription
.
Notas
-
Esta función utiliza los mismos criterios que el paso de guión Ejecutar búsqueda en lenguaje natural para determinar qué campos son accesibles mediante búsqueda y qué información de campo se devuelve.
Ejemplo 1
Devuelve un objeto JSON que describe los campos accesibles mediante búsqueda en la presentación de Productos.
JSONFormatElements ( GetFieldsOnLayout ( "Products" ) )
Si la presentación de Productos tiene estos campos:
Nombre de campo | Comentario |
---|---|
CreationDate |
[LLM] Fecha de creación del producto |
Precio |
[LLM] Precio del producto en USD |
ProductID |
[LLM] Clave principal que identifica de forma única un producto |
ProductName |
[LLM] Nombre descriptivo del producto |
Estado |
Estado del producto en el inventario. Los valores son En existencias, Pedido en curso |
g_UserFavorites |
Campo global que contiene los productos favoritos del usuario actual |
La función devuelve:
{
"fields" :
{
"Products::CreationDate" :
{
"description" : "Fecha de creación del producto",
"type" : "string"
},
"Products::Price" :
{
"description" : "Precio del producto en USD",
"type" : "number"
},
"Products::ProductID" :
{
"description" : "Clave principal que identifica de forma única un producto",
"type" : "number"
},
"Products::ProductName" :
{
"description" : "Nombre descriptivo del producto",
"type" : "string"
},
"Products::Status" :
{
"type" : "string"
}
},
"layout_name" : "Products"
}
Tenga en cuenta que, debido a que al menos un comentario de campo comienza con la etiqueta [LLM]
, solo los campos con la etiqueta [LLM]
incluyen una descripción. El campo g_UserFavorites se omite por completo porque es un campo global y no es accesible mediante búsqueda.
Ejemplo 2
Devuelve una lista con todos los campos de la presentación actual y una lista con todos los campos de la presentación actual a los que se puede acceder mediante búsqueda. De esta forma, puede identificar campos que no sabía que no eran accesibles mediante búsqueda.
Let (
[
layoutFields = FieldNames ( Get ( FileName ) ; Get ( LayoutName ) ) ;
findFields = JSONListKeys ( GetFieldsOnLayout ( Get ( LayoutName ) ) ; "fields" ) ;
sortedLayoutFields = SortValues ( layoutFields ; 1 ) ;
sortedFindFields = SortValues ( findFields ; 1 ) ;
$$result = "Todos los campos de la presentación actual:" & ¶ & sortedLayoutFields & ¶ &
"De ellos, los campos accesibles mediante búsqueda son:" & ¶ & sortedFindFields
] ;
$$result
)
Posible salida almacenada en $$result para la presentación de Productos:
Todos los campos de la presentación actual:
CreationDate
Photo
Price
ProductID
ProductName
Status
De ellos, los campos accesibles mediante búsqueda son:
Products::CreationDate
Products::Price
Products::ProductID
Products::ProductName
Products::Status