4D v12.4

Áreas de rolagem agrupadas

Página Inicial

 
4D v12.4
Áreas de rolagem agrupadas

 

Áreas de rolagem agrupadas  


 

 

Nota de compatibilidade: Áreas de rolagem agrupadas ainda podem ser usadas em 4D; entretanto, a partir das versão 2004, elas podem ser substituídas por objetos do tipo List Box. Para maiores informações, consulte a seção Apresentação de List boxes.

Você pode agrupar áreas de rolagem para mostrá-las em um formulário. Quando várias áreas de rolagem se agrupam, atuam como uma área de rolagem única. Cada área de rolagem pode ter sua própria fonte e estilo; porém, nós recomendamos que você use a mesma altura de fonte (que depende da fonte e do tamanho da fonte) para cada coluna. Durante a entrada de dados, apenas a área de rolagem no primeiro plano mostrará uma barra de rolagem. Estas são três áreas de rolagem agrupadas em torno do ambiente de desenho:

Estas são algumas dicas para a criação de áreas de rolagem agrupadas:

  • Assegure-se de que todos os arrays tenham o mesmo tamanho (número de elementos).
  • Use o mesmo tamanho de fonte em cada área.
  • Faça com que as áreas tenham a mesma altura.
  • Alinhe os topos de todas as áreas.
  • Assegure-se de que as áreas não estão se sobrepondo.
  • Assegure-se de que a área da direita esteja em primeiro plano, porque a barra de rolagem aparece na área em primeiro plano.
  • Agrupe as áreas (utilizando o comando de menu Agrupar) para que funcionem como se tratasse de apenas uma área de rolagem.

O seguinte método de projeto preenche os três arrays e os mostra na tela:

 ALL RECORDS([Empregados])
 SELECTION TO ARRAY([Empregados]Sobrenome;asNome;[Empregados]Titulo;asTitulo;[Departamentos]Nome;asDepartamento)
 DIALOG([Departamentos];"Exemplo Agrupado SA")

Este método usa os dados no campo da tabela [Empregados] e da tabela [Departamentos]. As tabelas são mostradas na continuação:

Nota: a tabela [Departamentos] pode ser utilizada, desde que haja uma relação automática entre [Empregados] e [Departamentos].

O resultado mostra:


Perceba que apenas um barra de rolagem aparece; será sempre na área de rolagem em primeiro plano. Esta barra de rolagem controla a rolagem dos três arrays como se fossem um único array. Quando o usuário clica em um linha, todas as três áreas são selecionadas simultaneamente. A variável associada com cada área de rolagem é determinada pelo número da linha na qual o usuário clicar; executa-se apenas o método de objeto da área onde se fez o clique. Por exemplo, se um usuário clica no nome "Silva," asNome, asTitulo e asDepartamento recebem o valor dois, mas apenas o se executa o método de objeto de asNome. Se você coloca o elemento selecionado de um dos arrays na área de rolagem, os outros arrays se colocam no mesmo elemento selecionado para o próximo evento, e a respectiva linha na área de rolagem é destacada

Os arrays podem ser ordenados com o comando SORT ARRAY. Por exemplo:

 SORT ARRAY(asTitulo;asNome;asDepartamento;>)

Este é o resultado da ordenação:

Observe que os arrays se ordenaram baseados no primeiro argumento do comando SORT ARRAY; os outros arrays foram especificados na ordem para manter as filas sincronizadas. O comando SORT ARRAY sempre ordena os arrays (se foram especificados vários) de acordo com os valores do primeiro array e mantém os arrays adcionais sincronizados.

Nota: SORT ARRAY não realiza ordenações de multi-níveis nos arrays. Para mostrar uma tabela similar ao quadro anterior e também realizar ordenações de multi-níveis (por exemplo, por departamento, depois por cargo, depois por nome), use um sub-formulário no qual mostre a tabela, então utilize ORDER BY.

 
PROPRIEDADES 

Produto: 4D
Tema: Arrays

 
VER TAMBÉM 

Arrays
Arrays e objetos de formulário