GetFieldsOnLayout

Retorna uma lista dos campos em um layout como dados JSON.

Formato

GetFieldsOnLayout( layoutName )

Parâmetros

layoutName - uma expressão de texto que representa o nome do layout. Se layoutName for uma string vazia (""), o layout atual será usado.

Tipo de dados retornado

texto

Originada na versão

22.0

Descrição

Essa função retorna um objeto JSON contendo informações sobre campos no layout especificado que são acessíveis a uma pesquisa.

Os campos que atendem um dos seguintes critérios são exceção:

O objeto JSON retornado tem a seguinte estrutura:

Copiar
{
    "layout_name": "LayoutName",
    "campos": {
        "TableOccurrence::FieldName1": {
            "tipo": "string",
            "descrição": "Comentário do campo (opcional)"
        },
        "TableOccurrence::FieldName2": {
            "tipo": "número"
        }
    }
}
  • A chave layout_name contém o nome do layout.

  • O objeto campos contém pares de chave-valor para cada campo acessível.

  • A chave de cada campo é seu nome completo (por exemplo, TableOccurrence::FieldName).

  • O valor de cada campo é um objeto com uma chave tipo (número, se o tipo de dados do campo for número; caso contrário, string).

  • Uma chave opcional descrição será incluída se o campo tiver um comentário na caixa de diálogo Gerenciar banco de dados. Se algum comentário de campo na tabela começar com [LLM], somente os comentários que começam com [LLM] serão mostrados. O prefixo [LLM] é removido do valor descrição.

Notas

Exemplo 1

Retorna um objeto JSON descrevendo os campos acessíveis a uma busca no layout de Produtos.

Copiar
JSONFormatElements ( GetFieldsOnLayout ( "Produtos" ) )

Se o layout de Produtos tiver estes campos:

Nome do campo Comentário

CreationDate

[LLM] Data de criação do produto

Preço

[LLM] Preço do produto em USD

ProductID

[LLM] Chave primária que identifica exclusivamente um produto

ProductName

[LLM] Nome descritivo do produto

Status

Status do produto em estoque. Os valores são Em estoque, Sob encomenda

g_UserFavorites

Campo global contendo os produtos favoritos do usuário atual

A função retorna:

Copiar
{
    "campos"
    {
        "Products::CreationDate"
        {
            "descrição" : "Data de criação do produto",
            "tipo" : "string"
        },
        "Products::Price"
        {
            "descrição" : "Preço do produto em USD",
            "tipo" : "número"
        },
        "Products::ProductID"
        {
            "descrição" : "Chave primária que identifica exclusivamente um produto",
            "tipo" : "número"
        },
        "Products::ProductName"
        {
            "descrição" : "Nome descritivo do produto",
            "tipo" : "string"
        },
        "Products::Status"
        {
            "tipo" : "string"
        }
    },
    "layout_name" : "Produtos"
}

Observe que, como pelo menos um comentário de campo começa com a tag [LLM], apenas os campos com a tag [LLM] incluem uma descrição. O campo g_UserFavorites é completamente omitido porque é um campo global, que não é acessível por uma busca.

Exemplo 2

Retorna uma lista de todos os campos no layout atual e uma lista de todos os campos no layout atual que são acessíveis por uma busca. Isso pode apontar campos que você não sabia que não eram acessíveis por uma busca.

Copiar
Let (
[
    layoutFields = FieldNames ( Obter ( FileName ) ; Obter ( LayoutName ) ) ;
    findFields = JSONListKeys ( GetFieldsOnLayout ( Obter ( LayoutName ) ) ; "campos" ) ;

    sortedLayoutFields = SortValues ( layoutFields ; 1 ) ;
    sortedFindFields = SortValues ( findFields ; 1 ) ;

    $$result = "Todos os campos no layout atual:" & ¶ & sortedLayoutFields & ¶ & 
    "Destes, os campos acessíveis por uma busca são:" & ¶ & sortedFindFields
] ;
$$result
)

Possível saída armazenada em $$result para o layout de Produtos:

Copiar
Todos os campos no layout atual:
CreationDate
Photo
Price
ProductID
ProductName
Status

Destes, os campos acessíveis por uma busca são:
Products::CreationDate
Products::Price
Products::ProductID
Products::ProductName
Products::Status