Desculpe-me ele esta certo, não e possível gerar pdf direto se o reports 
envolvido segue código, neste código tem os parâmetros que passo para os meus 
reports, ai vc ajusta eles





PROCEDURE PRINT_DRIRECTLY (IN_SERVER_NAME                      VARCHAR2,  

                                                                                
               IN_REP_NAME                               VARCHAR2,

                                                                                
               NOM_ARQUIVO                            VARCHAR2,

                                                                                
               NOM_DIRETORIO                          VARCHAR2,

                                                                                
               P_SEQ_PREPARO                          NUMBER,

                                                                                
               P_SEQ_PESSOA                                                     
        NUMBER,

                                                                                
               P_SEQ_PROFISSIONAL NUMBER) IS  

   LC$REP            VARCHAR2 (100);  

   LC$REP_STATUS     VARCHAR2 (20);  

   LC$LN$ADOBE_PATH  VARCHAR2 (500);  

  -- LN$PROCESS_ID     WEBUTIL_HOST.PROCESS_ID;

   REPID             REPORT_OBJECT;  

   LC$FILE_PATH      VARCHAR2 (1024);  

   LC$TEMP_PATH CONSTANT VARCHAR2 (256)   := 'caminho do arquivo no servidor' ; 
 

   pParametro       ParamList;      

 BEGIN  

                

                                               IF NOM_DIRETORIO IS NULL OR 
NOM_DIRETORIO = '' THEN

                                  LC$FILE_PATH := LC$TEMP_PATH || 
NOM_ARQUIVO||'.pdf';  

                               ELSE 

                                               LC$FILE_PATH := NOM_DIRETORIO || 
NOM_ARQUIVO||'.pdf';  

                               END IF;         

                                                                            

                 pParametro := GET_PARAMETER_LIST( 'tmpdata' );

   IF NOT ID_NULL( pParametro ) THEN

      DESTROY_PARAMETER_LIST( pParametro );

   END IF; 

   pParametro := CREATE_PARAMETER_LIST( 'tmpdata' );

   

   IF IN_REP_NAME = 'ca001012' THEN                                     

                  REPID := FIND_REPORT_OBJECT('ca001012');

                  --ADD_PARAMETER( pParametro, 'NRO_REGISTRO', TEXT_PARAMETER, 
NOM_ARQUIVO);

                                              ADD_PARAMETER( pParametro, 
'P_SEQ_PESSOA', TEXT_PARAMETER, P_SEQ_PESSOA);

                                              ADD_PARAMETER( pParametro, 
'P_SEQ_PROFISSIONAL', TEXT_PARAMETER, P_SEQ_PROFISSIONAL);

   ELSIF IN_REP_NAME = 'ca001013' THEN                              

                  REPID := FIND_REPORT_OBJECT('ca001013');

                  --ADD_PARAMETER( pParametro, 'NRO_REGISTRO', TEXT_PARAMETER, 
NOM_ARQUIVO);

                                              ADD_PARAMETER( pParametro, 
'P_SEQ_PESSOA', TEXT_PARAMETER, P_SEQ_PESSOA);

                                              ADD_PARAMETER( pParametro, 
'P_SEQ_PROFISSIONAL', TEXT_PARAMETER, P_SEQ_PROFISSIONAL);

   ELSIF IN_REP_NAME = 'ca001014' THEN                              

                  REPID := FIND_REPORT_OBJECT('ca001014');

                  --ADD_PARAMETER( pParametro, 'NRO_REGISTRO', TEXT_PARAMETER, 
NOM_ARQUIVO);

                                              ADD_PARAMETER( pParametro, 
'P_SEQ_PESSOA', TEXT_PARAMETER, P_SEQ_PESSOA);

                                              ADD_PARAMETER( pParametro, 
'P_SEQ_PROFISSIONAL', TEXT_PARAMETER, P_SEQ_PROFISSIONAL);

   ELSE                                   

                

                               REPID := FIND_REPORT_OBJECT('shim1003');

                                               ADD_PARAMETER( pParametro, 
'P_FILTRO'      , TEXT_PARAMETER, '   WHERE preparo.seq_preparo in 
('||TO_CHAR(P_SEQ_PREPARO)||')');

   END IF;

 

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_FILENAME, IN_REP_NAME);  

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_SERVER, IN_SERVER_NAME);  

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_EXECUTION_MODE, BATCH);  

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_COMM_MODE, SYNCHRONOUS);  

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_DESTYPE, FILE);  

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_DESNAME, LC$FILE_PATH);  

   SET_REPORT_OBJECT_PROPERTY (REPID, REPORT_DESFORMAT, 'pdf');  

   begin

                   LC$REP := RUN_REPORT_OBJECT (REPID, pParametro               
);  

                   LC$REP_STATUS := REPORT_OBJECT_STATUS (LC$REP);  

                   WHILE LC$REP_STATUS IN ('RUNNING', 'OPENING_REPORT', 
'ENQUEUED') LOOP

                                LC$REP_STATUS := REPORT_OBJECT_STATUS (LC$REP);

                   END 


-----Mensagem Original-----
De: "jlchia...@yahoo.com.br [oracle_br]" <oracle_br@yahoogrupos.com.br>
Enviada em: ‎06/‎11/‎2015 10:22
Para: "oracle_br@yahoogrupos.com.br" <oracle_br@yahoogrupos.com.br>
Assunto: Re: [oracle_br] Gerar PDF e mandar via email

  
Opa : então, com o Forms (SEJA com Forms 6i, SEJA com Forms 10g ou 11g), apenas 
e tão somente, Não tem Como se gerar um .PDF, ponto. O que vc pode fazer é, 
sim, de dentro do Forms vc chamar um Report que gere output em formato .PDF... 
 A documentação do Forms detalha (e 
http://www.oracle.com/technetwork/database/migration/frm10gsrw10g-132606.pdf 
extende um pouco mais) mas o código na trigger do Forms 10g (já que vc pede 
10g) pra se chamar um report (+ ou - copiado dos manuais Forms,só estripando os 
comantários, pra ficar menor/mais legível, e supondo que existe um parâmetro de 
usuário P_EMPCODE que tem que ser passado e está num bloco do Forms, num item 
chamado EMPCODE) é mais ou menos este :
 
DECLARE
   v_repid REPORT_OBJECT;
   v_rep VARCHAR2(100);
   v_rep_status VARCHAR2(20);
BEGIN
   v_repid := find_report_object('CALLREP');
   SET_REPORT_OBJECT_PROPERTY(v_repid, REPORT_EXECUTION_MODE,BATCH);
   SET_REPORT_OBJECT_PROPERTY(v_repid, REPORT_COMM_MODE ,SYNCHRONOUS);
   SET_REPORT_OBJECT_PROPERTY(v_repid, REPORT_DESTYPE   ,CACHE);
   SET_REPORT_OBJECT_PROPERTY(v_repid, REPORT_DESFORMAT ,'PDF');
   SET_REPORT_OBJECT_PROPERTY(v_repid, REPORT_SERVER,'nomedoreportserver');
   SET_REPORT_OBJECT_PROPERTY(v_repid, REPORT_OTHER,'PARAMFORM=NO 
P_EMPCODE='||:NBT.EMPCODE);
   v_rep := RUN_REPORT_OBJECT(v_repid);
   v_rep_status := REPORT_OBJECT_STATUS(v_rep);
   WHILE v_rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED') LOOP
      v_rep_status := report_object_status(v_rep);
   END LOOP;
   IF v_rep_status = 'FINISHED' THEN
      .... exibir msgs de sucesso pro usuário...
   ELSE
      ...msg de erro ...
   END IF;
END;
 
 
 []s
 
   Chiappa
   
OBS : vc perguntou em Forms, então assim respondi, mas SAIBA que é possível 
executar Diretamente do servidor um relatório feito em Oracle Reports : isso se 
faz com o utilitário RWRUN, passando os parâmetros diretamente em linha de 
comando, tipo :

rwrun report=nomedoreport.rdf userid=user/password@banco desformat=pdf 
DESTYPE=FILE ....etc ...

=> Isso é útil para os casos que vc quer Agendar pelo Sistema Operacional (via 
CRON ou similar) a geração do .PDF, vc colocaria a chamada ao RWRUn num shell 
script...

Responder a