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.
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.
/*
** 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;
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:
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".
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:
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 );
Como eu faço para que na visualização apareça os valores????
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;
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....