English Bandeira English Italiano Bandeira Italiano Español Bandeira Español Français Bandeira Français Deutsch Bandeira Deutsch Português Bandeira Português
Login
Português Bandeira Português

Login

 

Funções e scripts (campo Fórmula)

Como usar as funções Minimum/Maximum, Ceil up/Ceil down (round) e scripts Ruby

Conteúdo

Funções mínimas/máximas
Funções de teto para cima/para baixo

Scripts (Ruby)

Operadores aritméticos e condicionais
Funções matemáticas

 

Dicas e Truques

Classificação de registros
Сálculos complexos

Contando datas usando scripts

Link para exibição de registro

Funções mínimas/máximas

Vamos ver como as funções funcionam, usando a tabela de produtos como exemplo.

Esta tabela contém as seguintes colunas:
Nome da marca e modelo;
Imagem;
Preço para junho, julho e agosto.

A tarefa é mostrar o preço mais baixo para todos os três meses.

A primeira etapa é adicionar o campo Fórmula ao formulário.

Selecione "Função" na primeira lista suspensa:

Selecione "Mínimo" na segunda lista suspensa:

Em seguida, você precisa selecionar os campos para comparação. Neste caso, são três campos de preço.
E clique no botão "Criar".

Agora apareceu o campo "Menor preço" em nossa tabela, que compara os três valores do registro e mostra o mínimo deles:

A função "Máximo" funciona exatamente ao contrário.

 

Funções de teto para cima/para baixo

Considere as funções "Teto para cima" e "Teto baixo". Aqui está uma tabela com os clientes e seus pedidos.

A tarefa é arredondar o valor na coluna "Valor a pagar".

Crie um novo campo de fórmula e selecione o "Teto para cima" (ou "Teto baixo");
Em seguida, você precisa selecionar o campo obrigatório na lista suspensa e especificar o significado.

Como resultado, obtemos uma coluna com um valor arredondado:

 

Scripts (Ruby)

Os scripts permitem que você execute operações lógicas e aritméticas. Usaremos a tabela "Vendas de verão" como exemplo. Esta tabela contém uma coluna com gerentes, sua duração de trabalho e a soma das vendas do verão.

Vamos criar um novo campo Fórmula, selecione a opção Função e o item Script (Ruby) na lista a seguir. Você pode usar nomes de campo HTML como operandos. Clique no link sob o campo de função "Como inserir dados de registro":

Uma lista de campos disponíveis aparecerá. Selecione um campo da lista e copie o nome HTML:

Além disso, você pode alterar o nome do campo HTML aqui. Basta inserir um novo nome e clicar no botão "Atualizar":

Os seguintes operadores aritméticos e condicionais estão disponíveis:

(+) adição

(-) subtração

(*) multiplicação

(/) divisão

(>) verdadeiro, se o operando esquerdo for maior que o direito

(<) verdadeiro, se o operando esquerdo for menor que o direito

(%) divisão de módulo

(==) verdadeiro, se os valores dos dois operandos forem iguais.


Operadores condicionais:

(if) usando para testar se uma condição é verdadeira. Os valores de condição false e nil são false, enquanto todos os outros serão True.

(elsif) usando para condições adicionais.

(-) usando para testar várias condições.


Vamos voltar, por exemplo. A tarefa é calcular o bônus para os gerentes.

Assuma que a taxa de bônus depende de vários fatores. O primeiro é a experiência de trabalho na empresa.

Vamos criar o seguinte script:

 

if work_months > 12

  300

 

Isso significa que, se um funcionário trabalhar na empresa por mais de 12 meses, receberá um bônus de  300 $.

Vamos criar outra condição. Se o gerente fez mais de 7.000 vendas, receberá 150 $ + 25%.

O script deve ficar assim:

elsif sales > 7000
 (150*0.25)+150

Em todos os outros casos, o bônus será de 150 $

else
 150

É necessário especificar end, para que o script funcione corretamente.

 

 

Agora podemos calcular o bônus para cada gerente:

Métodos e operadores disponíveis: to_f, to_i, to_s, round, floor, ceil, ceiling_up, ceiling_down, include?, if, elsif, else, end.
Para verificar se o campo contém um valor específico, você também pode usar o elemento [].

Exemplo de uso:

if 'suprimentos' ['estoque']
   true
else
   false
end

Além disso, você pode usar duas variáveis: ab

Além dos operadores aritméticos, você pode usar raízes e funções trigonométricas, logarítmicas e transcendentais básicas. As funções devem ser escritas da seguinte forma: Math::function(Field_name). Por exemplo, Math::acos(Field_csIfon). Lista detalhada de funções matemáticas:

Funções trigonométricas

(::cos) Retorna o cosseno do argumento fornecido.
(::sin) Retorna o seno do argumento fornecido.
(::tan) Retorna a tangente do argumento fornecido.

Funções trigonométricas inversas

(::acos) Retorna o arco cosseno do argumento fornecido.
(::asin) Retorna o arco seno do argumento fornecido.
(::atan) Retorna o arco tangente do argumento fornecido.
(::atan2) Retorna a tangente arg de dois argumentos fornecidos.


Funções trigonométricas hiperbólicas

(::cosh) Retorna o cosseno hiperbólico do argumento fornecido.
(::sinh) Retorna o seno hiperbólico do argumento fornecido.
(::tanh) Retorna a tangente hiperbólica do argumento fornecido.


Funções trigonométricas hiperbólicas inversas

(::acosh) Retorna o cosseno hiperbólico inverso do argumento fornecido.
(::asinh) Retorna o seno hiperbólico inverso do argumento fornecido.
(::atanh) Retorna a tangente hiperbólica inversa do argumento fornecido.


Exponenciação e funções logarítmicas

(::exp) Retorna o valor de um determinado valor elevado a uma determinada potência.
(::log) Retorna o logaritmo de um determinado valor em uma determinada base.
(::log10) Retorna o logaritmo de base 10 do argumento fornecido.
(::log2) Retorna o logaritmo de base 2 do argumento fornecido.


Funções de fração e expoente

(::frexp) Retorna a fração e o expoente do argumento fornecido.
(::ldexp) Retorna o valor de uma determinada fração e expoente.


Funções Raiz

(::cbrt) Retorna a raiz cúbica do argumento fornecido.
(::sqrt) Retorna a raiz quadrada do argumento fornecido.


Funções de erro

(::erf) Retorna o valor da função de erro de Gauss para o argumento fornecido.
(::erfc) Retorna o valor da função de erro complementar para o argumento fornecido.


Funções Gama

(::gamma) Retorna o valor da função gama para o argumento fornecido.
(::lgamma) Retorna o valor da função gama logarítmica para o argumento fornecido.

Função Hipotenusa

(::hypot) Retorna sqrt(a**2 + b**2) para os dados a e b.

 

Dicas e Truques

Aqui estão alguns exemplos de como simplificar seu trabalho usando funções.

Temos uma tabela de candidatos a emprego:

A tarefa é dividir os candidatos em três grupos: um candidato adequado, um candidato reserva e um candidato inadequado.

Podemos usar o Formulário de Pesquisa, mas depois teremos que usar todos os critérios:

Um campo de fórmula com uma função vem em socorro. Vamos criar uma nova fórmula de "Seleção".

Temos que dividir os candidatos em três grupos condicionais.

Caso o candidato possua:

- Idade inferior a 45 anos;

- Ensino superior;

- Experiência profissional superior a 5 anos;

- Uma recomendação de um empregador anterior, então tal candidato recebe o status "Adequado".

Para o grupo "Reserva", um candidato precisa ter menos de 50 anos, ensino superior ou superior e mais de 5 anos de experiência profissional.

Todos os outros candidatos recebem o status "Inadequado".

 

Vamos escrever o seguinte código para a função:

if age<45 && "Educação" == "Higher" && exp>5 && "recomendar" == "Yes"
   "Suitable"
elsif age<50 && "Educação" == "Higher" - "Tertiary" && exp>5
   "Reserve"
else
   "Unsuitable "
end

Observe: valores numéricos (incluindo nomes de campo html) não são citados. As aspas são usadas apenas para valores de string.

Como você pode ver na captura de tela a seguir, cada candidato recebeu um status com base nos critérios:

É muito mais fácil pesquisar em um único campo em vez de vários critérios:

O mesmo com a formatação condicional em uma tabela:

Utilizamos o campo "Seleção" para formatar registros na tabela:

É muito mais conveniente gerar um Relatório após pesquisar ou agrupar por um campo:

Que contém todos os candidatos por critérios selecionados:

Não se esqueça das Ações Condicionais e do campo Ação. Por exemplo, crie um botão com a ação "Enviar e-mail", que está disponível no registro apenas com os candidatos "Adequados".

Um campo de função pode ser usado como um critério nas regras de campo. Por exemplo, habilite o campo "Seleção" no formulário:

Em seguida, vamos criar um novo campo "Adicionar à fila" (botão de rádio) com uma escolha de dois valores:

Crie uma regra.

Se o campo "Seleção" consistir em "Reserva", mostre o campo "Adicionar à fila":

É assim que fica no formulário:

As funções permitirão não apenas um gerenciamento de dados mais eficiente, mas também cálculos mais complexos. Por exemplo, considere uma tabela de definição de lucro:

A tarefa é calcular o lucro total.

A fórmula fica assim: lucro total = receita - custo total

Se realizarmos esse cálculo usando fórmulas padrão, teremos que dividir o cálculo em várias fórmulas (calcular separadamente a receita e o custo total).

Usando funções Ruby, você pode fazer este cálculo em um campo:

(preço_de_venda*quantidade)-(custo_de_compra*quantidade)

Lucro total na tabela:

Observação: para o cálculo correto, você deve usar o tipo de campo "Decimal".

 

Contando dias entre datas

Por exemplo, usaremos uma tabela com contratos. Tarefa: mostre quantos dias o contrato terminará.

Crie o seguinte script:

exp_date.mjd - DateTime.now

Onde:

exp_date - nome do campo html.

.mjd method - converte a data para o formato do calendário juliano.

DateTime.now - objeto cujo valor é a data e hora locais atuais.

Como resultado, obtemos uma coluna com o número de dias até o final do contrato.

Aqui está outro exemplo.

Tarefa: determinar o ano de nascimento, tendo apenas a idade de uma pessoa.

Crie o seguinte script:

DateTime.year - era

Where:

era - nome do campo html.

DateTime.year - objeto cujo valor é o ano atual.

Como resultado, obtemos uma coluna com o ano de nascimento de cada pessoa.


Link para visualização de registro

Usando o script, você pode criar um link para a visualização do registro. Vá para o menu "Registros" e abra a visualização do registro.

Open the record view
Copie o link na barra de endereço:
Copy the record view link
Crie um campo de Fórmula. Selecione "Script (Ruby)" na lista. Você precisa usar a variável "a" e um link de registro da etapa anterior (escrito entre aspas). Substitua o ID do registro por "Número de ID de entrada" da lista por -internal_id- valor:
Replace the record ID
Assim, você obterá um link para o registro na tabela:
Link to record view by the table
Você pode usar um link para o widget de registro da mesma maneira:

Link to Record widget