Pessoal, boa noite.
Estou com um problema onde eu não consigo mais saber por onde procurar uma solução. Vamos lá:
Tenho um relatório onde mostro os pedidos.
Faço um Where na data_emissao usando o between.
Se eu executo a query manualmente no MYSQL, ele traz todos os resultados.
Ex: Pedidos de ‘01/08/2018 00:00’ a ‘17/08/2018 14:00’.
select * from pedido where ped_datacadastro between '2018-08-01 00:00:00 ’ and ‘2018-08-17 14:00:22’;
Se eu executo a query no ireport direto, ele também os resultados corretamente. (valores fixos)
Se eu executo via web, passando a data por parâmetro, ele não exibe todos os resultados. Usei a saída de texto e os parâmetros estão sendo passados corretamente, inclusive as horas.
Porém, se eu seleciono um dia a mais que a ultima data de emissão, ele mostra corretamente, ex:
Meu ultimo pedido foi no dia 17/08 as 14:00, se eu coloco a data final até 17/08/2018 23:59, ele não mostra.
Mas se eu coloco o parâmetro como ‘18/08/2018 00:00’, ele mostra corretamente.
Detalhes:
Ireport : 5.6.0
Mysql 8.0.11
Lib do ireport no projeto: 5.6.0
Hibernate + Jpa
Meu dialog (onde chamo o relatório e passo os parâmetros)
<p:dialog header="Pedidos resumo por período" widgetVar="dlgRepPedRes1" modal="false" appendTo="@(body)" resizable="true" showEffect="explode" hideEffect="clip" position="center center" height="auto" width="600">
<h:form id="formdlgRepPedRes1" prependId="false">
<util:botoesReports managedBeanView="#{pedidoBeanView}" camposReload="msgmensagem" dialog="dlgRepPedRes1" funcaoReport="reportGeralResumo" />
<div class="espacoBranco" />
<div class="ui-fluid">
<p:panelGrid id="gridMgm3" columns="4" styleClass="noBorderOut" layout="grid" columnClasses="ui-grid-col-2,ui-grid-col-3,ui-grid-col-1,ui-grid-col-3">
<p:outputLabel value="Emissão:" />
<p:calendar id="clInicio" value="#{pedidoBeanView.dtInicial}" pattern="dd/MM/yyyy HH:mm" locale="pt" timeZone="GMT-3" navigator="true" size="5" />
<p:outputLabel value=" à " />
<p:calendar id="clFim" value="#{pedidoBeanView.dtFinal}" pattern="dd/MM/yyyy HH:mm" locale="pt" timeZone="GMT-3" navigator="true" size="5" />
<p:outputLabel value="Agrupador" />
<p:selectOneMenu value="#{pedidoBeanView.agrupador}">
<f:selectItem itemLabel="Selecione um agrupador" itemValue="null" />
<f:selectItem itemLabel="Status do pedido" itemValue="statusPedido" />
<f:selectItem itemLabel="Cliente" itemValue="cliente" />
<f:selectItem itemLabel="Empresa" itemValue="emp_nome" />
</p:selectOneMenu>
</p:panelGrid>
</div>
</h:form>
</p:dialog>
meu método:
public StreamedContent getReportGeralResumo() throws Exception {
HashMap<Object, Object> parametros = new HashMap<Object, Object>();
super.setNomeRelatorioJasper("rel_pedidos");
super.setNomeRelatorioSaida("rel_pedidos");
super.setTipoRelatorio(tipoReport);
System.out.println("agrupador :"+ this.agrupador);
System.out.println("dtInicial :"+ this.dtInicial);
System.out.println("dtFinal :"+ this.dtFinal);
parametros.put("agrupador", agrupador);
parametros.put("inicio", dtInicial);
parametros.put("fim", dtFinal);
super.setParametrosRelatorio(parametros);
return super.getArquivoReportSql();
}
Meu campo do pedido (Hibernate).
@Column(nullable = false, updatable = false)
@Temporal(TemporalType.TIMESTAMP)
private Date ped_datacadastro = new Date();
Alguém pode me dar uma luz?
Valeu!