Relatório - Fazer agrupamento e exibir colunas diferente para cada grupo

Boa tarde!
Tenho uma consulta com 5 colunas (A, B, C, D e E).
Preciso fazer agrupamento conforme a coluna “E”. (até aqui, tudo bem)

Porém para cada agrupamento, preciso imprimir colunas diferentes.
Ex:
Grupo 1 (E)
A / B / C

Grupo 2 (E)
A / D / E

Grupo 3 (E)
B / C / D

Rômulo,

Diferente dos objetos E3Browser e E3Chart, não é possível trabalhar com mais de uma consulta no mesmo relatório, nem no meio da impressão alterar variáveis da consulta para exibir resultados diferentes em seções distintas.

No seu caso como você precisa imprimir dados de uma AREA de alarmes no Detail, e dados de outra AREA no GroupHeader, sugiro que crie dois relatórios e exiba os dados no Detail.

Contudo, é possível utilizar algum evento do relatório, como por exemplo o “OnReportStart” ou “OnBeforePrint” e fazer um script que busque dados de outras consultas utilizando o método GetADORecordSet.
Como você informou que eram poucos dados, dessa forma, é possível preencher manualmente campos do relatório, sendo possível então utilizar dados de outras consultas.

Sub OnBeforePrint
Set consulta = Application.GetObject("Dados.Query2")

consulta.SetVariableValue "var", 13
Set rec = consulta.GetADORecordset()
set pgfooter = Report.Sections("PageFooter")

'msgbox rec.RecordCount

For i = 1 To rec.RecordCount
pgfooter.Controls("Field" & CStr(i)).text = rec.Fields.Item("E3TimeStamp").Value
pgfooter.Controls("Field" & CStr(i+1)).text = rec.Fields.Item("DemoTag2").Value
rec.MoveNext()
i=i+1

'Limitei a 5 linhas de registros
if i=10 then
exit sub
end if

next
End Sub

Outra alternativa seria enviar os valores da tabela para um array, e depois associar ao data field dos campos:

A partir da versão 5.1 do Elipse E3/Power, foi implementado o suporte ao uso de índices para arrays em expressões de associações.

https://kb.elipse.com.br/?p=11709 (artigo ainda não publicado).

Exemplo de valor inserido no DataField:

Data.InternalTag1.Value(1)(1)