Fala pessoal,
Estou comecando como membro hj.
Estou migrando do SQL Server para o ORACLE e pelo que já vi da syntax não vou ter muitos problemas.
Minhas duvidas se concentrar nos FORMS.
Tenho uma aplicacao onde tenho um bloco ligado a uma tabela, nele eu faco cadastro, alteracao e exclusao.
O problema e...existe uma chave estrangeira que precisa que apareca nesta tela como forma de combo e não estou tendo ideia de como fazer...
alguém poderia me ajudar? Como faco para popular uma combo com dados de uma tabela?
Obrigado pessoal e ate...
Rafael.
Como popular combo ?
- 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
Usa o POPUALTE_GROUP
Aí vai um exemplo:
Aí vai um exemplo:
PROCEDURE pr_popula_fl_tipo ( pds_lista in varchar2 ) IS
lrg_id recordgroup;
lrg_nome varchar2(40) := 'FL_TP_EMBARQUE';
lcd_erro number;
begin
lrg_id := find_group(lrg_nome);
if not id_null( lrg_id ) then
delete_group( lrg_id );
end if;
lrg_id := create_group_from_query(lrg_nome,
'SELECT rv_meaning , '||
' rv_low_value '||
'FROM cg_ref_codes '||
'WHERE rv_domain = '||'''FL_TIPOS'''||
'ORDER BY 1 ');
lcd_erro := populate_group( lrg_id );
clear_list(pds_lista);
populate_list(pds_lista,lrg_id );
end;
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qua, 06 Jul 2005 11:33 am
- Localização: RJ
Vlw cara...desculpa a demora em responder, já tinha lido sua msg e seu exemplo antes.
Obrigado pela dica, não entendi muito bem mas, vou papirar em cima dela pra poder criar um padrão que eu possa entender...
Abracos...
Rafael.
Obrigado pela dica, não entendi muito bem mas, vou papirar em cima dela pra poder criar um padrão que eu possa entender...
Abracos...
Rafael.
- 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
Realmente, o exemplo acima é meio complicado.
Veja esse e verás que a coisa é bem simples!!
Esse, eu tirei do HELP do forms - CREATE_GROUP_FROM_QUERY
Veja esse e verás que a coisa é bem simples!!
Esse, eu tirei do HELP do forms - CREATE_GROUP_FROM_QUERY
/*
** Built-in: CREATE_GROUP_FROM_QUERY
** Exemplo: Cria um record_group de uma query e popula um list_item.
*/
DECLARE
rg_name VARCHAR2(40) := 'Salary_Range';
rg_id RecordGroup;
errcode NUMBER;
BEGIN
/*
** Certifica que o grupo não existe ainda.
*/
rg_id := Find_Group( rg_name );
/*
** Se não existe, cria ele e adiciona as duas
** colunas necessarias pra ele.
*/
IF Id_Null(rg_id) THEN
rg_id := Create_Group_From_Query( rg_name,
'SELECT SAL-MOD(SAL,1000) BASE_SAL_RANGE,'
||'COUNT(EMPNO) EMPS_IN_RANGE '
||'FROM EMP '
||'GROUP BY SAL-MOD(SAL,1000) '
||'ORDER BY 1');
END IF;
/*
** Popula o grupo
*/
errcode := Populate_Group( rg_id );
/*
** Apaga os elementos da sua lista
*/
clear_list('bloco.seu_list_item');
/*
** popula seu item com o grupo criado
*/
populate_list('bloco.seu_list_item' , rg_id );
END;
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qua, 06 Jul 2005 11:33 am
- Localização: RJ
Falai dr_Gori,
Vlw pelas dicas cara....eu consegui entender o funcionamento e porque usar cada linha....agora a parada ta mais clara na minha mente...
Consegui finalmente, com a sua ajuda, carregar os dados da tabela em na combo.
Mas agora quando rodo o codigo abaixo, o sistema gera o erro frm-41334 com a mensagem "grupo de registro invalido para o preenchimento da lista".
O que estou fazendo de errado?
Ai vai o codigo:
Obrigado cara...
[]'s
Rafael.
Vlw pelas dicas cara....eu consegui entender o funcionamento e porque usar cada linha....agora a parada ta mais clara na minha mente...
Consegui finalmente, com a sua ajuda, carregar os dados da tabela em na combo.
Mas agora quando rodo o codigo abaixo, o sistema gera o erro frm-41334 com a mensagem "grupo de registro invalido para o preenchimento da lista".
O que estou fazendo de errado?
Ai vai o codigo:
DECLARE
REC RECORDGROUP;
NOME_GRUPO VARCHAR2(50) := 'REC_NOME_COMPANHIA';
N_ERRO NUMBER;
BEGIN
REC := CREATE_GROUP_FROM_QUERY(NOME_GRUPO, 'SELECT NOMECOMPANHIAAEREA
FROM COMPANHIAAEREA');
N_ERRO := POPULATE_GROUP(REC);
POPULATE_LIST('CMB_NOME_COMPANHIA_AEREA', REC);
EXECUTE_QUERY;
END;
[]'s
Rafael.
- 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
Pra mim, é essa linha:
Talvez você precisa especificar o bloco desse CMB_NOME_COMPANHIA_AEREA.
POPULATE_LIST('CMB_NOME_COMPANHIA_AEREA', REC);
-
- Rank: Programador Júnior
- Mensagens: 22
- Registrado em: Qua, 06 Jul 2005 11:33 am
- Localização: RJ
Realmente parcero,
Eu já havia comentado essa linha e não deu o erro...
Estou me referenciando ao item desta forma e o erro persiste:
Vlw chara...
Rafael.
Eu já havia comentado essa linha e não deu o erro...
Estou me referenciando ao item desta forma e o erro persiste:
POPULATE_LIST('BLK_COMPANHIA_AEREA.CMB_NOME_COMPANHIA_AEREA', REC);
Rafael.
- 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
OK. Já sei:
* é que pra popular um List Item , é necessario 2 campos!!! (um para o valor e outro pra descrição!)
Seu select está retornando apenas 1 campo!!! Veja se não é isso!
* é que pra popular um List Item , é necessario 2 campos!!! (um para o valor e outro pra descrição!)
Seu select está retornando apenas 1 campo!!! Veja se não é isso!
- 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
É propriedade do LIST ITEM!
Tenta criar um LIST ITEM manualmente, e verá que você seta o CODIGO e a DESCRIÇÃO de cada item do LIST...
Tenta criar um LIST ITEM manualmente, e verá que você seta o CODIGO e a DESCRIÇÃO de cada item do LIST...
-
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Seg, 31 Jul 2006 2:00 pm
- Localização: Blumenau - SC
Fala povo, seguinte.......por mais que eu já tenha visto e revisto, não sei porque esse danado de record group não cria.
Como tem que ser a criação do list item EQUIPAMENTO.CD_LABORATORIO ???????
Como vai ser o Elements in List dele ????
Sempre que executo o fonte da o erro: "Cannot create Group RG_EQUIPAMENTO".
Alguém pode ajudar ???
Desde já, agradeço.
Como tem que ser a criação do list item EQUIPAMENTO.CD_LABORATORIO ???????
Como vai ser o Elements in List dele ????
Sempre que executo o fonte da o erro: "Cannot create Group RG_EQUIPAMENTO".
Alguém pode ajudar ???
Desde já, agradeço.
PROCEDURE p_popula_listitem IS
rg_id RecordGroup;
temp NUMBER;
BEGIN
rg_id := create_group_from_query('RG_EQUIPAMENTO',
'SELECT cd_laboratorio, ds_laboratorio '||
'FROM laboratorio '||
'ORDER BY 1');
--
temp := populate_group(rg_id);
--
clear_list('EQUIPAMENTO.CD_LABORATORIO');
--
populate_list('EQUIPAMENTO.CD_LABORATORIO', rg_id);
--
delete_group(rg_id);
END;
-
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Seg, 31 Jul 2006 2:00 pm
- Localização: Blumenau - SC
Opa.....descobri o meu problema.
Pra quem interessar ai vai:
No meu caso a ordem e o tipo das colunas não estavam corretos.
Os valores da duas coluna devem ser do tipo VARCHAR2.
Então, no meu caso o SELECT ficou assim:
Abraços.
Pra quem interessar ai vai:
No meu caso a ordem e o tipo das colunas não estavam corretos.
Os valores da duas coluna devem ser do tipo VARCHAR2.
Então, no meu caso o SELECT ficou assim:
SELECT ds_laboratorio, to_char(cd_laboratorio)
-
- Rank: Programador Sênior
- Mensagens: 57
- Registrado em: Qui, 11 Jan 2007 10:26 am
- Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle
Juliana Cr. Cruz
Analista Desenvolvedor Oracle
Bom dia pessoas!!!
Gente... eu entendi como faz o combo box e tudo mais...
Ele está funcionando belezinha!
Mas, no meu caso... ele está trazendo o codigo na lista.... eu queria que o valor aparecesse e o codigo ficasse "por trás"....
vejam o que eu fiz!
Como eu faço para que na visualização apareça os valores????
Obrigada pessoas
bjão!!!
Gente... eu entendi como faz o combo box e tudo mais...
Ele está funcionando belezinha!
Mas, no meu caso... ele está trazendo o codigo na lista.... eu queria que o valor aparecesse e o codigo ficasse "por trás"....
vejam o que eu fiz!
IF Id_Null(rg_id) THEN
rg_id := Create_Group_From_Query( rg_name,
'SELECT CODIGO, VALOR FROM ('
||'SELECT ''Produto / Descrição'' VALOR, ''@i_produto@'' CODIGO FROM dual UNION '
||'SELECT ''UM'' VALOR, ''@i_um@'' CODIGO FROM dual UNION '
||'SELECT ''Quantidade'' VALOR, ''@i_quantidade@'' CODIGO FROM dual UNION '
||'SELECT ''Preço Unitário'' VALOR, ''@i_preço_unit@'' CODIGO FROM dual UNION '
||'SELECT ''% IPI'' VALOR, ''@i_tx_ipi@'' CODIGO FROM dual UNION '
||'SELECT ''Prazo Entrega'' VALOR, ''@i_prazo_entrega@'' CODIGO FROM dual UNION '
||'SELECT ''Detalhes'' VALOR, ''@i_descr_det@'' CODIGO FROM dual)');
END IF;
-- Popula o grupo
errcode := Populate_Group( rg_id );
-- Apaga os elementos da sua lista
clear_list('lss_oe_modelos_cotacao_tab.curinga');
-- popula seu item com o grupo criado
populate_list('lss_oe_modelos_cotacao_tab.curinga' , rg_id );
Obrigada pessoas
bjão!!!
-
- Rank: Programador Sênior
- Mensagens: 57
- Registrado em: Qui, 11 Jan 2007 10:26 am
- Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle
Juliana Cr. Cruz
Analista Desenvolvedor Oracle
Oi pessoas, tudo bem?
Eu fiz esse combo dinamico e deu certinho...
Mas o meu problema é que o forms monta a query e a lista de acordo com um if....
Ex:
O problema é o seguinte...
Por exemplo, o user escolhe "C"... ele retorna os elementos certinhos.... mas se logo em seguida ele escolhe "I"... os elementos da lista permanecem com a anterior..... provavelmente porque o rg_id não é mais nulo....
Como eu falo para limpar os registros/list/rg_id?
Obrigada desde já pessoas...
bjão!!!
Eu fiz esse combo dinamico e deu certinho...
Mas o meu problema é que o forms monta a query e a lista de acordo com um if....
Ex:
IF :qual_query = 'C' then
.....
IF Id_Null(rg_id) THEN
rg_id := Create_Group_From_Query( rg_name, 'SELECT VALOR, CODIGO FROM dual');
end if;
-- Popula o grupo
errcode := Populate_Group( rg_id );
-- Apaga os elementos da sua lista
clear_list('lista_curinga');
-- popula seu item com o grupo criado
populate_list('lista_curinga' , rg_id);
ELSIF :qual_query = 'I' then
.....
IF Id_Null(rg_id) THEN
rg_id := Create_Group_From_Query( rg_name, 'SELECT NOME,ENDERECO FROM dual');
end if;
-- Popula o grupo
errcode := Populate_Group( rg_id );
-- Apaga os elementos da sua lista
clear_list('lista_curinga');
-- popula seu item com o grupo criado
populate_list('lista_curinga' , rg_id);
END IF;
Por exemplo, o user escolhe "C"... ele retorna os elementos certinhos.... mas se logo em seguida ele escolhe "I"... os elementos da lista permanecem com a anterior..... provavelmente porque o rg_id não é mais nulo....
Como eu falo para limpar os registros/list/rg_id?
Obrigada desde já pessoas...
bjão!!!
-
- Rank: Programador Sênior
- Mensagens: 57
- Registrado em: Qui, 11 Jan 2007 10:26 am
- Localização: Santa Bárbaba d'Oeste
--
Juliana Cr. Cruz
Analista Desenvolvedor Oracle
Juliana Cr. Cruz
Analista Desenvolvedor Oracle
Oi pessoas... consegui resolver!!!
Coloquei o seguinte codigo antes do if...
VivAaaaaaaaaaaaaa!!!
Obrigada pessoas!!
até!
Coloquei o seguinte codigo antes do if...
-- Certifica que o grupo não existe ainda.
rg_id := Find_Group( rg_name );
IF Id_Null(rg_id) THEN
null;
ELSE
Delete_Group( rg_id );
END IF;
VivAaaaaaaaaaaaaa!!!
Obrigada pessoas!!
até!
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes