PARAMETRO

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
dante
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qui, 24 Jan 2008 1:58 pm
Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando

tenho bloco X que tem um button
quando clicar nesse button
ele chama um outro form usando o call form()

porem no form que vira agora ele já tem que aparece com os dados carregados.

os dois são as mesmas coisas a diferença é que um é mais detalhado
como eu faço ele executa a query com um parametro cod_emp;

como eu faço isso?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Ao sair deste primeiro form, popula uma Global, daí, no segundo form você utiliza ela.

Para criar:

Selecionar tudo

 :GLOBAL.NOME_PARAMETRO := :BLOCO.CAMPO; -- Ou um valor fixo, depende da tua necessidade.
Depois, no outro bloco, você utiliza este parâmetro:

Selecionar tudo

...
  WHERE VALOR = :GLOBAL.NOME_PARAMETRO;
...
dante
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qui, 24 Jan 2008 1:58 pm
Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando

tipo eu fiz isso

no botao eu coloquei

Selecionar tudo

:GLOBAL.participante := :contatos.cod_participante;
CALL_FORM('sat_cad_participantes'/*, NO_HIDE, DO_REPLACE*/);
e no
when-new-form-istance eu coloquei

Selecionar tudo

 if  :GLOBAL.participante is not null then
 :participantes.cod_participante := :GLOBAL.participante;
	execute_query;
else
	Operacao.Novo_Form;
end if;

só que ele não executa o a query
alguém sabe o porque ?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Você tem que utilizar a global na PRE-QUERY deste bloco, caso seja base table.

Exemplo:

Selecionar tudo

...
 if  :GLOBAL.participante is not null then 
 v_string := ' AND TABELA.CAMPO = ' ||:GLOBAL.participante; 
 end if;
...
E, na tua pre-query, mudar o default_where (para utilizar a v_string).

Daí, no post-query, só dá um execute_query.

qualquer coisa, manda ai.
dante
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qui, 24 Jan 2008 1:58 pm
Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando

nossa eu não entendi!

desculpa
mas é que eu não entendi o seguinte

no button pressed, eu mando ele apenas chamar o form então ?

a v_string? eu declaro ela onde ? precisa declara?

'Você tem que utilizar a global na PRE-QUERY deste bloco, caso seja base table. '
você diz deste bloco, o bloco que tem a informação
ou o bloco que recebe a informação
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Então brother,

No bloco que recebe a informação.

Vamos supor, que o bloco que irá receber informação, seja base table e, tenha como source a tabela EMP.
Suponhamos também, que eu quero passar um determinado empregado para consulta (que receberá :global.nro_empregado):

Na PRE-QUERY, do bloco que você está indo (no caso EMP), você coloca o código:

Selecionar tudo

declare
	vwhere varchar2(4000);
begin
 	vwhere :=           'empno = '||:global.nro_empregado;
  set_block_property('EMP',DEFAULT_WHERE,vwhere);
end;
E, no POST-QUERY:

Selecionar tudo

 execute_query;
qualquer coisa, manda ai.
dante
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qui, 24 Jan 2008 1:58 pm
Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando

não estou conseguindo acompanhar o raciocinio
vamo la !

primeiro
no form sat_con_participantes
é da onde parte a informação.

o que eu coloco neste bloco ????

me fala só dele .. depois falamos do bloco que recebe
por favor
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother, vamos lá:
não estou conseguindo acompanhar o raciocinio
vamo la !

primeiro
no form sat_con_participantes
é da onde parte a informação.

o que eu coloco neste bloco ????
Neste bloco, você popula o valor da tua global, que vai ser passada pro outro formulário.

Selecionar tudo

:global.nome_global := :con_participantes.campo_y;
me fala só dele .. depois falamos do bloco que recebe
por favor
No que recebe, no pre-query do teu bloco, você coloca o procedimento que lhe informei no tópico anterior.

qualquer coisa, manda ai.
dante
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qui, 24 Jan 2008 1:58 pm
Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando

na pre query eu coloco

Selecionar tudo

declare 
   vwhere varchar2(4000); 
begin 
    vwhere :=           'cod_participante = '||:global.NRpart; 
  set_block_property('
aqui é a tabela??'

Selecionar tudo

,DEFAULT_WHERE,vwhere); 
end;
e o resto ta certo que eu substitiu ?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Aí é o nome do teu bloco brother.
Aqui na empresa, por padrão, é o mesmo nome da tabela, beleza?
dante
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 48
Registrado em: Qui, 24 Jan 2008 1:58 pm
Localização: são paulo sp
Danilo Maranini
Aprendendo e Compartilhando

então
"funcionou"

fiz como você falo


coloquei varios msg_alert para que ver os valores atribuitos pela :global
ela não se perde

porem
quando carrega a tela que deveria carregar os dados com os itens de filtro o parametro
ele fica com uma ampulheta .. e não faz anda..
quando eu dou raio para ver o que resulta ele me tras o primeiro registro daquele grupo de inforações a qual eu escolhe 1 para ser oparametro


sabe o que pode ser?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother...
Você debugou o teu pre-query?
Verificou se está fazendo a comparação correta?
No post-query, colocou um execute_query?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Majestic-12 [Bot] e 6 visitantes