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 de campo está fora da área de layout (consulte Inserção e remoção de campos em um layout).
-
A condição Ocultar quando é atendida e Aplicar no modo de busca é selecionado (consulte Ocultação ou exibição de objetos de layout).
-
Para Entrada de campo, Modo de busca não está selecionado (consulte Como permitir ou impedir a entrada em campos).
-
Incluir campo para busca rápida não está selecionado (consulte Configuração da busca rápida).
-
O conjunto de privilégios da conta atual não tem acesso de leitura (Edição de privilégios de acesso a registro).
-
O campo é um campo de resumo, global ou de container (consulte Definição de campos de resumo, Definição de campos globais (campos com armazenamento global) e Sobre campos de container).
O objeto JSON retornado tem a seguinte estrutura:
{
"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 valordescrição
.
Notas
-
Essa função usa os mesmos critérios para determinar quais campos são acessíveis por uma busca e quais informações de campo são retornadas como a Etapa de script Realizar busca por Linguagem natural
Exemplo 1
Retorna um objeto JSON descrevendo os campos acessíveis a uma busca no layout de Produtos.
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:
{
"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.
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:
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