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 JSON devuelto tiene la siguiente estructura:

Copiar
{
    "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 valor description.

Notas 

Ejemplo 1 

Devuelve un objeto JSON que describe los campos accesibles mediante búsqueda en la presentación de Productos.

Copiar
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:

Copiar
{
    "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.

Copiar
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:

Copiar
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