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:
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.