Ola para todos. Tem uma que há muito tempo não faco, gostaria de ajuda.
Passagem de parametros de um forms para outro.
Tenho um forms PRINCIPAL, onde criei uma lista de parametros corretamente e populei estalista e, chamo o forms SECUNDARIO através da CALL_FORM(p1, p2, p3, p4, plista), como devo proceder para recuperar estes parametros passados no forms SECUNDARIO.
valeu!
Passagem de Parametros
- dr_gori
- Moderador
- Mensagens: 5024
- 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
Simples, basta usa-los dessa forma no form secundário:
Aproveitando, já coloco um exemplo de como passar parametros para um form secundário:
var := :parameter.SEU_PARAMETRO;
Declare
p paramlist;
Begin
--Cria lista de parametros.
p := Get_Parameter_List('lista_parametro');
if NOT id_null(P) then
Destroy_Parameter_List(p);
end if;
p := Create_Parameter_List('lista_parametro');
--Adiciona os parametros do bloco correto.
Add_Parameter(p,'P_SEQ' ,TEXT_PARAMETER, :TT_RECEPCAO_AVERBCOL.SQ_LOG);
--Chama o formulário!
open_form('FORM_04511', activate, no_session, no_share_library_data, p);
end;
-
- Rank: Programador Sênior
- Mensagens: 62
- Registrado em: Seg, 11 Jul 2005 2:03 pm
- Localização: são Paulo
NiNo
Developer
Developer
O cogido abaixo esta na trigger when-button-pressed do form CHAMADOR, porem quando eu invoco o forms a ser chamado me aparece a mensagem que esta em vermelho
FRM-47023 - no such parameter name PTIPO exist in form CHAMADO
FRM-47023 - no such parameter name PNM_TABELA exist in form CHAMADO
FRM-47023 - no such parameter name PHANDLE_REGISTRO exist in form CHAMADO
No forms CHAMADO foi especificado no OBJECT NAVIGATOR-PARAMETERS os tres parametros com o mesmo nome, mas mesmo assim me persiste a mensagem.
valeu
DECLARE
vFORMS VARCHAR2(10) := 'teste';
vTIPO VARCHAR2(1) := ''; -- F= FORMS, T = TABELA;
vNM_TABELA VARCHAR2(50) := GET_BLOCK_PROPERTY(:SYSTEM.CURRENT_BLOCK, DML_DATA_TARGET_NAME);
vHANDLE_REGISTRO NUMBER(10) := 1;--GET_ITEM_PROPERTY(:SYSTEM.CURRENT_BLOCK, 'HANDLE');
vName VARCHAR2(10) := 'pForms';
pList PARAMLIST;
BEGIN
pList := Get_Parameter_List(vName);
IF NOT Id_Null(pList) THEN
Destroy_Parameter_List(pList);
ELSE
pList := Create_Parameter_list(vName);
END IF;
Add_Parameter(pList, 'PTIPO', TEXT_PARAMETER, vTIPO);
Add_Parameter(pList, 'PNM_TABELA', TEXT_PARAMETER, vNM_TABELA);
Add_Parameter(pList, 'PHANDLE_REGISTRO', TEXT_PARAMETER, TO_CHAR(vHANDLE_REGISTRO));
CALL_FORM(vFORMS, hide, no_replace, no_query_only, pList);
END;
FRM-47023 - no such parameter name PNM_TABELA exist in form CHAMADO
FRM-47023 - no such parameter name PHANDLE_REGISTRO exist in form CHAMADO
No forms CHAMADO foi especificado no OBJECT NAVIGATOR-PARAMETERS os tres parametros com o mesmo nome, mas mesmo assim me persiste a mensagem.
valeu
- dr_gori
- Moderador
- Mensagens: 5024
- 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
Se você criou os parametros direitinho não deveria estar dando esse erro.
Tente confirmar o seguinte:
* Verifique se você está chamando o programa do lugar correto. (pra isso, coloque o caminho completo na chamada abaixo)
Tente confirmar o seguinte:
* Verifique se você está chamando o programa do lugar correto. (pra isso, coloque o caminho completo na chamada abaixo)
CALL_FORM('C:\' || vFORMS, hide, no_replace, no_query_only, pList);
-
- Rank: Programador Sênior
- Mensagens: 62
- Registrado em: Seg, 11 Jul 2005 2:03 pm
- Localização: são Paulo
NiNo
Developer
Developer
valeu cara deu certo. Porem eu tive que especificar o caminho completo da localização do forms que eu desejava carregar, já alterei a variavel FORMS60_PATH no REGISTER do windows e persiste no erro, qual a solucao para este tipo de situacao, tenho tambem alguns icones que informo o caminho completo e tambem desejo regularizar.
Obrigado !
Obrigado !
-
- Rank: Programador Sênior
- Mensagens: 57
- Registrado em: Qui, 16 Jun 2005 11:31 am
- Localização: Assis
- Contato:
--
Júnior
Júnior
e seu eu quiser inserir dados no form que está sendo chamado??
eu trato dessa mesmo maneira??
suponde que o campo que está sendo passado por parametro não tem nada cadastrado com ele, eu posso efetuar esse cadastro??? sendo assim quando ele executar a consulta ele já trará tudo amarrado...
valeu pessoal!!
eu trato dessa mesmo maneira??
suponde que o campo que está sendo passado por parametro não tem nada cadastrado com ele, eu posso efetuar esse cadastro??? sendo assim quando ele executar a consulta ele já trará tudo amarrado...
valeu pessoal!!
- dr_gori
- Moderador
- Mensagens: 5024
- 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
Bem, não sei o que você quer fazer.
Mas passar parâmetro, não faz nada além de PASSAR informações de um form para o outro...
Se você quiser inserir, não tem problema...
Mas passar parâmetro, não faz nada além de PASSAR informações de um form para o outro...
Se você quiser inserir, não tem problema...
-
- Rank: Programador Júnior
- Mensagens: 24
- Registrado em: Qua, 13 Abr 2005 5:09 pm
- Localização: Volta Redonda - RJ
Grata,
Analista de Sistemas
Analista de Sistemas
Bom dia!
Tenho um form inicial que relaciona todos os meus sistemas em uma tree.
Neste form inicial eu seto um parâmetro (ex.: matricula) que terá que ser passado ao sistema escolhido. Até aí, as explicações sobre passagem de parâmetros me atenderam e funcionaram corretamente.
Ao selecionar um sistema, o form do sistema contém somente um menu que mostrará as funcionalidades pertinentes a cada sistema e a partir do menu eu terei que chamar o form, passando o mesmo parâmetro (ex.: matricula) que eu defini no meu form inicial. Como faço isso? Eu tenho que recriar a minha lista de parâmetros ou posso usar a mesma que recebi do form anterior? Seguindo as mesmas orientações de passagem de parâmetro não funcionou.
Eu tenho também que ter um parâmetro (no exemplo, matricula) em cada form chamado?
Please, help-me.
Obrigada,
Tenho um form inicial que relaciona todos os meus sistemas em uma tree.
Neste form inicial eu seto um parâmetro (ex.: matricula) que terá que ser passado ao sistema escolhido. Até aí, as explicações sobre passagem de parâmetros me atenderam e funcionaram corretamente.
Ao selecionar um sistema, o form do sistema contém somente um menu que mostrará as funcionalidades pertinentes a cada sistema e a partir do menu eu terei que chamar o form, passando o mesmo parâmetro (ex.: matricula) que eu defini no meu form inicial. Como faço isso? Eu tenho que recriar a minha lista de parâmetros ou posso usar a mesma que recebi do form anterior? Seguindo as mesmas orientações de passagem de parâmetro não funcionou.
Eu tenho também que ter um parâmetro (no exemplo, matricula) em cada form chamado?
Please, help-me.
Obrigada,
- dr_gori
- Moderador
- Mensagens: 5024
- 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
Tem casos que é melhor usar uma variável GLOBAL. Exemplo:
Ou seja, essa variávei pode ser acessada por qualquer programa. Daí você não precisa ficar se estressando em passar parâmetros que são comuns a todos programas.
:global.sua_var := 'BLABLABLA';
- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
Eu tenho dois forms, um principal e um secundário.
No principal e pego algumas informações e tento passar por :global, mas não está dando muito certo não. Ele abre o Form secundário, mas não copia os valores das variáveis globais para os campos.
Tenho no Form principal, em um botão, o seguinte código:
No Form secundário, eu tenho o seguinte código:
Ele simplesmente exibe o Form... mas não exibe os valores...
No principal e pego algumas informações e tento passar por :global, mas não está dando muito certo não. Ele abre o Form secundário, mas não copia os valores das variáveis globais para os campos.
Tenho no Form principal, em um botão, o seguinte código:
--WHEN-BUTTON-PRESSED
:global.nm_cont := :CTT.nm_contato;
:global.NR_DDDTEL := :CTT.NR_DDDTEL;
:global.NR_TEL := :CTT.NR_TELEFONE;
:global.NR_DDDCEL := :CTT.NR_DDDCEL;
:global.NR_CEL := :CTT.NR_CELULAR;
:global.NR_DDDTELCOM := :CTT.NR_DDDTELCOML;
:global.NR_TELCOML := :CTT.NR_TELCOML;
:global.NR_DDDFAX := :CTT.NR_DDDFAX;
:global.NR_TELFAX := :CTT.NR_TELFAX;
:global.EMAIL := :CTT.EMAIL;
DECLARE
alert_button NUMBER;
BEGIN
alert_button := Show_Alert('PFI_PJU');
IF alert_button = ALERT_BUTTON1 THEN
:global.NJUR := 'F';
ELSE
:global.NJUR := 'J';
END IF;
END;
CALL_FORM('Form_2');
-- WHEN-NEW-FORM-INSTANCE
DEFAULT_VALUE('0','global.nm_cont');
DEFAULT_VALUE('0','global.NR_DDDTEL');
DEFAULT_VALUE('0','global.NR_TEL');
DEFAULT_VALUE('0','global.NR_DDDCEL');
DEFAULT_VALUE('0','global.NR_CEL');
DEFAULT_VALUE('0','global.NR_DDDTELCOM');
DEFAULT_VALUE('0','global.NR_TELCOML');
DEFAULT_VALUE('0','global.NR_DDDFAX');
DEFAULT_VALUE('0','global.NR_TELFAX');
DEFAULT_VALUE('0','global.EMAIL');
DEFAULT_VALUE('0','global.NJUR');
MOSTRA_MEN('I*','NJUR Global: '|| :global.njur);
/*
Simplesmente para teste, ele deveria exibir uma mensagem com o valor da global :global.njur ; Aparece somente quando chamado diretamente o form pelo menu, quando eu chamo pelo primário, a mensagem não aparece.
*/
if :global.njur in ('F') THEN
:CG$CTRL.CD_NAT_JUR := :global.njur;
:PFI.NM_PFI := :global.nm_cont;
:CCLI.NM_EMAIL := :GLOBAL.EMAIL;
:CCLI.NM_CCL := :global.nm_cont;
-- Continua preenchendo os campos...
end if;
- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
Ah, eu imagino que passagem por parâmetros seja a melhor saída.
Aqui se explica como se envia os dados. Perfeito.
Mas no Form que recebe esses dados, como devo proceder??
Devo ter variáveis que recebam esses dados??
Parâmetros?
Aqui se explica como se envia os dados. Perfeito.
Mas no Form que recebe esses dados, como devo proceder??
Devo ter variáveis que recebam esses dados??
Parâmetros?
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
galera, desculpem a 'ingnorância', mas estou tentando entender aqui como que funciona a chamada de uma outra tela passando algum parâmetro qualquer, mas não entendi 100%.
ex. Tela1 chama Tela2, Tela2 exibirá uma msg que conterá um valor passado por parâmetro da Tela1, já sei que precisa criar um Parameter no Tela2
mas não consegui fazer aqui com os exemplos passados, o que quer dizer todos os parâmetros e as funções utilizadas na chamada, na verdade queria entender melhor a chamada, se alguém pudesse explicar...
valeu
ex. Tela1 chama Tela2, Tela2 exibirá uma msg que conterá um valor passado por parâmetro da Tela1, já sei que precisa criar um Parameter no Tela2
mas não consegui fazer aqui com os exemplos passados, o que quer dizer todos os parâmetros e as funções utilizadas na chamada, na verdade queria entender melhor a chamada, se alguém pudesse explicar...
valeu
- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
E aí Porva, certinho?
Você chegou a fazer algum teste? Tem alguma parte que está enroscando o entendimento??
Bom, como você citou a chamada, vou te passar o que eu costumo fazer:
Agora na sua tela2, na trigger WHEN-NEW-FORM-INSTANCE, você deve adicionar o seguinte:
Entendeu ou ainda está meio obscuro??
Qualquer coisa diz aí!!
Abraços!
Toad
Você chegou a fazer algum teste? Tem alguma parte que está enroscando o entendimento??
Bom, como você citou a chamada, vou te passar o que eu costumo fazer:
Declare
p paramlist; -- Uma lista de Parâmetros a ser enviada.
Begin
--Cria lista de parametros.
p := Get_Parameter_List('lista_parametro');
if NOT id_null(P) then -- se ela já existir
Destroy_Parameter_List(p); -- Destrói
end if;
p := Create_Parameter_List('lista_parametro'); -- Cria novamente
--Adiciona os parametros do bloco correto.
Add_Parameter(p,'P_NOME' , TEXT_PARAMETER, :SEUBLOCK.nm_nome );
Add_Parameter(p,'P_TEL' , TEXT_PARAMETER, :SEUBLOCK.NR_TEL );
-- E assim com todos os parâmetros que você queira enviar para a tela2;
-- No caso acima, a Tela2 teria que ter os dois parâmetros já criados,
-- P_NOME E P_TEL
--Chama o formulário!
CALL_FORM('tela2', hide, no_replace, no_query_only, p);
/* onde:
tela2 é o nome do seu arquivo fmx tela2
hide é para ele esconder a tela 1 enquanto a tela2 é executada
p é sua lista de parâmetros.
*/
/****************************************************
TRAZ VALORES DOS PARAMETROS
*****************************************************/
DECLARE
v_nome VARCHAR2(2000);
v_tel VARCHAR2(15);
BEGIN
v_nome := :parameter.P_NOME;
v_tel := :parameter.P_TEL;
-- E pode agora jogar seus valores em outros campos agora da tela2
-- ou mostrar mensagens usando as variáveis.
:BLOCKTELA2.NM_NOME_CLIENTE := V_NOME;
:BLOCKTELA2.NR_TELEFONE := V_TEL;
-- ...
END;
Qualquer coisa diz aí!!
Abraços!
Toad
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
nossa cara, muito obrigado pela atenção e paciência aqui com o iniciante, hehe
depois que postei a mensagem fui tentanto entender sozinho e praticamente cheguei a essa conclusão, mas você detalhou super bem, muito obrigado, fica aí a dica tb pra quem estiver engatinhando assim como eu!
eu era programador Delphi antes, e no Delphi os conceitos são um pouco diferentes, pelo menos no Delphi isso é mais simples do que no Forms, até porque ele é um executável só, então 'todo mundo enxerga todo mundo', desde que você declare, sem ter que criar parâmetros e lista de parâmetros, etc.
mas beleza, vou até salvar a dica aqui, ficou super bem detalhada, valeu mais uma vez
depois que postei a mensagem fui tentanto entender sozinho e praticamente cheguei a essa conclusão, mas você detalhou super bem, muito obrigado, fica aí a dica tb pra quem estiver engatinhando assim como eu!
eu era programador Delphi antes, e no Delphi os conceitos são um pouco diferentes, pelo menos no Delphi isso é mais simples do que no Forms, até porque ele é um executável só, então 'todo mundo enxerga todo mundo', desde que você declare, sem ter que criar parâmetros e lista de parâmetros, etc.
mas beleza, vou até salvar a dica aqui, ficou super bem detalhada, valeu mais uma vez
- Toad
- Rank: DBA Pleno
- Mensagens: 253
- Registrado em: Sex, 18 Nov 2005 2:14 pm
- Localização: Seattle, WA
- Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c
matheus.dev
twitter.com/developer__c
Também trabalho com Delphi, lá o lance é mais na base da Programação orientada a Objeto. Você cria as classes e tudo fica lindo.
No Forms você vai perceber que a visão é um pouco diferente, mas acredite, tem muita coisa que você faz no Delphi em um mês, e no forms em uma semana!! O tempo dirá!
Qualquer coisa, estamos aí!!
Abraços!
No Forms você vai perceber que a visão é um pouco diferente, mas acredite, tem muita coisa que você faz no Delphi em um mês, e no forms em uma semana!! O tempo dirá!
Qualquer coisa, estamos aí!!
Abraços!
- Porva
- Rank: DBA Sênior
- Mensagens: 342
- Registrado em: Seg, 29 Jan 2007 7:36 am
- Localização: São Paulo/SP
só, pode crer, já percebi isso desde meus primeiros contatos com o Forms! heheh
eu desenvolvia em Delphi mas no esquema 'orientado a eventos' mesmo :S, nunca manjei muito de OO , nem o pessoal da outra empresa que trabalhava :S
mas enfim, é isso aí, produtividade do Forms é muito boa cara, muito objetivo, não tem frescura!
eu desenvolvia em Delphi mas no esquema 'orientado a eventos' mesmo :S, nunca manjei muito de OO , nem o pessoal da outra empresa que trabalhava :S
mas enfim, é isso aí, produtividade do Forms é muito boa cara, muito objetivo, não tem frescura!
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Qui, 27 Ago 2009 9:38 am
- Localização: Gaspar - Santa Catarina
Att,
Sidiane Maria Schnaider
Desenvolvedora Oracle
Sidiane Maria Schnaider
Desenvolvedora Oracle
aí pessoal...
Preciso de ajuda...
Como faço pra passar dois parametros ao mesmo tempo... sendo que esses parametros servirão para uma consulta em outra tela?
valeu...
Preciso de ajuda...
Como faço pra passar dois parametros ao mesmo tempo... sendo que esses parametros servirão para uma consulta em outra tela?
valeu...
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Bing [Bot] e 7 visitantes