Como mostrar / ocultar uma coluna em tempo de execução?

Gostaria de mostrar / ocultar uma coluna em tempo de execução com base em uma condição específica. Estou usando "Imprimir quando expressão" para mostrar / ocultar condicionalmente esta coluna (e seu cabeçalho) no meu relatório. Quando a coluna está oculta, o espaço que ela teria ocupado é deixado em branco, o que não é particularmente atraente.

Eu preferiria que se o espaço extra fosse usado de maneira mais efetiva, as possibilidades incluem:

a largura do relatório é reduzida pela largura da coluna ocultao espaço extra é distribuído entre as colunas restantes

Em teoria, eu poderia conseguir o primeiro, definindo a largura da coluna (e cabeçalho) para 0, mas também indicar que a coluna deve ser redimensionada para caber seu conteúdo. Mas o JasperReports não fornece a opção "redimensionar a largura para ajustar o conteúdo".

Outra possibilidade é gerar relatórios usando a API do Jasper em vez de definir o modelo de relatório em XML. Mas isso parece ser um grande esforço para um requisito tão simples.

questionAnswers(7)

yourAnswerToTheQuestion