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...