Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19
Gestão de fórmulas

Gestão de fórmulas  


 

Documentos 4D Write Pro podem conter referências a expressões dinâmicas 4D tais como variáveis e campos, além de fórmulas, métodos de projeto e comandos 4D. Expressões específicas como o número de páginas também podem ser referenciadas (ver Inserir documentos e expressões de página)

As expressôes são inseridas em áreas 4D Write Pro utilizando o comando WP INSERT FORMULA. Podem ser lidas com o comando WP Get formulas mas também são devolvidos com os comandos WP Get text

As Fórmulas são avaliadas:
  • quando são inseridas em um objeto formulário que exibe valores computados
  • quando o objeto 4D Write Pro for carregado em um objeto formulário que exibe valores computados
  • quando o comando WP COMPUTE FORMULAS for chamado
  • quando estão "congelados" usando o comando WP FREEZE FORMULAS (se não estiver carregado)
  • antes da impressão (se não estiver computado)
  • antes de exportar para .docx (se fórmula não for mapeada com fórmulas MS Word)
  • quando chamar as ações padrão para congelar, imprimir, exportar ou computar fórmular. Ver Ações padrões.

Fórmulas não são avaliadas quando um documento for carregado (usando WP New, WP INSERT DOCUMENT ou wpArea:=[table]field):

  • se o documento for apenas offscreen,
  • se o documento for exibido onscreen mas o objeto formulário apenas mostrar referências.

Fórmulas viraram valores estáticas se chamar o comando WP FREEZE FORMULAS  (exceto para o número de página e contagem de página, ver abaixo).

Nota de compatibilidade: Manejar expressões usando os comandosST INSERT EXPRESSIONST Get expression, ST COMPUTE EXPRESSIONS, e ST FREEZE EXPRESSIONS estão obsoletos, entretanto ainda são compatíveis em 4D Write Pro por compatibilidade com versões anteriores.. 

Example  

Se quiser substituir a seleção em uma área 4D Write Pro com os conteúdos de uma variável:

 C_TEXT(fullName)
 C_OBJECT($sel)
 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

Pode inserir expressões especiais relacionadas aos atributos de documentos ou atributos de página em qualquer área de documento (corpo, cabeçalho, rodapé) usando o comando WP INSERT FORMULA.

Sintaxe de Formula
Tipo Descrição
This .title Text Titulo definido no atributo wk title
This .author  Text Autor definido no atributo wk author
This .subject  Text Tema 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 criada definida no atributo wk date creation
This .dateModified Date  Modificação de Data definida no atributo wk date modified
This .pageNumber Longint Número de página como definida:
  • do início do documento (padrão) ou
  • do início da seção de página se for definida do início da seção de página. 

Esta fórmula é sempre dinâmica, não é afetada pelo comando WP FREEZE FORMULAS.  

This .pageCount Longint  Contagem de páginas: contagem total de páginas.

Esta expressão é sempre dinâmica, não é afetada pelo comando WP FREEZE FORMULAS.
This .document Object documento 4D Write Pro

 

(*) Importante: This .pageNumber e This .pageCount devem ser utilizadas só diretamente em uma fórmula 4D Write Pro (devem estar presentes na string formula.source). Devolverão valores incorretos se são utilizados pela linguagem 4D dentro de um método chamado pela fórmula. Entretanto, podem ser passadas como parâmetros a um método chamado diretamente pela fórmula:

  • Isto funcionará: « formatNumber(This.pageNumber) »
  • Isto NAO funcionará: « formatNumber » com o método formatNumber processando This.pageNumber.

Por exemplo, para inserir o número de página na área de rodapé:

 $footer:=WP Get footer(4DWP;1)
 WP INSERT FORMULA($footer;Formula(This.pageNumber);wk append)
  //Utilizando Formula(myMethod) com myMethod processando This.pageNumber
  //não funcionaria corretamente

Nota de compabilidade: Variáveis Existentes $wp_ em documentos das versões anteriores a  4D v18 R2 são ainda compatíveis e avaliadas. 



Data

Quando o comando Current date, uma variável data, ou um método que retornar uma data, for inserido em uma fórmula, vai automaticamente ser transformado em texto usando o formato system date short

Hora

Quando o comando Current time, uma variável hora, ou um método retornando uma hora for inserido em uma fórmula, deve ser delimitado com o comando String porque o tipo hora não é compatível com JSON. Conside os exemplos abaixos de fórmulas:

  // Este código é a melhor prática
 $formula1:=Formula(String(Current time)) //OK 
 
  // Este código funciona mas não é recomendado, exceto depois de  "Edit formula"
 $formula2:=Formula from string("String(Current time)") //OK
 
  // Código errado porque valores hora serão exibidos como  longint para segundos (ou  milissegundos), não como hora
 $formula3:=Formula from string("Current time") //NAO é válido
 $formula4:=Formula(Current time//NAO é válido

Expressões tabela e campo inseridas em documentos 4D Write Pro são compatíveis com a definição de estrutura virtual do banco de dados. A estrutura virtual exposta à fórmulas é definida com os comandos SET FIELD TITLES(...;*) e SET TABLE TITLES(...;*). 

Quando uma estrutura virtual for definida:

  • referências à expressões contendo campos exibem nomes virtuais quando o documento 4D Write Pro mostrar referências e não valores
  • WP Get textRetorna nomes de estrutura virtual se a opção wk expressions as source for estabelecida no parâmetro expressões.
  • WP INSERT FORMULAIgnora estrutura virtual e sempre espera nomes reais de tabela/campo

Nota: Quando um documento for exibido em modo "display expressions", referências a tabelas ou campos que não pertencem à estrutura virtual são exibidas com caracteres "?", por exemplo [VirtualTableName]? quando o campo não for definido na estrutura virtual.



Ver também 

Download HDI database
Utilizar os comandos do tema Texto com estilo

 
PROPRIEDADES 

Produto: 4D
Tema: Gestão de fórmulas

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v16
Modificado: 4D v17 R4
Modificado: 4D v18 R2
Renomear: 4D v18 R2

 
ARTICLE USAGE

Referência 4D Write Pro ( 4D v19)