Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.6
Parse formula
|
Parse formula ( formula {; opções}{; mensagemErro} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
formula | Texto |
![]() |
Fórmula de texto simples | |||||
opções | Inteiro longo |
![]() |
Instruções para input/output | |||||
mensagemErro | Texto |
![]() |
Mensagem de erro (string vazia se não houver erro) | |||||
Resultado | Texto |
![]() |
Fórmula transformada (texto simples) | |||||
A função Parse formula analisa a fórmula 4D, verifica sua sintaxe e devolve seu formulário normalizado. Isto permite que a fórmula continue sendo válida no caso de que se mude o nome de uma linguagem 4D ou elemento de estrutura (comando, constante, tabela, campo ou0 Plugin 4D).
Parse formula pode ser usada para avaliar e traduzir fórmulas da maneira abaixo:
* As estruturas virtuais são definidas utilizando os comandos SET TABLE TITLES e SET FIELD TITLES (* parâmetro requerido).
** Os equivalentes tokenizados são elementos de estrutura e da linguagem 4D em texto sem formato expressos com a sintaxe do token, como é mostrado abaixo (consulte também Usar tokens em fórmulas):
[Table:1]Field:1+String:C10(1)
Em fórmula, passe uma fórmula em texto sem formato. Pode usar nomes de estruturas reais ou virtuais, assim como equivalentes tokenizados.
Sem importar os tipos de nome utilizados em fórmula, como padrão Parse formula devolve a linguagem 4D real ou os nomes dos elementos da estrutura sem tokens de texto.
O parâmetro opcional opções lhe permite especificar como se expressa ou se devolve fórmula utilizando as constantes abaixo do tema Fórmulas. Pode combinar constantes para designar tanto o formato de entrada como o de saída da fórmula devolvida.
Constante | Valor | Comentário |
Formula in with virtual structure | 1 | A fórmula é expressa utilizando uma estrutura virtual (nomes personalizados). Como padrão, a fórmula devolvida contém nomes reais. |
Formula out with virtual structure | 2 | A fórmula devolvida deve conter nomes personalizados (virtual). |
Formula out with tokens | 4 | A fórmula devolvida deve conter texto tokenizado (por exemplo: Cxx). |
O parâmetro opcional mensagemErro receberá uma mensagem de erro se houver um erro de sintaxe em fórmula. Se não houver nenhum erro, será devolvido uma string vazia.
ARRAY TEXT($t1;1)
ARRAY LONGINT($t2;1)
$t1{1}:="Virtual table"
$t2{1}:=1
SET TABLE TITLES($t1;$t2;*)
ARRAY TEXT($tf1;1)
ARRAY LONGINT($tf2;1)
$tf1{1}:="Virtual field"
$tf2{1}:=2
SET FIELD TITLES([Table_1];$tf1;$tf2;*)
//Estrutura virtual para tabela e nome de campo equivalente
$parsedFormula:=Parse formula("[Virtual table]Virtual field";Formula in with virtual structure;$errorMessage)
//return [Table_1]Field_2
//Nome de tabela e campo para equivalente de estrutura virtual
$parsedFormula:=Parse formula("[Table_1]Field_2";Formula out with virtual structure;$errorMessage)
//return [Virtual table]Virtual field
//Tabela e nome de campo para o formulário tokenizado equivalente
$parsedFormula:=Parse formula("String([Table_1]Field_2)";Formula out with tokens;$errorMessage)
//return String:C10([Table_1:1]Field_2:2)
//pede ao usuário para digitar sua fórmula favorita
$formula:=""
EDIT FORMULA([Table_1];$formula)
//salva a fórmula do usuário para uso posterior
CREATE RECORD([users_preferences])
$persistentFormula:=Parse formula($formula;Formula out with tokens)
[users_preferences]formula:=$persistentFormula
SAVE RECORD([users_preferences])
//later: executa a fórmula previamente salva
CREATE RECORD([Table_1])
EXECUTE FORMULA([users_preferences]formula)
Formula from string
SET FIELD TITLES
SET TABLE TITLES
Usar tokens em fórmulas
Produto: 4D
Tema: Fórmulas
Número
1576
Manual de linguagem 4D ( 4D v20)
Manual de linguagem 4D ( 4D v20.1)
Manual de linguagem 4D ( 4D v20.2)
Manual de linguagem 4D ( 4D v20.3)
Manual de linguagem 4D ( 4D v20.4)
Manual de linguagem 4D ( 4D v20.5)
Manual de linguagem 4D ( 4D v20.6)