4D v14

Arrays, pop-ups, list boxes

Página Inicial

 
4D v14
Arrays, pop-ups, list boxes

Arrays, pop-ups, list boxes    


 

 

Além das manipulações explicadas no vídeo, também deve levar em conta que:

Os arrays são uma das características indispensáveis em 4D.

Práticos, ilimitados, dinâmicos, de uma ou duas dimensões, são um espaço em memória que se pode mostrar nos formulários por intermédio de objetos (pop-ups, combo boxes, list boxes, áreas de deslocamento, etc.)

Já tratamos o conceito e o uso de variáveis com um só valor. Um array é uma variável com vários valores onde se podem ler ou escrever cada um de seus elementos.

Definimos um array pelo número de linhas que contém e seu tipo. Este gráfico mostra as diferentes etapas de uma variável e o ciclo da vida de um array:

EtapaVariável simplesVariável array
InicializaçãoC_TEXT(vText)ARRAY TEXT(ArrayText;10) `10 linhas
ValorizaçãovText:="Tascher da Pagerie"ArrayText{1}:="De Beauharnais" `linha 1
ArrayText{2}:="Barras" `linha 2
ArrayText{3}:="Bonaparte" `linha 3
...
Uso$NumChar:=Length(vText)$Amant:=ArrayText{1}
Apagar o conteúdoCLEAR VARIABLE(vText)ARRAY TEXT(ArrayText;0)
(o comportamento é diferente entre uma aplicação interpretada e compilada,
ver a documentação 4D)
Visualização em um formulárioDa o nome da variável a um objeto de tipo área de deslocamento,Dar o nome da variável a um objeto de tipo área de deslocamento/menu pop-up
TiposInteiro, Inteiro longo, Numérico, Alfa, Texto, Booleano, Data, Hora, Imagem, BLOB, ponteirosIdênticos aos tipos de variáveis exceto Hora e BLOB

Como pode ver, há um número de similaridades entre as duas.

O nome do array se utiliza as vezes com chaves {}, as vezes sozinho. Neste caso, se trata de uma variável (inteiro longo) criada automaticamente por 4D.

Esta variável, associada ao array, serve como um índice (número de linha) de array. É através desta variável que podemos saber que linha foi selecionada pelo usuário ou forçar as seleções de uma linha especifica no menu pop-up.

Esta é a razão pela que verá muitas vezes esta sintaxe concisa escrita na base de dados:

 [INTERVENTIONS]Object:=ObjectsArr{ObjectsArr}

que podemos decifrar da seguinte maneira: "Object := conteúdo do array {na linha selecionada}"
Também encontrará, ainda que mais concisa e muito mais genérica, esta sintaxe que utiliza o comando Self (ponteiro ao objeto cujo método se está executando):

 [INTERVENTIONS]Object:=Self->{Self->}

Independentemente da sintaxe utilizada, o funcionamento é o mesmo.

Em 4D, uma guia é um objeto único, com vários títulos (valores). Este é um exemplo de um objeto de interface que pode representar um array.

Geralmente, colocamos as guias na página 0 do formulário (ver a seção cobre este ponto).

Notará que os arrays se tornam bem úteis rapidamente, na verdade pronto se convertem em uma necessidade.

Um array contém somente elementos do mesmo tipo. Não pode ter um array com um elemento Alfa, um elemento Data e um terceiro elemento Hora.

Neste caso, pode utilizar um array de ponteiros que apontem as variáveis de diferentes tipos.

Como se mencionou na lição sobre os ponteiros, se podem combinar ponteiros e arrays para obter "arrays de ponteiros".

Também pode considerar que um list box é uma série de arrays conectados (da mesma dimensão X).

É um objeto que agrupa e sincroniza um ou mais arrays.

Em um list box, pode configurar:

  • o list box mesmo
  • cada cabeçalho de coluna
  • e cada coluna

Em total, se o list box tem X colunas, você tem 2X+1 objetos (X colunas, X cabeçalhos + 1 list box).

Os list boxes permitem:

  • introduzir dados
  • Ordenar e mover linhas e colunas
  • Mostrar cores alternas
  • A visualização hierárquica
  • Adicionar totais aos pés de página
  • Um list box se pode sincronizar com arrays como fizemos aqui ou com campos da seleção atual (ou uma seleção temporal) de uma tabela
  • ...

Leve em conta que o list box sincroniza suas colunas, toma o menor número de linhas dos arrays que o compõe.

Este ponto é importante de lembrar, já que poderia ter arrays que estão cheios de dados e ainda assim terminar com um list box vazio se um de seus arrays está vazio.

 
 

 
PROPRIEDADES 

Produto: 4D
Tema: Arrays, pop-ups, list boxes

 
ARTICLE USAGE

Autoformação ( 4D v13)
Autoformação ( 4D v14)