Fomulas reports

Dicas e truques sobre Oracle Reports Builder - modo gráfico ou modo caractere, ascii, arquivo .PRT, etc
Responder
numerus
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 71
Registrado em: Seg, 23 Mai 2011 11:56 am
Localização: SP

Galera estou precisando de uma ajudinha de vocês:
seguinte tenho um relatorio simples que tras a ultima atualização dos usuarios pela data, grava os ultimos dois registros.
minha query no reports:

Selecionar tudo

SELECT a.entity, a.project_no, a.job_no, a.ds_job, a.ss_id, a.fase, a.fase_des,
       a.emp_notes, a.sub_entity,
       a.req_date_from, a.req_date_to, a.from_time, a.to_time,
       a.req_date_from_2, a.req_date_to_2, a.from_time_2, a.to_time_2, a.operation, to_char(a.last_date, 'mm/dd/yy hh24:mi:ss')
FROM TB_REP_PSINTLOG a
order by 2,3,1,6
Esta é uma tabela temporaria, algumas prc a populam.
Preciso criar uma formula, prc, sei lá alguma coisa que me retorne somente a ultima data.
O problema é que já fiz de tudo e não consigo enchergar o problema.
Fiz uma formula no data model do report para apenas me mostrar com ' * '(asteristico) a ultima data de cada usuario.
segue minha formula:

Selecionar tudo

function CF_valida_dataFormula return varchar2 is
result varchar2(100);
id     varchar2(100);
begin 
	
declare
  
  cursor c is
  select to_char(max(last_date), 'mm/dd/yy hh24:mi:ss')last_date, emp_no from TB_REP_PSINTLOG
  group by emp_no;
  
begin 
	
	for a in c loop 
  
 select to_char(max(last_date), 'mm/dd/yy hh24:mi:ss'), emp_no into result, id from TB_REP_PSINTLOG
  where to_char(last_date, 'mm/dd/yy hh24:mi:ss') = a.last_date
  group by emp_no;
    
  if result is not null then --is not null then --= a.last_date then 
     return '*';
  else    
  	 return null;
  end if;
  end loop;
end; 
end;  
O problema é que acho que falta parametro... mas não há parametros... esta formula seta todos os registros, não apenas as ultimas atualizações do usuario.

quem puder me ajudar, vai salvar meu dia. rs abraços
numerus
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 71
Registrado em: Seg, 23 Mai 2011 11:56 am
Localização: SP

Funcionou!!!!!!!!!!!!!!

Seguinte é importante pelo menos eu não sabia!!!!!

Eu não posso colocar a formula na data model da query do report tem que ser fora! por isso selecionava todos os registros kcet rs!
Fiz assim a tabela é teporaria peguei o valor do cursor ai em cima que agora esta certo com a formula fora da query(data model) e dei update na tabela temporaria mas retornando nulo em um campo do layout qualquer e inseri a coluna que dei update na query do data model.
Ai toda a p... funcionou!

abraços,

Selecionar tudo

function CF_valida_dataFormula return varchar2 is
result varchar2(10);
begin
	
	for a in (select max(last_date) last_date, emp_no from TB_REP_PSINTLOG
            group by emp_no) 
	/*
  for a in (select to_char(max(last_date), 'dd/mm/yyyy hh24:mi:ss')last_date, emp_no from TB_REP_PSINTLOG
            group by emp_no) */
loop 

  update TB_REP_PSINTLOG
     set result    = '*'
   where last_date = a.last_date
     and emp_no    = a.emp_no;
end loop;
return null;
end;
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes