[quote=wagne23]raf4ever, mudei como vc disse e continua sem buscar o convenio do paciente. Olha como ficou.
Eu coloquei como teste o parametro idConvenio para imprimir e ele sai como null, e coloquei tambem a propriedade idConvenio e essa sim vem com valor, o que está parecendo é que ele não está ligando o parametro com o valor da propriedade.
[/quote]
Vc criou esse ‘idConvenio’ no relatorio pai e no subreport?
[quote=wagne23]Então hvivox. vc viu o meu exemplo anterior, la eu mostrei como passar esse list para o relatorio:
Codigo que gera o relatorio passando um list.
[code] JasperPrint jpt = null;
public void geraRelatorio(Collection data) throws JRException, Exception {
Map parameters = new HashMap();
jpt = JasperFillManager.fillReport("RAH.jasper", parameters, new JRBeanCollectionDataSource(data, false));
JasperViewer.viewReport(jpt, false);
}
[/code]
Repare que esse metodo recebe uma collection como parametro, então vc so precisa fazer a sua pesquisa com data inicio e data fim (Com hibernate ou JDBC)e colocar esse retorno dentro de um list, ai vc passa esse list para o metodo, ai é gerado o relatorio[/quote]
Entedi a logica do codigo java mas… no relatorio propriamento dito? como preparar o relatorio para receber um list ao inves de uma Query? no meu caso meu relatorio está configurado assim:
<parameter name="ParanDataInicial" class="java.util.Date">
<parameterDescription><![CDATA[Data inicial]]></parameterDescription>
<defaultValueExpression><![CDATA[new Date()]]></defaultValueExpression>
</parameter>
<parameter name="ParanDataFinal" class="java.util.Date">
<parameterDescription><![CDATA[Data final limite do parametro]]></parameterDescription>
<defaultValueExpression><![CDATA[new Date()]]></defaultValueExpression>
</parameter>
<parameter name="DiretorioImagens" class="java.util.List" isForPrompting="false">
<defaultValueExpression><![CDATA["br/com/sisportaria/visao/resources/icones/"]]></defaultValueExpression>
</parameter>
<queryString>
<![CDATA[SELECT
visitante.`Vis_nome` AS visitante_Vis_nome,
setor.`Set_nome` AS setor_Set_nome,
registrovisita.`Reg_dataVisita` AS registrovisita_Reg_dataVisita,
registrovisita.`Reg_horaEntrada` AS registrovisita_Reg_horaEntrada,
registrovisita.`Reg_horaSaida` AS registrovisita_Reg_horaSaida,
registrovisita.`Reg_usuarioLogado` AS registrovisita_Reg_usuarioLogado
FROM
`visitante` visitante INNER JOIN `registrovisita` registrovisita ON visitante.`Vis_codigo` = registrovisita.`Reg_Vis_codigo`
INNER JOIN `colaborador` colaborador ON registrovisita.`Reg_Col_codigo` = colaborador.`Col_codigo`
INNER JOIN `setor` setor ON colaborador.`Col_Set_codigo` = setor.`Set_codigo`
WHERE
registrovisita.`Reg_status` = "Encerrado" and
registrovisita.`Reg_dataVisita` between $P{ParanDataInicial} and $P{ParanDataFinal}
ORDER BY
registrovisita.`Reg_dataVisita` ASC,
registrovisita.`Reg_horaEntrada` ASC,
registrovisita.`Reg_horaSaida` ASC]]>
</queryString>
Estou utilizando queryString tenho que substituir a list ou coisa parecida essa é minha grande duvida. Alguém se abilita a responder???
hvivox , vc viu o exemplo que eu mostrei. La mostra como configurar o ireport para receber um list.
[code] JasperPrint jpt = null;
public void geraRelatorio(Collection data) throws JRException, Exception {
Map parameters = new HashMap();
jpt = JasperFillManager.fillReport("RAH.jasper", parameters, new JRBeanCollectionDataSource(data, false));
// passa para o metodo fillReport um JRBeanCollectionDataSource
//com a list que vc recuperou do banco
JasperViewer.viewReport(jpt, false);
}
jpt = JasperFillManager.fillReport("RAH.jasper", parameters, new JRBeanCollectionDataSource(data, false));
O erro está ocorrendo neste parantro new JRBeanCollectionDataSource(data, false) acredito que seja configuração no relatorio
Não entendo uma coisa! vc tem que ter um consulta para ser mostrado o fieldName, pelo query report depois disso vc associa o fieldname ao TextField correto? se eu nao tiver nenhum consulta então como faço isso??
[quote=hvivox]
jpt = JasperFillManager.fillReport("RAH.jasper", parameters, new JRBeanCollectionDataSource(data, false));
O erro está ocorrendo neste parantro new JRBeanCollectionDataSource(data, false) acredito que seja configuração no relatorio
Não entendo uma coisa! vc tem que ter um consulta para ser mostrado o fieldName, pelo query report depois disso vc associa o fieldname ao TextField correto? se eu nao tiver nenhum consulta então como faço isso?? [/quote]
Mas qual o erro que está dando? Faça Assim no relatorio, no ireport em query report selecione em Query language o tipo para hibernate Query language, e escreva a query em HQL tipo:
Para isso vc tem que ter adicionado o jar da sua aplicação no ireport.
Ai ele vai disponobilizar os campos do seu “bean” para adicionar como variaveis e poder colocar no seu relatorio associando aos TextFields.
[quote=wagne23]Mas qual o erro que está dando? Faça Assim no relatorio, no ireport em query report selecione em Query language o tipo para hibernate Query language, e escreva a query em HQL tipo:
Para isso vc tem que ter adicionado o jar da sua aplicação no ireport.
Ai ele vai disponobilizar os campos do seu “bean” para adicionar como variaveis e poder colocar no seu relatorio associando aos TextFields.[/quote]
Certo! já estou conectando o iReport com o hibernate.
Mas… além do que vc informou é necessario fazer outro tipo de configuração para que o relatorio receba um LIST?
Por que tudo isso q vc informou já estou fazendo. o iReport o relatorio roda. Mas quando executo o relatorio pelo iReport não jogo um list para ele, correto. Mas quando rodo pela aplição eu preciso jogar um LIST para o relatorio.
Não ha necessidade de fazer outra configuração. Ele ta retornando algum erro?
Só a observação de que vc tem que passar um JRBeanCollectionDataSource para o metodo fillReport, sendo que o seu List vc passa no construtor do JRBeanCollectionDataSource.
JasperPrint jpt = null;
Map parameters = new HashMap();
jpt = JasperFillManager.fillReport("SeuRelatorio.jasper", parameters, new JRBeanCollectionDataSource(seuListPreenchido, false));
JasperViewer.viewReport(jpt, false);