Ireport/Jasper report Configurando margem

6 respostas
J

Olá a todos.
Bom minha situação é a seguinte.
Vai ter situações em que o usuário vai precisar configurar quanto quer de margem no meu relatório (Tanto altura quanto Largura).
Como faço para alterar isso no meu report?

Obrigado pela atenção.

6 Respostas

J

Pelo que vi aqui no guj unica forma de eu fazer isto é alterando jrxml, mas como faço essa alteração? pelo que vi deve ser alterado o atributo rightmargin antes de copilar, mas não tenho idéia de como faço isto.

valeu.

J

Alguém? alguma idéia de como fazer para ter margens configuráveis?

Obrigado.

J

Bom avancei alguns passos.
Descobri que posso alterar a margem no JRStyle tem os métodos .getLineBox().setLeftPadding() …
Mas quando vou obter este JRStyle com o método getDefaultStyle() do JasperReport ele sempre vem null e eu não achei nenhum método de setar um JRStyle ou JRBaseStyle no JasperReport.

Alguém já fez algo assim?

Se alguém poder me ajudar fico grato.

obrigado.

M

BomDia

seguinte, você pode pegar o seu desing fonte (.jrxml) antes de compilar e carregar num objeto JasperDesign.
Fazendo da seguinte forma:

JasperDesign design = JRXmlLoader.load("/testDesign/source/nowGo.jrxml");

Assim você pode pegar o objeto desing e configurar as margens como você quiser. Depois é só compilar.

design.setTopMargin(50);
		  design.setLeftMargin(20);
		  design.setRightMargin(2);
		  design.setBottomMargin(50);
                  JasperReport jasperReport = JasperCompileManager.compileReport(design);

Espero ter ajudado.

J

Bom valeu mateusFreitas() consegui fazer com que o relatório adquirisse uma margem de acordo com o que eu passo.
mas agora estou com outro pequeno problema.

usei da seguinte forma para fazer a margem do relatório.

.
        .
        .
        InputStream stream = ... aqui vou adiquirir o inputstream.
        
        JasperDesign jd = JRXmlLoader.load(stream);

        JRBaseStyle jrbs = new JRBaseStyle();
        jrbs.getLineBox().setLeftPadding(50); // valor que pus aqui foi  de exemplo.

        jd.setDefaultStyle(jrbs);
        .
        .
        .

bom desta forma o relatório possuiu uma margem de 50 como no exemplo, e percebi que os campos se ajustaram de acordo (diminuindo tamanho de alguns e até mesmo cortando alguns outros)

meu problema é o seguinte esta margem não esta pegando linhas que possui no irreport e nem fazendo no background.

vou por uma imagem só pra tentar demonstrar melhor o que esta acontecendo.


como podem ver a linha ficou intacta (neste mesmo local estava o texto antes de eu dar a margem)
ela deveria ter movido para lado como mostra linha vermelha que fiz. estes casos acontecem também com background.

alguém tem alguma idéia de como fazer para eles também aderirem a esta margem ou para por margem nestes casos.

T

Pra mim está acontecendo esse mesmo problema.

Coloco a margem, mas só os campos vão com ela… as linhas não.

Muito Estranho… Será que elas precisam ser tratadas diferentes?? :?:

Criado 18 de março de 2008
Ultima resposta 22 de mar. de 2008
Respostas 6
Participantes 3