Erro louco ao passar parâmetros do forms para o reports.

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Pessoal, sempre passei parâmetros do forms para o reports sem problemas, porém agora ao tentar passar aparece a tela do form de parâmetros do report com os parâmetros passados mais um monte de coisa e o relatório não funciona.
É isso que aparece no form de parâmetros:

Selecionar tudo

where 
  campo1 = decode(0,0,campo1,0)
  and campo2 between '01-JAN-08' and '30-JUL-08'  PARAMFORM='NO'  DESFORMAT='dflt'  DESTYPE='Screen
Eu passo os parâmetros dessa forma:

Selecionar tudo

V_WHERE := 'where  campo1 = decode('||:campo1||',0,campo1,'||:campo1||')
and campo2 between '''||:data1||''' and '''||:data2||'';
  
  pl_id := Get_Parameter_List('param_reporte');

  IF NOT id_null(pl_id) THEN
   Destroy_Parameter_List(pl_id);
  END IF;
  pl_id := Create_Parameter_List('param_reporte');
  Add_Parameter(pl_id,'P_WHERE',TEXT_PARAMETER, V_WHERE);
  Add_Parameter(pl_id,'PARAMFORM', TEXT_PARAMETER,'NO');       
  Add_Parameter(pl_id,'DESFORMAT', TEXT_PARAMETER,'dflt'); 
  Add_Parameter(pl_id,'DESTYPE', TEXT_PARAMETER,'Screen');       
  RUN_PRODUCT(REPORTS,ADM.DOMINIO||'\relatorio_dias_cor', SYNCHRONOUS, RUNTIME, FILESYSTEM, pl_id, '');
está muito estranho, alguém tem alguma idéia do que possa ser?
Eduardo Buarque
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 3
Registrado em: Sex, 04 Jul 2008 8:49 am
Localização: São Paulo - SP

Simplesmente mencionar "Erro louco" não nos ajuda muito a dar sugestões. Dê detalhes...
Outra coisa: o trecho
campo2 between '''||:data1||''' and '''||:data2||''
Dá a entender que "campo2" é uma data. Neste caso, use a função TO_DATE no código passado, formatando adequadamente seus "parâmetros" :data1 e :data2. Isso evita problemas bobos, mas que podem resultar na não execução do relatório.
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

No título eu realmente não especifiquei o tipo de erro (até porque de tão estranho não consegui dar um título a ele).

O fato é que já havia tratado com to_date e o erro continua.
Hahu
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 147
Registrado em: Qui, 16 Mar 2006 11:26 am
Localização: São Paulo
O mundo gira muito!!

bom di pyro,

o que você pode fazer é o seguinte: Crie esta proc, no program unit, segue o codigo:

Selecionar tudo


PROCEDURE l_msg(as_msg VARCHAR2) IS
	ls_dummy	VARCHAR2(002) ;
BEGIN
	SET_ALERT_PROPERTY('MENSAGEM', ALERT_MESSAGE_TEXT, as_msg) ;
	ls_dummy := SHOW_ALERT('MENSAGEM') ;
END;
Após a criação desta procedure, você deverá ir no botão que gera o relatório, dentro do gatilho, do tipo when-button-pressed e colocar uns : l_msg dos parametros que está sendo recebido ou passado..ex l_msg('cod_X'||cod_X);

Faça isso.. em cada passo a ser executado... espero que ajude 8)

Abs Hahu :wink:
pyro
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 323
Registrado em: Qui, 21 Set 2006 10:21 am
Localização: Barala - TT

Cara, não sei por qual motivo o forms é que tava disparando esse erro.
Precisei deletar ele e construir de novo.
Agora está funcionando.
Responder
  • Informação
  • Quem está online

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