Pessoal estou desenvolvendo um relatório com Ireports onde os elementos terão posições determinadas via java.
Para definir a margem esquerda estou fazendo assim recupero os elementos e utilizo o método setX, isso funciona perfeitamente, o problema é que não tem um método setY ou algo assim para alterar a margem superior, alguem poderia me indicar oque pode ser feito
O código é o seguinte:
JRElement[] elementos = jr.getColumnHeader().getElements();
for (int i = 0; i < elementos.length; i++) {
elementos[i].setX(150);
}
Estou usando jasperreports-4.0.2 e o editor Irepot Designer 4.0.2 também
Alguém poderia me dar um norte?
Cara, a margem é um propriedade do objeto JRReport. Vais usar a classe JasperDesign, e a propriedade é setada por uma constante:
url[/url]
A posição de cada elemento (X, Y) é a posição dele dentro da banda onde está inserido, e não no relatório como um todo. A princípio, parece mais confuso, mas quando estiveres montando vais ver que, na verdade, facilita pra caramba.
As interfaces são sempre JRClasse (JRBand, JRField), e as implementações delas têm Design no nome (JRDesigBand, JRDesignField). Aí tu seta as propriedades de cada campo devidamente.
Abraço!
PS: Estou levando em consideração que tu estás montando teu relatório TODO em código Java. Se não for o caso, apenas altere as constantes que lhe mostrei no início do post. Mas lembre-se, isso não é dado do relatório, é uma propriedade: vais ter que ‘alterar’ o jrxml em tempo de execução e compilá-lo novamente para que fique correto.
Valeu pela ajuda leoramos, eu não estava tentando meu relatório totalmente em java, vendo sua mensagem pensei em duas possibilidades:
Primeira: Montar tudo na mão, assim eu teria os métodos setX e setY.
Segundo: Só mudar a margem top, o que já serve no meu caso.
Então eu fiz assim peguei um Jrxml com os elementos e só mudei as dimensões da página.
JasperDesign design = JRXmlLoader.load("C:\\sistema\\src\\jasper\\doc.jrxml");
design.setName("Rel");
design.setPageWidth(600);
design.setPageHeight(800);
design.setColumnCount(1);
design.setColumnWidth(500);
design.setColumnSpacing(0);
design.setLeftMargin(45);
design.setRightMargin(45);
design.setTopMargin(top);// top dinamico
design.setBottomMargin(40);
Flw