Variável contadora no Ireport/JasperReport

9 respostas
Paezani

Bom pessoal estou com dificuldades em criar duas variáveis que contem o número de faltas e o números de atestados por funcionário, onde um grupo de funcionários pertencem a um setor.
O meu problema está na contagem das faltas e dos atestados…
Fiz uma query que retorne 0 se a pessoa não trouxe atestado e 1 se ela trouxe…As faltas seriam quando a pessoa não apresenta o atestado…
O meu relatório possui 2 agrupamentos: setor, funcionario…os dados das faltas e atestadossão apresentados na banda detail…
A query(bd mysql) segue abaixo:

select 
  tempo ,atestado,
  date_format(data, '%d/%m/%Y') as dt,
  data,
  func.nome,
  if(atestado='SIM', 1 ,0)as atastedos ,
  if(func.id <> 0, 1 , 0 ) as faltas ,
  if(func.idsetor=0, 'NÃO INFORMADO' ,concat(func.idsetor,' - ',ccustos.descricao)) as setor
from faltas_atestados as fa
inner join funcionarios as func on func.id = fa.idfuncionario
left join ccustos on ccustos.id = func.idsetor
where $P!{codFun} and data between $P!{dtIni} and $P!{dtFim} and $P!{setor} and fa.excluido=0
      and func.excluido=0 

order by setor,nome,data

9 Respostas

Paezani

Será que não há solução?

TheKill

pq vc nao faz todas essa consulta SQL na aplicação??

Enviando apenas os resultados para o relatório??

^^

Paezani

Eu faço esta consulta no relatório… o problema que não consigo contar o " 0 e 1" da coluna atestados e faltas…
Tentei usar o union all na consulta, mas daí ele apresenta linhas vazias na coluna…

TheKill

Criou váriavel para somar?

$V{}

Você quer somar 2 campos diferentes é isso?

Tenta utilizar váriavel :wink:

Att. Jonas

Paezani

Então a idéia é usar variáveis…mas não estou conseguindo…ela não soma como deveria…deve ser algum detalhe que estou pecando…

TheKill

Da uma analisada… verifique se esta correto…

nao me lembro como faz… e vai depender do tipo do atributo…

nao lembro a sintaxe de uma pesquisada, mas tem que usar o SUM :wink:

SUM atrib1 + atrib2

onde esses atribs são os fields que contem os resultados ^^

Att. Jonas

Metaleiro

[color=darkblue]Eu faço isso aqui : [/color]

SELECT 
        sum(if(local.cod_ic_status = 5,1,0)) as localidadesNAO
        ,count(local.cidade) as totalLocalidades
        ,sum(if(local.cod_status = 3,1,0)) as localidadesSIM
        from  tb_localidade local
Paezani

Metaleiro devido eu ter que mostrar todos os lançamentos de cada funcionário, eu não posso usar o SUM na consulta mysql pois ele exigirá o GROUP BY…tentei usar o union all, mas tbém não deu…

Obrigado pela tentativa!

ManoJava

Tenta fazer no ireport cria as 2 variaveis e nas propriedades delas coloca o grupo que deve setar e embaixo tem o incremento dai vc coloca o outro grupo que ela te retornará o que precisa e com bastante simplicidade.

Att.

Criado 26 de outubro de 2009
Ultima resposta 5 de nov. de 2009
Respostas 9
Participantes 4