Fórmulas e funções
Usando fórmulas
Uma fórmula de planilha é uma expressão que calcula o valor de uma célula.
Introduzir fórmulas
Para introduzir uma fórmula numa área 4D View Pro:
- Selecione a célula onde você digitará a fórmula ou função.
- Digite = (o sinal de igual).
- Digite a fórmula e pressione a tecla Enter.
Ao escrever uma fórmula, pode utilizar diferentes atalhos:
- clique numa célula para introduzir a sua referência na fórmula:
- digite a primeira letra de uma função para entrar. Um menu pop-up que lista as funções e referências disponíveis é exibido, permitindo que você selecione os elementos desejados:
Você também pode criar fórmulas nomeadas que podem ser chamadas por seu nome. Para fazer isso, insira essas fórmulas usando o comando VP ADD FORMULA NAME.
Operadores e Operandos
Todas as fórmulas têm operandos e operadores:
- Operadores: veja Valores e operadores abaixo.
- Operandos inclui várias categorias:
- Os valores (5 tipos de dados são suportados)
- As referências a outras células (relativo, absoluto, misto ou por nome)
- funções standard de folha de cálculo
- funções 4D baseadas em fórmulas 4D e que fornecem acesso a variáveis, campos, métodos, comandos ou expressões 4D.
Valores e operadores
4D View Pro suporta cinco tipos de dados. Para cada tipo de dados, há suporte para valores literais e operadores específicos.
Tipos de dados | Valores | Operadores |
---|---|---|
Number | 1.2 1.2 E3 1.2E-3 10.3x | + (adição) - (subtração) * (multiplicação) / (divisão) ^ (expoente, o número de vezes para multiplicar um número por ele mesmo) % (porcentagem -- dividir o número antes do operador por cem) |
Date | 10/24/2017 | + (data + número de dias -> data) + (data + hora -> data + hora do dia) - (data - número de dias -> data) - (data - data - data -> número de dias entre os dois) |
Hora | 10:12:10 | Operadores de duração: + (adição) - (subtração) * (duração * número -> duração) / (duração / número -> duração) |
String | 'Sophie' ou "Sophie" | & (concatenação) |
Parâmetros | TRUE ou FALSE | - |
Operadores de comparação
Os operadores a seguir podem ser usados com dois operandos do mesmo tipo:
Operador | Comparação |
---|---|
= | igual a |
<> | diferente de |
> | maior que |
< | menor que |
>= | maior ou igual a |
<= | menor que ou igual a |
Precedência do operador
Lista dos operadores, do mais importante para o menos importante:
Operador | Descrição |
---|---|
() | Parênteses (para agrupamento) |
- | Negativo |
+ | Mais |
% | Porcentagem |
^ | Expoente |
* e / | Multiplicar e dividir |
+ e - | Adicionar e subtrair |
& | Concatenar |
= > < >= <= <> | Comparar |
Referências de células
As fórmulas referem-se frequentemente a outras células através de endereços de células. Pode copiar estas fórmulas para outras células. Por exemplo, a fórmula a seguir, inserida na célula C8, adiciona os valores nas duas células acima dela e exibe o resultado.
= C6 + C7
Essa fórmula se refere às células C6 e C7. Ou seja, 4D View Pro é instruído a consultar essas outras células para obter os valores a serem usados na fórmula.
Quando você copia ou move essas fórmulas para novos locais, o endereço de cada célula dessa fórmula muda ou permanece o mesmo, dependendo de como foi digitado.
- Uma referência que muda é chamada de referência relativa e se refere a uma célula de acordo com a distância à esquerda/direita e acima/abaixo da célula com a fórmula.
- Uma referência que sempre aponta para uma determinada célula é chamada de referência absoluta.
- Pode também criar uma referência mista que sempre aponta para uma linha fixa ou coluna.
Notação de referências
Se você usar apenas coordenadas de célula, por exemplo, C5
, 4D View Pro interpreta a referência como relativa. Você pode fazer a referência absoluta colocando um sinal de dólar na frente da letra e do número, como em $C$5
.
Você pode misturar referências absolutas e relativas inserindo um sinal de dólar na frente da letra ou do número sozinho, por exemplo, $C5
ou C$5
. Uma referência mista permite que você especifique a linha ou a coluna como absoluta, enquanto permite que a outra parte do endereço consulte relativamente.
Uma conveniente, maneira rápida e precisa de especificar uma referência absoluta é nomear a célula e usar esse nome no lugar do endereço da célula. Uma referência a uma célula nomeada é sempre absoluta. Você pode criar ou modificar células nomeadas, ou intervalos de células usando o método VP ADD RANGE NAME
.
A tabela seguinte mostra o efeito das diferentes notações:
Exemplo | Tipo de referência | Descrição |
---|---|---|
C5 | Relativo | A referência é a localização relativa da célula C5, dependendo da localização da célula na qual a referência é usada pela primeira vez |
$C$5 | Absoluto | A referência é absoluta. Referir-se-á sempre à célula C5, independentemente do local onde for utilizada. |
$C5 | Mixed | A referência é sempre à coluna C, mas a referência de linha é relativa à localização da célula na qual a referência é usada pela primeira vez. |
C$5 | Mixed | Referência é sempre a linha 5, mas a referência da coluna é relativa à localização da célula na qual a referência é usada pela primeira vez |
Nome da célula | Absoluto | A referência é absoluta. Sempre irá se referir à célula ou intervalo nomeado não importa onde a referência seja usada. |
Funções incorporadas
Funções da planilha são fórmulas pré-definidas usadas para calcular valores de célula. Quando você digita a primeira letra da função a ser inserida, um menu pop-up que lista as funções e referências disponíveis é exibido, permitindo que você selecione os elementos desejados:
Consulte a lista ampliada de funções de SpreadJS para obter detalhes e exemplos.
Funções 4D
O 4D View Pro permite que você defina e chame funções personalizadas 4D, que executam fórmulas 4D. O uso de funções personalizadas 4D amplia as possibilidades de seus documentos 4D View Pro e permite interações poderosas com o banco de dados 4D.
Funções personalizadas 4D fornecem acesso, de dentro de suas fórmulas 4D View Pro, para:
- Variáveis processo 4D,
- campos,
- métodos projeto,
- Comandos de linguagem 4D,
- ou qualquer expressão 4D válida.
As funções personalizadas 4D podem receber parâmetros da área 4D View Pro e retornar valores.
Você declara todas as suas funções usando o método VP SET CUSTOM
. Exemplos:
o:=New object
//Name of the function in 4D View Pro: "DRIVERS_LICENCE"
$o.DRIVERS_LICENCE:=New object
//process variable
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicence)
//table field
$o.DRIVERS_LICENCE.formula:=Formula([Users]DriverLicence)
//project method
$o.DRIVERS_LICENCE.formula:=Formula(DriverLicenceState)
//4D command
$o.DRIVERS_LICENCE:=Formula(Choose(DriverLicence; "Obtained"; "Failed"))
//4D expression and parameter
$o.DRIVERS_LICENCE.formula:=Formula(ds. Users.get($1). DriverLicence)
$o.DRIVERS_LICENCE.parameters:=New collection
$o.DRIVERS_LICENCE.parameters.push(New object("name"; "ID"; "type"; Is longint))
Veja também 4D View Pro: Use fórmulas 4D em sua planilha (blog post)
Exemplo Hello World
Queremos imprimir "Hello World" em uma célula de área do 4D View Pro usando um método de projeto 4D:
- Crie um método projeto "myMethod" com o seguinte código:
#DECLARE->$hw Text
$hw:="Hello World"
- Execute o código a seguir antes de abrir qualquer formulário que contenha uma área 4D View Pro:
Case of
:(Form event code=On Load)
var $o : Object
$o:=New object
// Definir a função "vpHello" a partir do método "myMethod"
$o.vpHello:=New object
$o.vpHello.formula:=Formula(myMethod)
VP SET CUSTOM FUNCTIONS("ViewProArea";$o)
End case
-
Editar o conteúdo de uma célula numa área 4D View Pro e digitar:
"myMethod" é então chamado por 4D e a célula aparece:
Parâmetros
Os parâmetros podem ser passados para funções 4D que chamam métodos de projeto usando a seguinte sintaxe:
=METHODNAME(param1,param2,...,paramN)
Esses parâmetros são recebidos em methodName em $1, $2...$N.
Observe que os ( ) são obrigatórios, mesmo que nenhum parâmetro seja passado:
=METHODWITHOUTNAME()
Você pode declarar o nome, o tipo e o número de parâmetros por meio da coleção de parâmetros da função que declarou usando o método VP SET CUSTOM FUNCTIONS. Opcionalmente, você pode controlar o número de parâmetros passados pelo usuário através das propriedades minParams e maxParams.
Para obter mais informações sobre os parâmetros de entrada compatíveis, consulte a descrição do método VP SET CUSTOM FUNCTIONS.
Se você não declarar parâmetros, os valores podem ser seguidamente passados para os métodos (eles serão recebidos em $1, $2. .) e seu tipo será convertido automaticamente. Datas no jstype serão passadas como objeto no código 4D com duas propriedades:
├Property"} Typeive ├---├---├ ├valueDateDateDateDateDate value├ ├Time em segundos.
Métodos de projeto 4D também podem retornar valores na fórmula da célula 4D View Pro através de $0. São suportados os seguintes tipos de dados para os parâmetros devolvidos:
-
text (convertido em uma cadeia de caracteres em 4D View Pro)
-
real/longint (convertido em número no 4D View Pro)
-
data (convertida para o tipo JS Date no 4D View Pro - hora, minuto, segundo = 0)
-
time (convertido para JS Date type em 4D View Pro - data na data base, ou seja, 12/30/1899)
-
boolean (convertido para bool no 4D View Pro)
-
picture (jpg,png,gif,bmp,svg outros tipos convertidos para png) cria uma URI (data:image/png; ase64,xxxx) e depois usado como plano de fundo em 4D View Pro na célula onde a fórmula é executada
-
objeto com as seguintes duas propriedades (permitindo passar uma data e hora):
Propriedade Tipo Descrição value Date Valor data time Real Tempo em segundos
Se o método 4D não retornar nada, uma string vazia será automaticamente retornada.
É devolvido um erro na célula 4D View Pro se:
- o método 4D retorna outro tipo além do listado acima
- um erro ocorreu durante a execução do método 4D (quando o usuário clica no botão "abortar").
Exemplo
var $o : Object
$o.BIRTH_INFORMATION:=New object
$o.BIRTH_INFORMATION.formula:=Formula(BirthInformation)
$o.BIRTH_INFORMATION.parameters:=New collection
$o.BIRTH_INFORMATION.parameters.push(New object("name";"First name";"type";Is text))
$o.BIRTH_INFORMATION.parameters.push(New object("name";"Birthday";"type";Is date))
$o.BIRTH_INFORMATION.parameters.push(New object("name";"Time of birth";"type";Is time))
$o.BIRTH_INFORMATION.summary:="Returns a formatted string from given information" VP SET CUSTOM FUNCTIONS("ViewProArea"; $o)
Compatibidade
Soluções alternativas estão disponíveis para declarar campos ou métodos como funções em suas áreas do 4D View Pro. Essas soluções são mantidas por motivos de compatibilidade e podem ser usadas em casos específicos. No entanto, é recomendável usar o método VP SET CUSTOM FUNCTIONS
.
Referência a campos utilizando a estrutura virtual
4D View Pro permite que você faça referência a campos 4D usando a estrutura virtual do banco de dados, ou seja, declarada por meio da função SET TABLE TITLES
e/ou SET FIELD TITLES
com o parâmetro *. Essa solução alternativa pode ser útil se o sua aplicação já depender de uma estrutura virtual (caso contrário, recomenda-se usar VP SET CUSTOM FUNCTIONS
).
ATENÇÃO: não pode utilizar a estrutura virtual e
VP SET CUSTOM FUNCTIONS
simultaneamente. Assim queo VP SET CUSTOM FUNCTIONS
é chamado, as funções baseadas nos comandosSET TABLE TITLES
eSET FIELD TITLES
são ignoradas na área do 4D View Pro.
Requisitos
- O campo deve pertencer à estrutura virtual do banco de dados, ou seja, deve ser declarado por meio do comando
SET TABLE TITLES
e/ouSET FIELD TITLES
com o parâmetro * (consulte o exemplo), - Os nomes das tabelas e dos campos devem estar em conformidade com (consulte o standard ECMA ECMA Script),
- O tipo de campo deve ser compatível com 4D View Pro (veja acima).
Um erro será retornado na célula do 4D View Pro se a fórmula chamar um campo que não esteja em conformidade.
Chamar um campo virtual numa fórmula
Para inserir uma referência a um campo virtual em uma fórmula, insira o campo com a seguinte sintaxe:
TABLENAME_FIELDNAME()
Por exemplo, se você declarou o campo "Name" da tabela "People" na estrutura virtual, poderá chamar as seguintes funções:
=PEOPLE_NAME()
=LEN(PEOPLE_NAME())
Se um campo tiver o mesmo nome de um [método 4D], ele terá prioridade sobre o método.
Exemplo
Queremos imprimir o nome de uma pessoa em uma célula de área do 4D View Pro usando um campo virtual 4D:
- Criar uma tabela "Employee" com um campo "L_Name":
-
Execute o seguinte código para inicializar uma estrutura virtual:
ARRAY TEXT($tableTitles;1)
ARRAY LONGINT($tableNum;1)
$tableTitles{1}:="Emp"
$tableNum{1}:=2
SET TABLE TITLES($tableTitles;$tableNum;*)
ARRAY TEXT($fieldTitles;1)
ARRAY LONGINT($fieldNum;1)
$fieldTitles{1}:="Name"
$fieldNum{1}:=2 //sobrenome
SET FIELD TITLES([Employee];$fieldTitles;$fieldNum;*) -
Edite o conteúdo de uma célula na área do 4D View Pro e digite "=e":
- Selecionar EMP_NAME (utilizar a tecla Tab) e introduzir o fecho.
- Validar o campo para apresentar o nome do empregado atual:
A tabela [Employee] tem de ter um registo atual.
Declaração dos métodos permitidos
Você pode chamar diretamente os métodos do projeto 4D a partir de suas fórmulas do 4D View Pro. Por motivos de segurança, você deve declarar explicitamente os métodos que podem ser chamados pelo usuário com o método VP SET ALLOWED METHODS.
Requisitos
Para ser chamado numa fórmula 4D View Pro, um método projeto deve ser:
- Permitido: ele foi declarado explicitamente usando o método VP SET ALLOWED METHODS.
- Executável: pertence ao projeto host ou a um componente carregado com a opção "Compartilhado por componentes e projeto host" ativada (consulte Compartilhamento de métodos projeto).
- Não entrar em conflito com uma função de planilha do 4D View Pro existente: se você chamar um método de projeto com o mesmo nome de uma função integrada do 4D View Pro, a função será chamada.
Se nem o VP SET PERSONALIZADO nem o método VP SET PERMITIDO DE METES foi executado durante a sessão, As funções personalizadas do 4D View Pro dependem dos métodos permitidos definidos pelo comando
genérico do 4D SET PERMITIDO METES
. Nesse caso, os nomes dos métodos projeto devem estar em conformidade com a gramática do identificador JavaScript (consulte o ECMA Script standard). A opção global de filtragem na caixa de diálogo Configurações (ver Acesso aos Dados) é ignorada em todos os casos.