Preciso saber como pegar o valor selecionado no combo e enviar como parametro p/ chamar o relatorio jasper reporte. Ja tentei enviando p/ o MB mas ai o relatorio jasper não abre. Então preciso passar por parametro como mostro abaixo:
<rich:comboBox id="tipo"
defaultLabel="Tipo"
width="125"
enableManualInput="false">
<f:selectItem itemValue="01"/>
<f:selectItem itemValue="02"/>
</rich:comboBox>
<h:commandButton id="chave2"
value="Gerar"
onclick="window.open('../rel?parametro1=relatorio1.jasper&tipo=COMO PEGAR O VALOR DO COMBO ??','meio3','null')"
styleClass="inputsForms">
</h:commandButton>
Ve se te ajuda
private byte[] pdfMediaVelocidade;
public void showReportMediaVelocidade(ActionEvent event) {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response =
(HttpServletResponse) context.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setHeader("Content-disposition", "attachment;filename=relatorio.pdf");
try {
ServletOutputStream writer = response.getOutputStream();
writer.write(pdfMediaVelocidade);
writer.flush();
writer.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
context.responseComplete();
}
}
<h:commandButton rendered="#{controllerRelatorio.showDialogPdf}" id=“cmPdf” value=“Exibir pdf !” action="#{controllerRelatorio.showReport}" style=“margin: 10px 0px 0px 0px;” />
Estou fazendo semelhante esse seu codigo para gerar o relatorio, gero em pdf mesmo!
Mas não consigo enviar o valor selecionado em um combo de uma pagina JSF como parametro.
Se eu conseguisse pegar o valor selecionado no combo p/ passar aqui >>
<h:commandButton id="chave2"
onclick=“window.open(’…/rel?tipo=COMO PEGAR O VALOR DO COMBO ??’,‘meio3’,‘null’)”
</h:commandButton>
eu faço em duas partes, primeiro o usuário escolher as opções de relatório e gera o arquivo com bytes ai depois eu gero um link o
<h:commandButton rendered="#{controllerRelatorio.showDialogPdf}" id=“cmPdf” value=“Exibir pdf !” action="#{controllerRelatorio.showReport}" style=“margin: 10px 0px 0px 0px;” />
para ele aparecer para o usuário.
Consegui gerar em dois metodos diferentes, um para gerar e outro para mostrar porem não estou conseguindo configurar a chamada no facesconfig.xml ou web.xml
Mas o seu sistema não ta funcionando ? O managedBean …, você não sabe como chamar um método ?
sim esta. mas qdo eu chamo informando o MB.metodo aparece a msg deseja abrir o arquivo… e pelo que vi vc usou command, não foi?
tentando simplificar minha duvida:
como vc chamou o metodo public void showReportMediaVelocidade no action="#{controllerRelatorio.showReport}"
ja que se for direto pelo mb.metodo não da pq esse metodo é void e teria que retornar string
Sei la e estou usando Primefaces, retorn null para ver se funciona
Consegui, foi só tirar do codigo:
//response.setHeader(“Content-disposition”, “attachment;filename=relatorio.pdf”);
que passou a abrir certo.
valeu!