Fórmulas
Visão Geral
4D Write Pro documents can contain references to 4D formulas such as variables, fields, expressions, project methods, or 4D commands. Specific information such as the page number can also be referenced through formulas (see Inserting document and page expressions below).
Inserting formulas in 4D Write Pro areas is done with the WP INSERT FORMULA command and can be read using the WP Get formulas command. Eles também são devolvidos pelo comando WP Get text.
Formula evaluation
As fórmulas são avaliadas:
- quando são inseridos em um objeto de formulário que exibe valores computados
- quando o objeto 4D Write Pro é carregado em um objeto de formulário que exibe valores computados
- quando o comando WP COMPUTE FORMULAS for chamado
- quando são "congelados" usando o comando WP FREEZE FORMULAS (se ainda não tiverem sido computados)
- antes da impressão (se ainda não tiver sido computado)
- antes de exportar para .docx (se a fórmula não puder ser mapeada com fórmulas do MS Word)
- quando as ações padrão para congelar, imprimir, exportar ou calcular fórmulas são chamadas. Veja Ações padrão
As fórmulas não são avaliadas quando um documento é carregado (usando WP New, WP Insert document body, ou wpArea:=[table]field):
- se o documento estiver apenas fora da tela,
- se o documento for exibido na tela, mas o objeto de formulário mostrar apenas referências.
As fórmulas se tornam valores estáticos se você chamar o comando WP FREEZE FORMULAS (exceto para número de página e contagem de páginas, veja abaixo).
Nota de compatibilidade: O manuseio de expressões usando os comandos ST INSERT EXPRESSION, ST Get expression, ST COMPUTE EXPRESSIONS e ST FREEZE EXPRESSIONS está obsoleto; no entanto, ele ainda é suportado no 4D Write Pro para fins de compatibilidade.
For security reasons, when formulas are pasted from a different 4D application or an external environment, only the computed values (text or images) available at the time of copying are pasted. If no value was available (e.g., the formula was never computed), 4D pastes the formula source as plain text.
Exemplo
Você deseja substituir a seleção em uma área do 4D Write Pro pelo conteúdo de uma variável:
var fullName: Text
var $sel: Object
fullName:="John Smith"
$sel:=WP Selection range(4DWPArea)
Case of
:(Form event code=On Clicked)
WP INSERT FORMULA($sel;Formula(fullName);wk replace)
End case
Objeto de contexto de fórmula
Você pode inserir expressões especiais relacionadas aos atributos de documento em qualquer área de documento (corpo, cabeçalho, rodapé) usando o comando WP Insert formula. Em uma fórmula, um objeto de contexto de fórmula é exposto automaticamente. Você pode usar as propriedades desse objeto por meio de This:
| Propriedades | Tipo | Descrição |
|---|---|---|
| This.title | Text | Título definido no atributo wk title |
| This.author | Text | Autor definido no atributo wk author |
| This.subject | Text | Assunto definido no atributo wk subject |
| This.company | Text | Empresa definida no atributo wk company |
| This.notes | Text | Notas definidas no atributo wk notes |
| This.dateCreation | Date | Data de criação definida no atributo wk date creation |
| This.dateModified | Date | Data de modificação definida no atributo wk date modified |
| This.pageNumber (*) | Number | Page number as it is defined:
|
| This.pageCount (*) | Number | Page count: total count of pages. This formula is always dynamic; it is not affected by the WP FREEZE FORMULAS command. |
| This.document | Object | Documento 4D Write Pro |
| This.data | Object | Contexto dos dados do documento 4D Write Pro definido por WP SET DATA CONTEXT |
| This.sectionIndex | Number | O índice da seção no documento 4D Write Pro a partir de 1 |
| This.pageIndex | Number | O número real da página no documento 4D Write Pro a partir de 1 (independentemente dos números de página da seção) |
| This.sectionName | String | O nome que o usuário dá à seção |
When you work with tables, additional context expressions such as This.item are available.
(*) Importante: This.pageNumber, This.pageIndex e This.pageCount devem ser usados apenas diretamente em uma fórmula do 4D Write Pro (eles devem estar presentes na string formula.source). Eles retornarão valores incorretos se forem usados pela linguagem 4D em um método chamado pela fórmula. No entanto, eles podem ser passados como parâmetros para um método chamado diretamente pela fórmula:
- Isso funcionará: " formatNumber(This.pageNumber) "
- Isso NÃO funcionará: " formatNumber " com o método formatNumber processando This.pageNumber.
Por exemplo, para inserir o número da página na área do rodapé:
$footer:=WP Get footer(4DWP;1)
WP INSERT FORMULA($footer;Formula(This.pageNumber);wk append)
//Usando Formula(myMethod) com myMethod processando This.pageNumber
//não funcionaria corretamente
For more information about formula insertion, see WP INSERT FORMULA.
Inserção de fórmulas de data e hora
Date
Quando o comando Current date, uma variável de data ou um método que retorna uma data é inserido em uma fórmula, ele será automaticamente transformado em texto usando o formato curto de data do sistema.
Time
Quando o comando Current time, uma variável de tempo ou um método que retorna um tempo é inserido em uma fórmula, ele deve ser incluído em um comando String porque o tipo de tempo não é compatível com JSON. Considere os seguintes exemplos de fórmulas:
// Este código é a melhor prática
$formula1:=Formula(String(Current time)) //OK
// Este código funcionará, mas geralmente não é recomendado, exceto após "Editar fórmula"
$formula2:=Formula from string("String(Current time)") //OK
// Código errado porque os valores de tempo seriam exibidos como um longint para segundos (ou milissegundos), não como um tempo
$formula3:=Formula from string("Current time") //NOT valid
$formula4:=Formula(Current time) //NOT valid
Compatibilidade da estrutura virtual
As expressões de tabela e campo inseridas nos documentos do 4D Write Pro são compatíveis com a definição da estrutura virtual do banco de dados. A estrutura virtual exposta às fórmulas é definida por meio dos comandos SET FIELD TITLES(...;*) e SET TABLE TITLES(...;*).
Quando uma estrutura virtual for definida:
- referências a expressões que contenham campos mostrarão nomes virtuais quando o documento 4D Write Pro mostrar referências e não valores.
- WP Get text retorna nomes de estrutura virtual se a opção
wk expressions as sourceestiver definida no parâmetro de expressões. - WP Insert formula ignora a estrutura virtual e sempre espera tabela/nomes de campo reais
Quando um documento for exibido no modo "exibir expressões", referências a tabelas ou campos que não pertençam à estrutura virtual são exibidas com "? " caracteres, por exemplo [VirtualTableName]?` quando o campo não estiver definido na estrutura virtual.
Exibindo fórmulas
Você pode controlar como as fórmulas são exibidas em seus documentos:
- como valores ou como referências
- quando mostrados como referências, exibem o texto, o símbolo ou o nome da fonte.
Referências ou valores
Por padrão, as fórmulas 4D são exibidas como valores. Quando você insere uma fórmula 4D, o 4D Write Pro calcula e exibe seu valor atual. Se você quiser saber qual fórmula é usada ou qual é o nome dela, precisará exibi-la como referência.
Para exibir fórmulas como referências, você pode:
- verifique a opção Mostrar referências na lista de propriedades (veja Configurando propriedades de visualização), ou
- usar a ação padrão visibleReferences (consulte Expressões dinâmicas), ou
- use o comando WP SET VIEW PROPERTIES com o seletor
wk visible referencescomo True.
As referências à fórmula podem ser exibidas como:
- textos de origem (padrão)
- symbols
- names
Referências como textos de origem (padrão)
Quando as fórmulas forem exibidas como referências, por padrão, o texto de origem da fórmula aparece em seu documento, com um fundo cinza padrão (pode ser personalizado usando o seletor wk formula highlight).
Por exemplo, se você tiver inserido a data atual junto com um formato, a data será exibida:
Quando você exibir fórmulas como referências, a fonte da fórmula é exibida:
Referências como símbolos
Quando os textos de origem da fórmula forem exibidos em um documento, o design pode ser confuso se você trabalhar com modelos sofisticados usando tabelas, por exemplo, e quando as fórmulas forem complexas:

Neste caso, você pode exibir referências de fórmula como símbolos , para que o documento seja mais compacto:

Para exibir referências de fórmulas como símbolos, você pode:
- marcar a opção Exibir fonte de fórmula como símbolo na lista de propriedades (consulte Configuração das propriedades da visualização) ou
- usar a ação padrão de FormulaAsSymbol (veja Usando as ações 4D Write Pro), ou
- use o comando WP SET VIEW PROPERTIES com o seletor
wk display formula as symbolcomo True.
Referências como nomes
Você pode atribuir nomes a fórmulas, fazendo com que 4D Write Pro modelos de documentos mais fáceis de ler e entender para os usuários finais. Quando fórmulas forem exibidas como referências (e não exibidas como símbolos) e você definiu um nome para uma fórmula, o nome da fórmula é exibido.
Por exemplo, as referências de fórmula a seguir são exibidas como texto fonte por padrão:
Se você atribuir nomes de fórmulas, eles serão exibidos em vez de textos:
Para atribuir um nome a uma fórmula, você precisa usar o comando WP Insert formula com um parâmetro objeto. Por exemplo:
//insere o dia anterior no documento
$o:=New object("formula";Formula(Current date-1); "name"; "Yesterday")
$range:=WP Text range(WPArea;wk start text;wk end text)
WP INSERT FORMULA($range;$o;wk append)
Somente as fórmulas inline podem ter um nome (fórmulas para imagens ancoradas, linhas de quebra e fórmulas de fonte de dados de tabela não podem ter nomes).
Dicas de fórmula
Qualquer que seja o modo de exibição da fórmula, você pode obter informações adicionais sobre as fórmulas por meio de tips que são exibidas quando você passar o mouse sobre as fórmulas.
-
Quando as fórmulas não tiverem nomes, as dicas fornecem o texto de origem das fórmulas:
-
Quando as fórmulas tiverem nomes, mas são exibidas como valores ou como símbolos, a dica fornece o nome das fórmulas:
Nesse contexto, você pode exibir o texto de origem da fórmula pressionando Ctrl (Windows) ou Cmd (macOS) enquanto passa o mouse sobre a fórmula.
- Quando as fórmulas tiverem nomes e forem exibidas como nomes, nenhuma dica será exibida como padrão.
You can display the source text of the formula by pressing Ctrl (Windows) or Cmd (macOS) while hovering on the formula:
[
Veja também
Download do banco de dados HDI
Usando comandos do tema Styled Text