Parametros para Report não passam.

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
mflorindo
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Qua, 23 Mai 2007 2:28 pm
Localização: sc

Senhores,

Já fiz de tudo e não consigo passar os parâmetros para o report estou fazendo assim:

Selecionar tudo

declare
	
	rep_id report_object;
	roda_report varchar2(100);
	rep_status varchar2(20);
	id_job varchar2(100);
	IDPARAM PARAMLIST;
		
begin	


	
	IDPARAM := GET_PARAMETER_LIST('RPARAM');
  
  IF NOT ID_NULL(IDPARAM) THEN
  	DESTROY_PARAMETER_LIST(IDPARAM);
  END IF;
  
  IDPARAM := CREATE_PARAMETER_LIST('RPARAM');
  ADD_PARAMETER(IDPARAM,'p_numero_resolucao', TEXT_PARAMETER, to_char(:RESOLUCAO.NR_RESOLUCAO));
  ADD_PARAMETER(IDPARAM,'p_ano_resolucao', TEXT_PARAMETER, to_char(:RESOLUCAO.ID_ANO_RESOLUCAO));  
  ADD_PARAMETER(IDPARAM,'PARAMFORM',TEXT_PARAMETER,'NO');		
  	
	rep_id := find_report_object('rep_resolucao');
	set_report_object_property(rep_id,REPORT_COMM_MODE,SYNCHRONOUS);	
  set_report_object_property(rep_id,REPORT_DESTYPE,CACHE);	
	set_report_object_property(rep_id,REPORT_SERVER,'rep_mi4811');
  set_report_object_property(rep_id,REPORT_OTHER,'IDPARAM');	
  roda_report := run_report_object(rep_id);		
  
	id_job := substr(roda_report,length('rep_mi4811')+2,length(roda_report));
  web.show_document('/reports/rwservlet/getjobid'||id_job||'?server=rep_mi4811','_blank');
  
  
end;	
QUEM PUDER ME AJUDAR EU AGRADECERIA MUITO.

Att,

Marcelo M Florindo
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Tive esse problema em um relatório uma vez.

O que eu tenho feito ultimamente é:

Selecionar tudo


DECLARE
   --
   pl_id ParamList; 
   filename_ varchar2(256);
   --
BEGIN
   --
   pl_id := Get_Parameter_List('LISTA_PARAM'); 	
   
   IF NOT Id_Null(pl_id) THEN 
      Destroy_Parameter_List( pl_id ); 
   END IF;
   --
	 pl_id := create_parameter_list( 'lista_param' );   
	 --
   if ( get_application_property(user_interface) = 'WEB' ) then
      dbms_random.initialize(3);
      
      filename_ := 'NOME_'|| to_char( abs( dbms_random.random ) ) ||'.pdf';
      dbms_random.terminate();
      -- ----------------------------------------------------------------------------------
      add_parameter( pl_id, 'desformat', text_parameter, 'pdf');
      add_parameter( pl_id, 'destype',   text_parameter, 'FILE');
      add_parameter( pl_id, 'desname',   text_parameter, 'C:\Reports\' || filename_ );
      add_parameter( pl_id, 'paramform', text_parameter, 'no' );
      -- ----------------------------------------------------------------------------------
      -- ENVIANDO PARA OS PARÂMETROS:

      ADD_PARAMETER(PL_ID, 'P_ID_FILIAL', TEXT_PARAMETER, :CTL.ID_EMP);
      ADD_PARAMETER(PL_ID, 'P_NP1_INICIAL', TEXT_PARAMETER, :CTL.ID_NP1_INICIAL);
      ADD_PARAMETER(PL_ID, 'P_NP1_FIM', TEXT_PARAMETER, :CTL.ID_NP1_FIM);
      ADD_PARAMETER(PL_ID, 'P_ID_UNE', TEXT_PARAMETER, :CTL.ID_UNE);
      ADD_PARAMETER(PL_ID, 'P_ID_FOR', TEXT_PARAMETER, :CTL.ID_FOR);
      ADD_PARAMETER(PL_ID, 'P_ID_TP_LOC', TEXT_PARAMETER, :CTL.ID_TP_LOC);
      -- ==================================================================================
      -- chama o relatório 
      run_product(reports, 'X:\CAMINHO\NOME_RELATORIO', synchronous, runtime, filesystem, 'lista_param', null );
      web.show_document( 'http://'||:ctl.ip_forms_web||'/reports/' || filename_, '_BLANK' );

   End if;
End;
Espero que te ajude.
mflorindo
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 11
Registrado em: Qua, 23 Mai 2007 2:28 pm
Localização: sc

BEM..ACABEI CONSEGUINDO RESOLVER E A RESPOSTA ESTÁ AQUI:

Selecionar tudo

	declare
	report_id report_object;
	report_message VARCHAR2(100);
	rep_status VARCHAR2(100);
	vjob_id VARCHAR2(4000);
	hidden_action VARCHAR2(2000);
	v_report_other VARCHAR2(4000);
	nm_report varchar2(100);
	report_file_name varchar2(100);
	report_server_name varchar2(100);
	report_destype_name number;
	report_otherparam varchar2(400);
	report_format varchar(5);
	reports_servlet varchar(100);
	i number (5);
	c char;
	c_old char;
	c_new char;

BEGIN

-- configurando parametros do report
	nm_report := 'rep_resolucao';
	report_file_name := 'E:\RESOLUCAO_FORMS\rep_resolucao.rdf';
	report_server_name := 'rep_mi4811';
	report_destype_name := cache;
	report_format := 'pdf';
	reports_servlet := '/reports/rwservlet';
	

	report_id := find_report_object(nm_report);
	SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS);
	SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,report_file_name);
	SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,report_server_name);
	SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,report_destype_name);
	SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,report_format);
	

	
-- criando parametros para o pfaction 
	hidden_action := hidden_action ||'&nm_report='||GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME);
	hidden_action := hidden_action||'&destype='||	GET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE);
	hidden_action := hidden_action||'&desformat='||GET_REPORT_OBJECT_PROPERTY (report_id,REPORT_DESFORMAT);
	hidden_action := hidden_action ||'&userid='||get_application_property(username)||'/'||get_application_property(password)||'@'||
	get_application_property(connect_string);

	report_otherparam := 'p_ano_resolucao='||:resolucao.id_ano_resolucao||' p_numero_resolucao='||:resolucao.nr_resolucao;

	
	c_old :='@';
	
	FOR i IN 1..LENGTH(report_otherparam) LOOP
		c_new:= substr(report_otherparam,i,1);
	
		IF (c_new =' ') THEN
			c:='&';
		ELSE
			c:= c_new;
		END IF;
		
		

		-- eliminate multiple blanks

		IF (c_old =' ' and c_new = ' ') THEN
			null;
		ELSE
			v_report_other := v_report_other||c;
		END IF;
		c_old := c_new;
	END LOOP;
	
	
	
	hidden_action := hidden_action ||'&'|| v_report_other;
--	hidden_action := reports_servlet||'?_hidden_server='||report_server_name|| encode(hidden_action);
	hidden_action := reports_servlet||'?_hidden_server='||report_server_name|| (hidden_action);
	SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,'pfaction='||hidden_action||' '||report_otherparam);

-- run Reports
	report_message := run_report_object(report_id);
	rep_status := report_object_status(report_message);
	
	IF rep_status='FINISHED' THEN
		vjob_id :=substr(report_message,length(report_server_name)+2,length(report_message));
		WEB.SHOW_DOCUMENT(reports_servlet||'/getjobid'||vjob_id||'?server='||
		report_server_name,' _blank');	
	ELSE
	--handle errors
		null;
	END IF;
	
	
END;

FUNCIONA QUE É UMA BELEZA
;)
marcelolimav
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 31 Out 2007 10:53 am
Localização: São Paulo
Marcelo
TI- ORACLE

Na hora em que você executa o reports:
*Execução do reports no servidor

Selecionar tudo

  w_rep_id_job := run_report_object   (w_rep_id);
* Coloque após o ID do reports o ID da lista de parâmetros;

Selecionar tudo

   w_rep_id_job := run_report_object   (w_rep_id,w_lst_id);
Cleonice
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 27
Registrado em: Seg, 23 Nov 2009 10:04 am
Localização: SP

estou usando o seguinte codigo para executar um report atraves de um forms, mas recebo a mensagem:

Selecionar tudo

FRM-41213 - Não é possível estabelecer conexão com o servidor do relatório
Já verifiquei os servidores e aparentemente estão corretos, qual servidor e esse ? O do Applicattion Server ou do DB?

Selecionar tudo

declare
	
report_id Report_Object;

ReportServerJob  varchar2(1000);

begin
	
  report_id := find_report_object('RELATORIO10');
	set_report_object_property(report_id,report_comm_mode,synchronous);
	set_report_object_property(report_id,report_destype,printer);
	set_report_object_property(report_id,report_server,'sistemas');
	--set_report_object_property(report_id,report_other,'p_deptno='||:dept.depto||' paramform=no');
	ReportServerJob := run_report_object(report_id);
end;
Responder
  • Informação
  • Quem está online

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