Go_block e go_item não funcionam

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
quebra
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Sex, 10 Ago 2012 2:08 pm

Tenho dois bloco database, o bloco1 é onde eu coloco a data como parametro para a query do bloco retornar um resultado, o bloco2 é a segunda parte do meu formulário. Mas o meu problema é passar o cursor (o que pisca) do bloco1 para o bloco2 automaticamente depois da consulta. Após a execução da query do bloco1 o cursor volta para o primeiro item do bloco1, mas eu quero que ele vá direto para o primeiro item do bloco2. já usei a triggers key-next-item, key-enter, post-query, post-text-item, post-change todas elas, uma de cada vez, no item "data" do bloco1 onde é o item que eu passo o parametro para o bloco2.
alguém tem alguma ideia que possa me ajudar?
Tinho
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 317
Registrado em: Seg, 16 Nov 2009 4:50 pm
Localização: São Paulo - SP

Paulo,

Não sei se entendi bem, mas você está querendo utilizar os dados do resultado de um cursor em outro? Se for isso mesmo, acredito que quando você atribui o resultado do cursor a uma variável, você pode utilizar as propriedades do cursor em qualquer parte dentro do escopo do objeto. Ainda há a possibilidade de trabalhar com os TYPES OBJECT também.

Veja se isso ajuda.

Qualquer coisa, posta ai.

Abç.,

--
rhoads88
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 9
Registrado em: Sáb, 21 Abr 2012 1:49 pm

Cara o cursor está retornando pro bloco 1?
Em que momento você está executando a query? Após setar uma data no bloco1?
Pelo que eu entendi você quer alterar uma data e fazer uma query no bloco2 de acordo com essa data.
Dá pra fazer o seguinte, ao sair do campo, seta a data do bloco1 para um campo que está na condição where do bloco2.
Feito isso dá um
go_block('nome_bloco2');
execute_query;
E automaticamente vai parar no primeiro campo navegável do bloco2.
Lembrando que se você quiser utilizar go_block e go_item em algumas procedures como when-validate-item diretamente vai dar erro de execução. Você pode contornar isso criando um timer NO_REPEAT que faça a rotina desejada e chamdo o timer na when-validate-item.

Espero ter ajudado.

Marcelo.
Responder
  • Informação