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!!!!
chamar o report no Oracle Forms 10
-
- Rank: Estagiário Pleno
- Mensagens: 6
- Registrado em: Sex, 05 Mar 2010 11:42 am
- Localização: SP
-
- 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):
DEPOIS:
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.
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):
pl_id := "SUA LISTA DE PARAMETROS";
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;
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.
-
- 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.
-
- 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.
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.
-
- 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
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.
Espero que ajude.
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.
RUN_PRODUCT(REPORTS, par_nome_relatorio, SYNCHRONOUS, RUNTIME, FILESYSTEM, par_list ,NULL);
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante