Grupos e Sub-Grupos no iReport

Sou desenvolvedor já alguns anos mas estou começando no iReport e estou com um problema relacionado a quebras de grupos e sub grupos. Ex:

O resultado correto seria:

[Cabeçalho]
     [Grupo 1]
          [Sub Grupo 1]
          [Sub Grupo 2]
          [Sub Grupo n]
     [Grupo 2]
          [Sub Grupo 1]
          [Sub Grupo 2]
          [Sub Grupo n]
[Total Relatório]

O resultado apresentado e errado:

[Cabeçalho]
     [Grupo 1]
          [Sub Grupo 1]
     [Grupo 1]
          [Sub Grupo 2]
     [Grupo 1]
          [Sub Grupo n]

Ou seja o Grupo principal está sendo quebrado cada vez que o sub grupo é quebrado.
Como faço para resolver isso?
Conto com a ajuda dos colegas, Obrigado.

Ola,
Faça um condicional em cada grupo no print when expression.

Tem como de dar um exemplo disso? Sou iniciante em java e no ireport

Acredito que esteja faltando a cláusula ORDER BY no seu select de consulta no relatório.

Preciso de um exemplo de como montar um condicional com o campelo.m mencionou acima, pois o resto está tudo ok.

A menos que tenha algum padrão a ser seguido na query. segue abaixo a query do relatório em questão.

SELECT  CID.NOMECID            AS CIDADE
,	       BAI.NOMEBAI	        AS BAIRRO
,              PAR.CODPARC	        AS "CÓDIGO"
,              PAR.NOMEPARC	AS PARCEIRO
, 	       PAR.TELEFONE	        AS TELEFONE
,	      SUM(CAB.VLRNOTA)  AS "TOTAL VENDAS"
FROM      TGFPAR PAR
,	       TGFCAB CAB
,	       TSICID CID
,	       TSIBAI BAI
WHERE   PAR.CODPARC = CAB.CODPARC
AND	       CID.CODCID  = PAR.CODCID
AND	       CAB.TIPMOV  = 'V'
AND	       BAI.CODBAI  = PAR.CODBAI
GROUP   BY CID.NOMECID
,	       BAI.NOMEBAI
,              PAR.CODPARC
,	       PAR.NOMEPARC
,	       PAR.TELEFONE
ORDER   BY 1, 2, 6 DESC

Tente montar o seu order by pelo nome das colunas e não pelo índice dela, isso te garante a informação correta sempre, eu organizo da seguinte forma: ORDER BY ColunasDoGrupoPrincipal, ColunasDoSubGrupo.