chamar o report no Oracle Forms 10

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
Alexandre Ferres
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 05 Mar 2010 11:42 am
Localização: SP

Olá meu nome é Alexandre e eu gostaria de saber se alguém pode me dar uma força com o Oracle Forms 10, o negócio é o seguinte galera eu aprendi a chamar o form atavés de um button com when-button-pressed,
usando call_form('nome do form'), mas como eu faço pra chamar o report
através de um button, espero que alguém possa me ajudar abraços galera!!!!
aprendiz01
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 14
Registrado em: Qua, 03 Mar 2010 10:48 am
Localização: Salvador - BA

Alexandre,

Se você for utilizar parametros no formulário, precisa criar uma lista de parametros normal como era nas versões mais antigas do Forms.

Para chamar o relatório pelo botão, primeiro você deve criar um objeto Reports do formulário que vai chamar o relatório.

No when-button-pressed, você cira sua pl_id (lista de parametros normalmente), depois "seta" as propriedades (muda de acordo com suas preferencias):

Selecionar tudo

pl_id := "SUA LISTA DE PARAMETROS";
DEPOIS:

Selecionar tudo

SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_COMM_MODE,SYNCHRONOUS);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_FILENAME,v_cam||report_file_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_EXECUTION_MODE,RUNTIME);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESTYPE,CACHE);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_DESFORMAT,'PDF');
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_SERVER,v_reports_server_name);
SET_REPORT_OBJECT_PROPERTY(report_id,REPORT_OTHER,report_otherparam);

ReportServerJob:=run_report_object(report_id, pl_id);
	
user_id := get_application_property(username)||'/'||get_application_property(password)||'@'
 ||get_application_property(connect_string);

rep_status := REPORT_OBJECT_STATUS(ReportServerJob);
	
IF rep_status = 'FINISHED' THEN
    web.show_document(v_reports_servlet||'?server='||v_reports_server_name||'&report='||v_cam||report_file_name||'&destype=cache&desformat=pdf'
         ||'&userid='||user_id||report_otherparam,'_blank');
ELSE
message('Falha na geração do relatório - '||rep_status);
END IF;
OBS.

Web.show_document é para exibir o relatório.

Onde:

v_cam é o caminho onde está relatorio, report_file_name é o nome do seu relatório, etc.

v_reports_servlet é o endereço do servidor....etc.

Dica : Se estiver usando servidor de banco de dados, prefira armazenar os valores do parametros em um tabela no banco. porque se houver qualquer mudança o servidor, você não precisa entrar de tela em tela para alterar seu código.

Espero ter ajudado, tb bati a cabeça com isso, mas hj já funciona tranquilamente. Se não lhe ajudar, no site da Oracle tem uma apostila muito boa sobre chamada de relatórios, dê uma olhada.
Alexandre Ferres
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Sex, 05 Mar 2010 11:42 am
Localização: SP

Valeu carinha pela força, creio que vai ajudar um abraço.
Cleonice
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 27
Registrado em: Seg, 23 Nov 2009 10:04 am
Localização: SP

Olá Alexandre, tudo bem?
Tentei utlizar o run_report_object no forms 11g, porem me deparei com um problema que não consegui entender porque ocorre.Na verdade o que posso fazer para que quando o report for chamado, abra a tela de parametro do report o usuario coloque os dados necessários e somente depois o report server execute o relatorio.Até consigo abrir a tela do parametro mas quando transmito me fala que o report acabou.
Obrigada.
Cleonice.
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Cleonice,
Não sei a que ponto isto poderia lhe ajudar, mas eu costumo utilizar a RUN_PRODUCTS para executar relatórios que precisam abrir a tela de parametros.

Selecionar tudo

RUN_PRODUCT(REPORTS, par_nome_relatorio, SYNCHRONOUS, RUNTIME, FILESYSTEM, par_list ,NULL);
Espero que ajude.
Cleonice
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 27
Registrado em: Seg, 23 Nov 2009 10:04 am
Localização: SP

uso o Forms Builder 11g, o run_products se tornou obsoleto nessa versão, foi substituido pelo run_report_object.Já tentei as variações de parametro usado no run_products mas não obtive sucesso.
Responder
  • Informação
  • Quem está online

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