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 ou anotação 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).

  • A chave opcional descrição é incluída se o campo tiver uma anotação (consulte Definição de opções avançadas de campo) ou um comentário (consulte Definição e alteração de campos) definido na caixa de diálogo Gerenciar banco de dados. Se um campo tiver ambos, a anotação será usada como o valor da chave descrição. Se um campo tiver apenas um comentário, então o comentário será usado. Se qualquer um deles começar com [LLM], o prefixo [LLM] é removido para compatibilidade com versões anteriores da convenção de tag [LLM] usada em versões anteriores do FileMaker 26.0.1.

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 Anotação Comentário

CreationDate

Data de criação do produto

Preço

Preço do produto em USD

ProductID

Chave primária que identifica exclusivamente um produto

ID do produto

ProductName

[LLM] Nome descritivo do produto

Status

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 o seguinte:

  • ProductID: a chave descrição contém a anotação (o comentário é ignorado).

  • ProductName: a chave v contém o comentário com o prefixo [LLM] removido (não existe anotação).

  • Status: nenhuma chave descrição aparece (não existe nenhuma anotação ou comentário).

  • g_UserFavorites: o campo é completamente omitido (campos globais não são acessíveis a 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