Fórmulas - CFGX019

A fórmula pode ser criada a partir de uma expressão matemática comum ou de uma expressão ADVPL (Advanced Protheus Language) ou ainda, se preferir, através da execução de uma userfunction (função do usuário) que utiliza variáveis de memória disponíveis pelo Sistema durante sua execução. As variáveis existem apenas no momento da execução da userfunction associada à fórmula, assim, é necessário criar uma userfunction vazia, relacioná-la no cadastro de fórmulas e depois alterá-la para incluir linhas de programa.

Fórmulas - CFGX019

Objetivo da tela:

Permite que o usuário, em pontos diferentes do Sistema, utilize fórmulas para o preenchimento de campos.


Outras Ações/Ações Relacionadas:
 

Ação:

Descrição:

Incluir

Permite ao usuário efetuar a inclusão de fórmulas. 


Utilização de Fórmulas

As fórmulas são utilizadas, principalmente, quando a flexibilidade é importante, por exemplo, em Lançamentos Padronizados.

Nos campos CTA.DÉBITO, CTA.CRÉDITO e HISTÓRICO, as fórmulas são utilizadas para indicar o local onde o Sistema busca a informação. Assim, o campo CTA.DÉBITO formado pelo prefixo “11101” + o código do cliente teria a fórmula "1101"+SE1->E1_CLIENTE.

O sistema interpreta que o conteúdo é formado pelo código 11101 combinado com o código do cliente trazido do campo Cliente (E1_CLIENTE) da tabela SE1 (Contas a Receber).

Sintaxes condicionadas também podem ser feitas. Para clientes em que o primeiro dígito do código é “1”, o lançamento deve ser feito na conta 11101 + código do cliente, caso contrário deve ser lançado na conta 11102 + código do cliente.

IIF(SUBS(SE1->E1_CLIENTE,1,1)=”1”,”11101”+SE1->E1_CLIENTE,“11102” +SE1→E1_CLIENTE).


Validações

Os campos de validação de dados utilizam linguagem AdvPl para autenticar as informações digitadas. Para mais informações, consulte o Dicionário de Dados.


Elaborar Fórmulas

As fórmulas utilizadas devem obrigatoriamente ser escritas em sintaxe AdvPL para que o Sistema possa interpretá-las


  • Indicação de um campo de outro arquivo

Fórmula:
SE1->E1_Valor = valor da moeda 1 do arquivo SE1- Arquivo de Títulos a Receber.


  • Operação entre campos ou partes fixas (alfanumérica)

Utilizado para montar um dado com a junção de informações que estão em campos diferentes ou com uma parte considerada fixa. Seu complemento é referenciado pelo nome de um campo.

Fórmulas:
CONTA CONTÁBIL = SA1->A1_CONTA + SE1-> E1_NATUREZ

HISTÓRICO = “Referente a pagamento de duplicata” + SE1→E1_NUM

Nota:

Operações matemáticas, com e sem condição, são utilizadas na obtenção de um valor representado em vários campos, assim como uma informação cujas fórmulas matemáticas devem ser aplicadas sobre um determinado campo.


Fórmulas:

PREÇO DE VENDA =

IIF(DAY(Dbase)=15,B1_PRV2*0,10,B1_PRV1)

TOTAL DE COMISSÃO PAGA A UM TÍTULO =

(SE1->E1_COMIS1+SE1->E1_COMIS2+SE1->E1_COMIS3+ SE1->E1_COMIS4 + SE1->COMIS5)

Operação com a UserFunction e campos do Sistema.


Aplicação Prática

Utilização do campo Fórmula Prazo do cadastro de produtos para criar uma UserFunction.

1. Crie uma userfunction para o cálculo do prazo de entrega.

Exemplo:

UserFunction FORMPRZ()

Return

2. No Cadastro de Fórmulas, é necessário associar uma userfunction a uma fórmula para o cálculo do prazo de entrega:

Código

001

Descrição

Fórmula prazo de entrega

Fórmula

EXECBLOCK("FORMPRZ",.F.,.F.)

Nesse momento, a userfunction é executada para teste (validação). Se apresentar alguma inconsistência, o sistema não permite a gravação da fórmula.

3. Após o cadastramento da fórmula, é necessário alterar a userfunction para definir a forma do cálculo do prazo de entrega.

Exemplo:

UserFunction FORMPRZ()

// O prazo de entrega mínimo válido para cada 100 peças é o período informado no

// campo Entrega

Return Max((QUANTIDADE/100)*SB1->B1_PE,SB1->B1_PE)

4. Informe no campo Prazo Entrega o código da fórmula cadastrada, neste caso "001".

5. A variável QUANTIDADE utilizada no exemplo da UserFunction FORMPRZ() existirá na execução da função criada e associada à fórmula do prazo.


Tabelas utilizadas

  • SM4 – Fórmula
  • SUO – Campanhas
  • SU5 – Contatos
  • SU7 – Operadores
  • SUS – Prospects
  • SUV – Atendentes In/Out


Conteúdos Relacionados:

Configurando Consultas.



Atualizado em 30/08/2024
Este artigo foi útil?  
Agradecemos sua avaliação.