Fala Pessoal!! td bem??
gostaria de saber se alguém tem um exemplo onde eu consiga executar um loop dentro de um bloco tabular...
seguinte eu tenho um bloco que mostra os registros e nisso ele tem uma condição, se desmarcar essa condição não precisa listar o produto..
alguém sabe como fazer esse "select" no bloco??
valeu galera...
Loop em bloco tabular...
- dr_gori
- Moderador
- Mensagens: 5013
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você pode percorrer o seu bloco, fazendo o seguinte:
Eu acho que a melhor forma de fazer seleções em blocos BASE TABLE é assim:
* Você cria uma tabela temporaria.
* Quando o usuário clicar no check-box, você faz um INSERT da PK da sua tabela nessa temporária.
* Se o usuário tirar o check, faz o DELETE.
Assim, você tem uma tabela com os registros que ele selecionou e pode facilmente fazer queries com essa seleçao.
O ideal, é criar uma GLOBAL TEMPORARY TABLE pra essa temporaria, pra evitar problemas de varios usuarios estarem trabalhando ao mesmo tempo!

GO_BLOCK('seu_bloco');
FIRST_RECORD;
LOOP
-- faça os seus testes aqui.
--
IF :SYSTEM.LAST_RECORD = 'TRUE'
THEN EXIT;
ELSE NEXT_RECORD;
END IF;
END LOOP;
* Você cria uma tabela temporaria.
* Quando o usuário clicar no check-box, você faz um INSERT da PK da sua tabela nessa temporária.
* Se o usuário tirar o check, faz o DELETE.
Assim, você tem uma tabela com os registros que ele selecionou e pode facilmente fazer queries com essa seleçao.
O ideal, é criar uma GLOBAL TEMPORARY TABLE pra essa temporaria, pra evitar problemas de varios usuarios estarem trabalhando ao mesmo tempo!


- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP
São Paulo/SP
pronto, seguindo a dica passada aqui e outra passada pelo Gori em outro tópico, consegui resolver aqui, valeus... fica a dica:
-----------------------------------------------
-- Colorir as linhas com nome do funcionário --
-- sugerido à respectiva para a ligação --
-----------------------------------------------
LOOP --Percorre os registros (linha a linha)
vn_cur_itm := GET_BLOCK_PROPERTY( 'b02', FIRST_ITEM );
WHILE ( vn_cur_itm IS NOT NULL ) LOOP --Percorrer item a item (movimentação entre as colunas)
--
vn_cur_itm := 'b02.'||vn_cur_itm;
--Verifica se o Item está no canvas, não é necessário se TODOS os itens estiverem no canvas
IF GET_ITEM_PROPERTY( vn_cur_itm, ITEM_CANVAS ) IS NOT NULL THEN
IF :b02.func_cd IS NOT NULL THEN
SET_ITEM_INSTANCE_PROPERTY( vn_cur_itm, CURRENT_RECORD, VISUAL_ATTRIBUTE, 'VS_VERMELHO' );
END IF;
END IF;
vn_cur_itm := GET_ITEM_PROPERTY( vn_cur_itm, NEXTITEM );
END LOOP;
IF :SYSTEM.LAST_RECORD = 'TRUE' THEN
EXIT;
ELSE
NEXT_RECORD;
END IF;
END LOOP;
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP
São Paulo/SP
puts, foi mal, postei no lugar errado
era pra ter sido nesse tópico:
http://glufke.net/oracle/viewtopic.php?t=519
era pra ter sido nesse tópico:
http://glufke.net/oracle/viewtopic.php?t=519
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes