[TUTORIAL] - LOV BASEADA EM PROCEDURE COM RECORD GROUP

Coloque aqui tutoriais (por enquanto, sobre qualquer assunto relacionado a Oracle) e apostilas.
Responder
ricards
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 52
Registrado em: Sáb, 29 Set 2007 12:59 am
Localização: Araraquara-SP
Contato:
Ricardo Neves
Analista e Instrutor Oracle Developer
Java Developer (JPA/JSF/Hibernate/WebServices/EJB)

1. Parar criar uma LOV baseada em Procedure devemos construir a rotina que irá retornar os registros (Oracle Type Record) com as informações da LOV.

Segue a rotina exemplo que deve ser criada:

Selecionar tudo

create	or	replace	package	pkg_treinamento	is
	-- Registro de empregados
	type	v_rec_empregados	is	record	(
								empno	number(4),
								ename	varchar2(10)
							);
	type	v_tab_empregos	is	table	of	v_rec_empregados	index	by	binary_integer;
	-- Procedure responsavel por retorna os empregados em um registro
	procedure	prc_lov_empregados	(
							p_tab_empregados	in	out	v_tab_empregos,
							p_mens			in	out	varchar2
						);
end	pkg_treinamento;
/
create	or	replace	package	body	pkg_treinamento	is
	-- Procedure responsavel por retorna os empregados em um registro
	procedure	prc_lov_empregados	(
							p_tab_empregados	in	out	v_tab_empregos,
							p_mens			in	out	varchar2
						)	is

		cursor	c1	is
			select	empno,
				ename
			from	emp;

		v_ind		number	:=	0;
	begin
		-- Carrega o registro de empregados
		for	r1	in	c1	loop
			v_ind	:=	v_ind	+	1;
			p_tab_empregados(v_ind).empno	:=	r1.empno;
			p_tab_empregados(v_ind).ename	:=	r1.ename;
		end	loop;
	exception
		when	others	then
			p_mens	:=	'PKG_TREINAMENTO.PRC_LOV_EMPREGADOS - Problemas ao executar a rotina. Erro: '	||	sqlerrm;
	end;
end	pkg_treinamento;
/
2. Criar o RECORD_GROUP conforme a imagem abaixo:

[img]
http://www.adrive.com/home/downloadfile/385064572
[/img]

3. Adicione as colunas no Record Group conforme a imagem abaixo:

[img]
http://www.adrive.com/home/downloadfile/385064576
[/img]

4. Em seguida de OK até colocar o último campo no Record Group.

5. Modificar a propriedade “TIPO DE GRUPO DE REGISTRO” de “Estático” para “Consulta”

[img]
http://www.adrive.com/home/downloadfile/385064578
[/img]

6. Criar a LOV utilizando o WIZARD, coforme o exemplo abaixo selecionando o Record Group criado.

[img]
http://www.adrive.com/home/downloadfile/385064579
[/img]

7. Clique em Avançar

8. Adicione as colunas na LOV

[img]
http://www.adrive.com/home/downloadfile/385064581
[/img]

9. Clique em Avançar

10. Atribuir os itens de retorno

[img]
http://www.adrive.com/home/downloadfile/385064582
[/img]

11. Clique em Avançar

12. Titulo da LOV, Tamanho e Posição

[img]
http://www.adrive.com/home/downloadfile/385064584
[/img]

13. Clique em Avançar

14. Tela de Propriedades

[img]
http://www.adrive.com/home/downloadfile/385064585
[/img]

15. Clique em Avançar

16. Selecione os itens de retorno

[img]
http://www.adrive.com/home/downloadfile/385064587
[/img]

17. Clique em Encerrar

18. Criar a “TRIGGER” KEY-LISTVAL no campo onde é chamada a LOV.

[img]
http://www.adrive.com/home/downloadfile/385064574
[/img]

19. Clicar em OK.

20. Na trigger adicionar o seguinte código coforme a imagem:

[img]
http://www.adrive.com/home/downloadfile/385069601
[/img]

21. Segue o resultado da LOV

[img]
http://www.adrive.com/home/downloadfile/385064575
[/img]
Responder
  • Informação
  • Quem está online

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