Estou desenvolvendo uma aplicação de protocolo, estou tentando fazer um relatório. Quero fazer um filtro por data, mas não está obedecendo retorna todos os dados sem filtro.
Estou usando primefaces calendar e na classe java uso java.util.date.
Sem o código nao vao conseguir te ajudar a consertar o problema.
J
java_Gustavo
Esta é view
<p:calendar value="#{relatorioBean.entrada}"
pattern=“dd/MM/yyyy” mask=“true” mode="popup"
locale="pt"
timeZone=“GMT-3”>
<f:convertDateTime pattern=“dd/MM/yyyy” timeZone=“GMT-3” />
<f:validateBean />
</p:calendar>
no bean se encontra assim:
public void relatorioDocumentos(){ String caminho = “/reports/documentos.jasper”;
Map<String, Object> parametros = new HashMap<>();
parametros.put("STATUS_DOC",this.status);
parametros.put("SECRETARIA_DOC",this.secretaria);
parametros.put("RESPONSAVEL_DOC",this.responsavel.getNome());
parametros.put("ENTRADA_DOC", this.entrada );
GeraRelatorio gerador = new GeraRelatorio();
gerador.geradorDeRelatorios(caminho, parametros);
}
J
javaflex
Faltou o principal, a query. Execute a query com os parametros na ferramenta do banco pra ver se reproduz o problema.
J
java_Gustavo
Vou fazer, mas no preview do jasperstudio dá certo, só dá errado quando executo na aplicação que não dá certo, alguma ideia?
J
java_Gustavo
Deu certo no MySQL mas na aplicação dá errado. Já não sei o que fazer mais.
J
javaflex
Sem o código da query e parametros fica mais difícil. Quando voce debuga, o parametro está com o mesmo valor que testou na ferramenta do mysql?
J
java_Gustavo
A minha query é
SELECT db_documentos.tbl_documento.dt_entrada,
db_documentos.tbl_documento.dt_saida,
db_documentos.tbl_documento.objeto,
db_documentos.tbl_documento.processo,
db_documentos.tbl_documento.secretaria,
db_documentos.tbl_documento.status,
db_documentos.tbl_documento.encaminhamento,
db_documentos.tbl_funcionario.nome
FROM db_documentos.tbl_documento
INNER JOIN db_documentos.tbl_funcionario ON
db_documentos.tbl_documento.fk_funcionario = db_documentos.tbl_funcionario.cod_fun
WHERE
db_documentos.tbl_documento.status LIKE '%%'
AND db_documentos.tbl_documento.secretaria LIKE '%%'
AND db_documentos.tbl_funcionario.nome LIKE '%%'
AND db_documentos.tbl_documento.dt_entrada >= ‘2018-02-01’
Ela funciona tanto no mysql quanto no jasper studio, mas quando eu utilizo o primefaces calendar ela não funciona.
J
Solucao aceita
javaflex
O formato que o calendar retorna provavelmente não é o mesmo do que testou no MySql. O ideal é usar o tipo Date como parametro ou usar SimpleDateFormat pra ter a string no formato padrao do MySql.
J
java_Gustavo
valeu javaflex, vou testar aqui qualquer coisa posto a solução.
J
java_Gustavo1 like
Encontrei a solução:
o problema estava na formatação do calendar no primefaces antes estava assim: