A linguagem 4D é composta por vários componentes que ajudam a executar tarefas e gerenciar seus dados.
Tipos de dados: Classificações dos dados em um banco de dados. Veja a discussão desta seção, bem como a discussão detalhada na seção Tipos de dados
Variáveis: locais de armazenamento temporário de dados na memória. Veja discussão detalhada na seção Variáveis.
Operadores: Símbolos que executam o cálculo entre os dois valores. Veja a discussão desta seção, bem como a discussão detalhada na seção Operadores e suas subseções.
Expressões: Combinações de outros componentes que resultam em um valor. Veja a discussão nesta seção.
Comandos: instruções integradas Built-in para executar uma ação. Todos os comandos 4D, tais como ADD RECORD,, são descritos neste manual, agrupados por tema e, quando necessário, o tema é precedido por uma seção introdutória. Você pode usar Plug-ins 4D para adicionar novos comandos ao seu ambiente de desenvolvimento 4D. Por exemplo, uma vez que você adicionou o Plug-in 4D Write no seu sistema 4D, os comandos 4D Write-se tornam disponíveis para criar e manipular documentos de processamento de texto.
Constantes predefinidas: valores constantes acessíveis por nome. Por exemplo, XML DATA é uma constante (valor 6). As constantes pré-definidas permitem escrever código mais legível. As constantes são descritas com os comandos que os utilizam e estão totalmente listadas na seção Lista de temas constantes
Métodos: Instruções que você escreve com todas as partes da linguagem listadas aqui. Veja mais detalhes na seção de Métodos e suas sub-seções.
Esta seção apresenta os Tipos de dados, Operadores e Expressões. Para os outros componentes, consulte as seções citadas acima.
Além disso:
Componentes de linguagem, como variáveis, têm nomes chamados de identificadores. Para uma discussão detalhada sobre os identificadores e as regras para nomear objetos, consulte a seção Convenções
Para saber mais sobre variáveis array, consulte a seção Arrays
Se você planeja compilar o banco de dados, consulte a seção Comandos de Compilação bem como o Manual de Desenho 4D.
A partir de 4D v15, o editor de métodos 4D utiliza o padrão "Inglês-US" como língua internacional, independentemente da versão 4D ou da configuração do sistema local. Esta funcionalidade neutraliza as variações regionais que possam afetar a interpretação do código entre aplicativos 4D (formatos de data, por exemplo) aplicações; e nas versões francesa de 4D, os comandos e as constantes são agora escritas em "Inglês-US" como já acontecia em outros idiomas.
Essa configuração padrão fornece aos desenvolvedores 4D várias vantagens:
Facilita a troca de código entre desenvolvedores, independentemente do seu país, configuração regional, ou da versão 4D usada. Um método 4D pode agora ser alterado por simples copiar/colar, ou salvo em um arquivo de texto, sem problemas de compatibilidade.
Também torna possível a inclusão de métodos 4D em ferramentas de controle de fontes, que muitas vezes exigem que as exportações sejam independentes das opções regionais e idiomas.
Essa configuração pode ser desabilitada através da opção "Usar a configuração do sistema regional" no diálogo Preferências de 4D (ver Página Métodos).
As configuraçõesInglês-USpodem ter váriosefeitos sobrea maneira de escrevermétodos.Isto se refere a códigoescrito emmodo de desenvolvimento, assim comofórmulas emaplicativos implementados.Neste modo, o códigodeve estar de acordocomas regrasseguintes:
Separadores decimaisparanúmeros reaisdevemser agorapontos (".") emtodas as versões(e nãovírgulas (",")como é o costumeem português e francês,por exemplo).
Constantes de dataagoradevem usar o formatoISO(!AAAA-MM-DD!) em todas as versões.
Comandoenomes de constantesdevem ser em Inglês(estaalteração diz apenas respeito às versões francesa de 4D, jã que estejá era o caso comoutros idiomas).
Nota: Oeditor de métodosincluimecanismos específicosque corrigemautomaticamenteentradas incorretas, se necessário.
A tabela a seguirilustraas diferençasentre o código4Dv15em(ou superior)e em versõesanteriores:
Exemplo de código em métodos/fórmulas
4D v15 and higher (modo padrão, todas as versões)
a:=12.50
b:=!2013-12-31!
Current date
4D v14 or 4D v15 (preferencia marcada para versão US)
a:=12.50
b:=!12/31/2013!
Current date
4D v14 or 4D v15 (preferencia marcada para versão Francesa)
a:=12,50
b:=!31/12/2013!
Date du jour
Nota: Quando a preferência for marcada, formatos de data a número real são baseadas nas preferências de sistema.
Na linguagem, os diferentes tipos de dados que podem ser armazenados em um banco de dados 4D são referidos como tipos de dados. Existem sete tipos básicos de dados: string, numérico, data, hora, Booleano, imagem e ponteiro.
String: Uma série de caracteres, como "Olá". Alfa e campos de texto, string e variáveis de texto, são do tipo de dados string.
Numéricos: números, como 2 ou 1.000,67. Inteiro, Inteiro Longo, e Real e as variáveis são do tipo de dados numéricos.
Datas: As datas do calendário, como 20/12/89. Campos de data e as variáveis são do tipo de dados data.
Hora: Horas, incluindo as horas, minutos e segundos, como 01:00:00 ou 04:35:30. campos de tempo e as variáveis são do tipo de dados tempo.
Booleano: os valores lógicos de VERDADEIRO ou FALSO. Campos booleanos e as variáveis são do tipo de dados Booleano.
Imagem: campos de Imagem e as variáveis são do tipo de dados imagem.
Ponteiro: Um tipo especial de dado utilizado na programação avançada. Variáveis tipo Ponteiro são do tipo dados de ponteiro. Não há nenhum tipo de campo correspondente.
Object: Data de tipo composite que pode conter qualquer tipo de data sets na forma de pares key/valor. Campos Objeto e variáveis são do tipo dado de Objeto.
Note que na lista de tipos de dados, os tipos de dados numéricos e string são associados com mais de um tipo de campo. Quando os dados são colocados em um campo, a linguagem automaticamente converte os dados para o tipo correto. Por exemplo, se um campo inteiro é utilizado, seus dados são automaticamente tratados como numéricos. Em outras palavras, você não precisa se preocupar com mistura de tipos de campo similares ao usar a linguagem, 4D irá administrá-los para você.
Entretanto, quando se utiliza a linguagem é importante que você não misture tipos diferentes de dados. Da mesma forma que não faz sentido armazenar "ABC" em um campo de data, não faz sentido colocar "ABC" em uma variável usada para datas. Na maioria dos casos, 4D é muito tolerante e vai tentar ver sentido naquilo que você está fazendo. Por exemplo, se você acrescentar um número a uma data, 4D irá supor que você quer adicionar o número de dias para a data, mas se você tentar adicionar uma string para uma data, 4D lhe dirá que a operação não é permitida.
Há casos em que você precisa armazenar dados como um tipo e usá-lo como um outro tipo. A linguagem contém um conjunto completo de comandos que lhe permite converter um tipo de dados a outro. Por exemplo, você pode precisar criar um número de peça que começa com um número e termina com caracteres como "ABC". Neste caso, você pode escrever:
[Produtos]Matricula:=String(Número)+"abc"
Se Número é 17, então [Produtos]Matricula terá a string “17abc”.
Os tipos de dados estão totalmente definidos na seção Tipos de dados.
Quando você usa a linguagem, é raro que você simplesmente queira dados. É mais provável que você vai querer fazer algo com os dados. Você vai querer executar cálculos com operadores. Operadores, em geral, recebem dois pedaços de dados e executam uma operação em que os resultados são armazenados em um novo pedaço de dado. Você já está familiarizado com muitos operadores. Por exemplo, 1 + 2 utiliza a adição (ou operador de sinal de adição) para somar dois números, e o resultado é 3. Esta tabela mostra alguns operadores numéricos familiares:
Operador
Operação
Exemplo
+
Soma
1 + 2 é igual a 3
–
Subtração
3 – 2 é igual a 1
*
Multiplicação
2 * 3 é igual a 6
/
Divisão
6 / 2 é igual a 3
Os operadores numéricos são apenas um tipo de operador disponível para você. 4D suporta muitos tipos diferentes de dados, como números, texto, datas e imagens, por isso há operadores que realizam operações sobre estes tipos de dados diferentes.
Os mesmos símbolos são usados para operações diferentes, dependendo do tipo de dados. Por exemplo, o sinal de mais (+) executa operações diferentes, com dados diferentes:
Tipo de dados
Operação
Exemplo
Número
Soma
1 + 2 soma os número e o resultado é 3
String
Concatenação
“Bom” + “dia” concatena (une)
as strings e o resultado é “Bom dia”
Data e número
Somar datas
!1/1/1989! + 20 adiciona 20 dias a data
Janeiro 1, 1989, e o resultado é a data
21 de Janeiro, 1989
Os operadores estão totalmente definidos na sua seção Operadores e suas sub-seções.
Simplificando, as expressões retornam um valor. Na verdade, quando se utiliza a linguagem 4D, você pode usar expressões todo o tempo e pensar apenas em termos do valor que elas representam. As expressões são também as vezes referidas como fórmulas.
As expressões são compostas de quase todas as outras partes da linguagem: comandos, operadores, variáveis e campos. Você usa expressões para construir declarações (linhas de código), que por sua vez, são usadas para construir métodos. A linguagem utiliza expressões onde quer que ele necessite pedaço de dados.
Expressões raramente são auto-suficientes. Poucas vezes em 4D uma expressão pode ser usada por si só:
Consulta pela caixa de diálogo Fórmula
Depurador onde o valor das expressões podem ser verificadas
Aplicar caixa de diálogo Fórmula
Editor Quick Report como uma fórmula para uma coluna
Uma expressão pode ser simplesmente uma constante, tal como o número 4 ou a string "Olá". Como o nome indica, o valor de uma constante nunca muda. É quando os operadores são introduzidas que as expressões começam a ficar interessantes. Em seções anteriores você já viu as expressões que usam operadores. Por exemplo, 4 + 2 é uma expressão que usa o operador de adição para somar dois números e retornar o resultado 6.
Você se refere a uma expressão pelo tipo de dados que ela retorna. Existem sete tipos de expressão:
expressão String
expressão numérica (também designado como número)
expressão Data
expressão Hora
expressão Booleana
expressão Imagem
expressão Ponteiro
A tabela a seguir apresenta exemplos de cada um dos sete tipos de expressões.
Expresión
Tipo
Explicación
“Olá”
String
A palavra "Olá" é uma string constante,
indicada pelas aspas duplas.
“Olá ” + “lá”
String
Duas strings, "Olá" e "lá",
são somadas (concatenadas)
com o operador de concatenação (+).
A string "Olá lá" é retornada.
“Sr.” + [Pessoas]Nome
String
Duas strings são concatenadas:
a seqüência de "Mr." e o valor atual
do campo Nome na tabela Pessoas.
Se o campo contém "Smith"
então a expressão retorna "Mr. Smith"
Uppercase (“Smith”)
String
Essa expressão usa "maiúscula",
um comando da linguagem,
para converter a string "Smith" em maiúsculas.
Ela retorna "SMITH".
4
Númerico
Este é um número constante, 4.
4 * 2
Númerico
Dois números, 4 e 2, são multiplicados
usando o operador de multiplicação (*)
O resultado é o número 8.
Meu Botão
Númerico
Este é o nome de um botão.
Ele retorna o valor atual do botão:
1 se foi clicado, 0 se não.
!1/25/97!
Data
Esta é uma data constantes para a data de 1/25/97
(25 de janeiro de 1997).
Current date + 30
Data
Esta é uma expressão de data que usa
o comando "data atual" para obter
a data de hoje.
Acrescenta 30 dias para a data de hoje e retorna
a nova data.
?8:05:30?
Hora
Este é um tempo constante, que representa 8 horas
5 minutos, e 30 segundos.
?2:03:04? + ?1:02:03?
Hora
Esta expressão acrescenta uma hora e
e retorna o tempo 03:05:07.
True
Booleano
Este comando retorna o valor booleano TRUE.
10 # 20
Booleano
Esta é uma comparação lógica entre dois números.
O sinal de número (#) significa "não é igual a".
Como 10 "não é igual a" 20, a expressão
retorna TRUE.
“ABC” = “XYZ”
Booleano
Esta é uma comparação lógica entre as duas strings.
Eles não são iguais, então a expressão retorna FALSE.