Ireport Converte String para DATA, comparação de parametros ![resolvido]

amigo, se vc quer fazer um between de datas, tem que ser tipo Date né?! …

[code]<?xml version=“1.0” encoding=“UTF-8”?>
<jasperReport xmlns=“http://jasperreports.sourceforge.net/jasperreports” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd” name=“relClientesFisicoAtentidoPorPeriodo” pageWidth=“595” pageHeight=“842” columnWidth=“555” leftMargin=“20” rightMargin=“20” topMargin=“20” bottomMargin=“20”>
<property name=“ireport.zoom” value=“1.0”/>
<property name=“ireport.x” value=“0”/>
<property name=“ireport.y” value=“0”/>
<parameter name=“DATAINICIO” class=“java.util.Date”>
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<parameter name=“DATAFIM” class=“java.util.Date”>
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT
cliente_fisica.“clfi_data_cadastro” AS cliente_fisica_clfi_data_cadastro
FROM
“sigi”.“cliente_fisica” cliente_fisica

WHERE clfi_data_cadastro

BETWEEN date($P{DATAINICIO}) AND date($P{DATAFIM})]]>
</queryString>
<field name=“cliente_fisica_clfi_data_cadastro” class=“java.sql.Date”/>
<filterExpression><![CDATA[]]></filterExpression>
<title>
<band height=“134” splitType=“Stretch”>
<staticText>
<reportElement x=“112” y=“40” width=“348” height=“24”/>
<textElement verticalAlignment=“Middle”>

</textElement>
<text><![CDATA[SISTEMA INTEGRADO E GESTÃO INTEGRADO( SIGI )]]></text>
</staticText>
<staticText>
<reportElement x=“169” y=“101” width=“212” height=“20”/>
<textElement verticalAlignment=“Middle”>

</textElement>
<text><![CDATA[Atendimento Cliente Físico]]></text>
</staticText>
<textField>
<reportElement x=“0” y=“84” width=“100” height=“20”/>
<textElement/>
<textFieldExpression class=“java.util.Date”><![CDATA[$P{DATAFIM}]]></textFieldExpression>
</textField>
<textField>
<reportElement x=“0” y=“64” width=“100” height=“20”/>
<textElement/>
<textFieldExpression class=“java.util.Date”><![CDATA[$P{DATAINICIO}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height=“37” splitType=“Stretch”>
<line>
<reportElement x=“0” y=“10” width=“555” height=“1”/>
</line>
<line>
<reportElement x=“0” y=“31” width=“555” height=“1”/>
</line>
</band>
</pageHeader>
<detail>
<band height=“24” splitType=“Stretch”/>
</detail>
<summary>
<band height=“24”/>
</summary>
</jasperReport>
[/code]

Mesmo assim não pega !

          Estranho isso !

Um amigo mandou um exemplo que pega na boa ! ta muito parecido com o meu ! egua !

SELECT deposito."sigla_deposito" AS deposito_sigla_deposito, tipo_pedido."desc_tppedido" AS tipo_pedido_desc_tppedido, modalidade."desc_modalidade" AS modalidade_desc_modalidade, cliente."nome_cli" AS cliente_nome_cli, cliente."logradouro" AS cliente_logradouro, cliente."cpf_cnpj" AS cliente_cpf_cnpj, cliente."bairro" AS cliente_bairro, cliente."cidade" AS cliente_cidade, cliente."cep" AS cliente_cep, pedido."isrisco" AS pedido_isrisco, pedido."ord_venda" AS pedido_ord_venda, pedido."data_forne" AS pedido_data_forne, pedido."data_ordem" AS pedido_data_ordem, pedido."num_ped" AS pedido_num_ped, pedido."fornecimento" AS pedido_fornecimento, pedido."textremessa" AS pedido_textremessa, pedido."obs_entrega" AS pedido_obs_entrega, picking_impr."data_impr" AS picking_impr_data_impr, pedido."cod_ped" AS pedido_cod_ped, pedido."idcep" AS pedido_idcep, area."desc_area" AS area_desc_area, picking_impr."isimpresso" AS picking_impr_isimpresso, rota."rota_geral" AS rota_rota_geral FROM "public"."pedido" pedido INNER JOIN "public"."deposito" deposito ON pedido."cod_deposito" = deposito."cod_deposito" INNER JOIN "public"."tipo_pedido" tipo_pedido ON pedido."id_tppedido" = tipo_pedido."id_tppedido" INNER JOIN "public"."modalidade" modalidade ON pedido."id_modalidade" = modalidade."id_modalidade" INNER JOIN "public"."cliente" cliente ON pedido."cod_cli" = cliente."cod_cli" INNER JOIN "public"."picking_impr" picking_impr ON pedido."cod_ped" = picking_impr."cod_ped" INNER JOIN "public"."cep" cep ON pedido."idcep" = cep."idcep" INNER JOIN "public"."rota" rota ON cep."idrota" = rota."id" INNER JOIN "public"."area" area ON rota."id_area" = area."id" WHERE pedido."data_forne" BETWEEN $P{DATA_INI} AND $P{DATA_FIM} AND deposito."cod_deposito" = $P{DEP} AND picking_impr."isimpresso" = $P{ISIMPRESSO}

BETWEEN date($P{DATAINICIO}) AND date($P{DATAFIM})]]&gt;  

Acho que esta errado.
Acho que o correto seria:

BETWEEN $P{DATAINICIO} AND $P{DATAFIM}]]&gt;  

Repare no que eu falei!!

testei das 2 maneira s JA !

:slight_smile:

amigao, entao tente dar uma analisada no que esta tentando fazer. esta fazendo algo de errado por ai, nunca tive problemas

where caixa."ddate" between $P{INICIO} and $P{FIM}

conforme estavamos conversando pelo Gmail. Você me disse que usa BD PosgreSQL, eu também. Olhando seu codigo e o que conversamos achei os seguintes erros. Você me disse que o seu campo Data dentro do banco de dados está como Time Stamp e vc definil o Parametro no Ireport como Date, ficando diferente do banco ocorrendo erros de Cast e outros…

Se o tipo de dado no banco é Date no relatorio terá que ser Date.
Se o tipo de dado no banco é Times Stamp no relatorio terá que ser Time Stamp.

lembrando da correta escrita do parametro dentro do SQL

Aqui vai um Exemplo :
[b]SELECT
caixa.“ddate” AS caixa_ddate,
caixa.“valor_fecha” AS caixa_valor_fecha,
caixa.“valor_abertura” AS caixa_valor_abertura,
pessoafornecedor.“nome” AS pessoafornecedor_nome
FROM
“public”.“usuario” usuario INNER JOIN “public”.“caixa” caixa ON usuario.“id” = caixa.“id”
INNER JOIN “public”.“pessoafornecedor” pessoafornecedor ON usuario.“id_tipopessoa” = pessoafornecedor.“id_pessoa”

where caixa.“ddate” between $P{DATAINICIO} and $P{DATAFIM}[/b]

Sempre Compile o relatorio antes de testar.

Passagem de parametros para o relatorio através da aplicação:
.
.
.
HashMap<String, Date> parameterMap = new HashMap<String, Date>();
parameterMap.put(“DATAINICIO”, getInicio());
parameterMap.put(“DATAFIM”, getFim());

.
.
.
Sempre Trabalho com datas no banco do tipo Date mesmo , assim os relatorio ficam simples e funcionais.
E para quem está começando com relatorios existe um livro do Ireport (Autor Edson Gonçalves) comprei este livro foi uma maravilha para fazer os relatorios do meu TCC.

Rodei no WINDOWS e pegou normal !! LINUX DESGRAÇADO… BUGADO O IREPORT PARA LINUX !

Pessoa bom dia, desculpa ressuscitar este tópico, mas estou tendo um problema e não encontro solução, também não possuo grande conhecimento com IReport. Preciso fazer umas alterações em um relatório desenvolvido por outro programador, mas logo que tento compila-lo é mostrado o seguinte erro:

 net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file: C:\Projetos T&T\Francatalogos\Projeto Francatalogos\projects\Catalogos\src\catalogos\reports\notaPromissoria\notaPromissoria_1378489035374_874746.java:13: package util does not exist import util.*;

Pelo que entendi está faltando a importação do pacote util.*; correto ? Mas onde faço essa importação ?
Desculpem minha inocência para isso, mas mexi muito pouco com ireport.

Obrigado desde já