RUN_PRODUCT( REPORTS,: GLOBAL.DIRETORIO _TRABALHO| |V_SUB_DIRETORIO ||'\'||V_ NOME_FONTE, SYNCHRONOUS, RUNTIME, FILESYSTEM,V_ PL_ID,null) ;
Obrigado
Elcio Francisco
RUN_PRODUCT( REPORTS,: GLOBAL.DIRETORIO _TRABALHO| |V_SUB_DIRETORIO ||'\'||V_ NOME_FONTE, SYNCHRONOUS, RUNTIME, FILESYSTEM,V_ PL_ID,null) ;
DECLARE
PL_ID PARAMLIST;
v_DATA_BLOQUEIO BLOQUEIO.DATA_EXCLUSAO%TYPE := NULL;
v_SEQUENCIA VARCHAR2(20) := NULL;
BEGIN
IF :CLIENTE.CARTAO IS NULL THEN
MSG_INFORMACAO('Nenhum cliente encontrado! Tente efetuar a pesquisa novamente.');
ELSE
IF MSG_CONFIRMACAO('Deseja emitir o Termo de Adesão?') THEN
/*GERA RELATORIO*/ --03.920.258.000.102
PL_ID:= GET_PARAMETER_lIST('TMPDATA');
IF NOT ID_NULL(PL_ID) THEN
DESTROY_PARAMETER_lIST(PL_ID);
END IF;
SELECT LPAD(SEQ_TERMO_ADESAO.NEXTVAL,8,'0') INTO v_SEQUENCIA FROM DUAL;
v_SEQUENCIA := v_SEQUENCIA||'-'||PCK_LIB.FC_DIGITO_VERIFICADOR(v_SEQUENCIA,0,'T');
PL_ID := CREATE_PARAMETER_LIST('TMPDATA');
ADD_PARAMETER(PL_ID, 'P_EMPRESA',TEXT_PARAMETER,:CLIENTE.EMPRESA);
ADD_PARAMETER(PL_ID, 'P_CLIENTE',TEXT_PARAMETER,:CLIENTE.CLIENTE);
ADD_PARAMETER(PL_ID, 'P_SEQUENCIA',TEXT_PARAMETER,V_SEQUENCIA);
ADD_PARAMETER(PL_ID,'PARAMFORM', TEXT_PARAMETER, 'NO');
PC_DIRETORIO_FONTE('REL_TERMO_ADESAO','R', PL_ID);
END IF;
END IF;
END;
RUN_PRODUCT(REPORTS,:GLOBAL.DIRETORIO_TRABALHO||'\'||V_NOME_FONTE,SYNCHRONOUS,RUNTIME, FILESYSTEM,V_PL_ID,null);
PROCEDURE PRC_RELATORIO ( param_nome_rel IN varchar2,
param_copies IN varchar2,
param_desformat IN varchar2,
param_desname IN varchar2,
param_destype IN varchar2,
param_orientation IN varchar2,
param_paramform IN varchar2,
param_xx IN varchar2 ) IS
repid REPORT_OBJECT;
v_rep varchar2(50);
string_conn varchar2(500);
w_param varchar2(4000):= null;
w_nome_relatorio varchar2(50) := null;
rep_status varchar2(200);
w_report_server varchar2(200) := null;
BEGIN
---------------------------------------------------------------------------------
-- Altera o nome do objeto reports, por definição deve ser sempre UPPER e retirar
-- a extensao do arquivo, alteracao feita para funcionar também em linux/unix...
---------------------------------------------------------------------------------
w_nome_relatorio := upper(rtrim(rtrim(upper(param_nome_rel),'.RDF'),'.REP'));
---------------------------------------------------------------------------------
-- Executa a atribuição de todos os parâmetros do relatório em uma única variável
---------------------------------------------------------------------------------
w_param := param_xx;
w_param := w_param||'+'||'orientation='||NVL(param_orientation,'Default');
w_param := w_param||'+'||'paramform='||NVL(param_paramform,'no');
---------------------------------------------------------------------------------
-- Localiza o Objeto REPORTS criado no "Object Navigator" do Forms
-- ATENÇÃO : O nome do NÓ REPORTS deve ter o mesmo nome do RELATORIO desenvolvido
---------------------------------------------------------------------------------
repid := FIND_REPORT_OBJECT(w_nome_relatorio);
set_report_object_property(repid, report_filename, w_nome_relatorio);
---------------------------------------------------------------------------------
-- Verifica em qual ambiente o aplicativo esta sendo executado
-- WEB ou Cliente/Servidor
---------------------------------------------------------------------------------
IF GET_APPLICATION_PROPERTY(user_interface) <> 'WEB' THEN
set_report_object_property(repid, report_desformat, param_desformat);
IF UPPER( NVL(param_destype,'PRINTER') ) = 'SCREEN' THEN
set_report_object_property(repid, report_destype, Screen);
ELSIF UPPER( NVL(param_destype,'PRINTER') ) = 'PREVIEW' THEN
set_report_object_property(repid, report_destype, Preview);
ELSIF UPPER( NVL(param_destype,'PRINTER') ) = 'PRINTER' THEN
set_report_object_property(repid, report_destype, Printer);
set_report_object_property(repid, report_desname, chr(39)||param_desname||chr(39));
w_param := w_param||' '||'copies='||nvl(param_copies,1);
ELSIF UPPER( NVL(param_destype,'PRINTER') ) = 'FILE' THEN
set_report_object_property(repid, report_destype, File);
set_report_object_property(repid, report_desname, param_desname);
END IF;
set_report_object_property(repid, report_other,translate(w_param,'+',' '));
v_rep := RUN_REPORT_OBJECT(repid);
ELSE
---------------------------------------------------------------
-- Localizar o nome do REPORT SERVER
---------------------------------------------------------------
w_report_server := fnc_report_server;
---------------------------------------------------------------
-- Verifica se o relatorio será impresso via web sem visualizar
---------------------------------------------------------------
IF UPPER( NVL(param_destype,'PRINTER') ) = 'PRINTER' THEN
message ( 'esta aqui 1'); pause;
set_report_object_property(repid, report_desformat, param_desformat);
-----------------------------------------------------------
-- Selecionar o nome da impresso com base no nome
-- do forms e usuario que esta sendo executado, foi definido
-- que para cada relatorio que for impresso direto sem visualizar
-- o forms/usuario estarão cadastrados em uma tabela ...
-----------------------------------------------------------
message ( 'esta aqui 2'); pause;
set_report_object_property(repid, report_destype, Preview);
-- set_report_object_property(repid, report_destype, Printer);
message ( 'esta aqui 3'); pause;
set_report_object_property(repid, report_desname, chr(39)||param_desname||chr(39));
set_report_object_property(repid, report_desname, chr(39)||'DESENV_HP970'||chr(39));
message ( 'esta aqui 4'); pause;
w_param := w_param||' '||'copies='||nvl(param_copies,1);
set_report_object_property(repid, report_other,translate(w_param,'+',' '));
v_rep := RUN_REPORT_OBJECT(repid);
message ( 'esta aqui 5'); pause;
ELSE
/****
set_report_object_property(repid,REPORT_EXECUTION_MODE,RUNTIME);
set_report_object_property(repid,REPORT_COMM_MODE,SYNCHRONOUS);
set_report_object_property(repid,REPORT_DESTYPE,CACHE);
set_report_object_property(repid,REPORT_SERVER, w_report_server);
set_report_object_property(repid, report_desformat, 'pdf');
set_report_object_property(repid, report_other,translate(w_param,'+',' '));
v_rep := RUN_REPORT_OBJECT(repid);
rep_status := REPORT_OBJECT_STATUS(v_rep);
WHILE upper(rep_status) <> 'FINISHED' LOOP
rep_status:=REPORT_OBJECT_STATUS(v_rep);
END LOOP;
IF upper(rep_status) = 'FINISHED' THEN
---------------------------------------------------------------
-- Solicitacao do relatorio em Ambiente WEB
---------------------------------------------------------------
web.Show_Document(FNC_WEB_DIRETORIO_VIRTUAL||'/getjobid='||
substr(v_rep,instr(v_rep,'_',-1)+1)||'?server='||
w_report_server,'_blank');
ELSE
Message('Erro ao executar o relatório : '||w_nome_relatorio||' Rep Status : '||rep_status||' - '||
'report server : '||w_report_server,no_acknowledge);
END IF;
******/
--********************************************************************************************
-- OUTRA FORMA DE CHAMAR RELATORIOS VIA WEB, SENDO QUE OS PARAMETROS SERÃO APRESENTADOS NA URL
--
--********************************************************************************************
string_conn:= rtrim(ltrim(GET_APPLICATION_PROPERTY(USERNAME)))||'/'||
rtrim(ltrim(GET_APPLICATION_PROPERTY(PASSWORD)))||'@'||
rtrim(ltrim(GET_APPLICATION_PROPERTY(CONNECT_STRING)));
------------------------------------------------------------------------------
-- Solicitação para chamda do relatorio com os parametros visíveis ...
------------------------------------------------------------------------------
web.Show_Document( FNC_WEB_DIRETORIO_VIRTUAL||'?server='||w_report_server||'+'||'report='||
w_nome_relatorio||'+'||
'desformat='||'pdf'||'+'||
'destype=cache'||'+'||
w_param||'+'||
fnc_converte_hexa('userid='||string_conn),'_blank');
--********************************************************************************************
--*********************************************************************************************/
END IF;
END IF;
END;
Cara, creio que criando variaves de ambiente para o forms e reports, não seja necessario colocar ali o caminho inteiro do diretório e sim apenas o nome dele,exemplo:RUN_PRODUCT(REPORTS,:GLOBAL.DIRETORIO_TRABALHO||'\'||V_NOME_FONTE,SYNCHRONOUS,RUNTIME, FILESYSTEM,V_PL_ID,null);
RUN_PRODUCT(REPORTS,NOME_FONTE,SYNCHRONOUS,RUNTIME, FILESYSTEM,V_PL_ID,null);
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes