GARANTIR DESCONTO

Fórum Popular DBComboBox com dados do banco #374533

02/09/2009

0

OLÁ!! ESTOU COM UMA DÚVIDA PARA ´POPULAR UM DBCOMBOBOX´. É O SEQUINTE, TENHO A TELA DE CADASTRO DE PRODUTOS, CONTENDO A DESCRIÇÃO DO PRODUTO E A MARCA DO PRODUTO. NO ENTANTO EU QUERO COLOCAR UM DBCOMBOBOX PARA GRAVA O QUE O USUÁRIO DIGITAR PARA A MARCA DO PRODUTO. MAS O QUE QUERO NA VERDADE, É APRESENTAR NO DBCOMBOBOX AS MARCAS JÁ CADASTRADAS NO BANCO. CASO JÁ TENHA UMA MARCA CADASTRADA NO BANCO O USUÁRIO IRIA SÓ SELECIONAR. MAS CASO NÃO TENHA A MARCA CADASTRADA NO CAMPO, O USUÁRIO IRÁ DIGITAR NO DBCOMBOBOX E DEPOIS SALVAR.

PELO QUE EU ANDEI PESQUISANDO NO FÓRUM DA DEVMEDIA, VI MUITA RECOMENDAÇÃO PRA USAR O DBLOOKUPCOMBOBOX. EU ANDEI TENTANDO MAS TAMBÉM NÃO DEI CONTA. PELO MENOS NÃO CONSEGUI EDITITAR UMA MARCA ´NOVA´ NO DBLOOKUPCOMBOBOX.

ESTOU UTILIZANDO DELPHI 2009, FIREBIRD 2.0 E COMPONENTES DBEXPRESS. TENHO UM DATAMODULE COM OS COMPONENTES PARA CONEXÃO COM O BANCO. (SQLDATASET, DATASETPROVIDER E CLIENTDATASET), NO MEU FORM DE CADASTRO DE PRODUTOS TEM UM DATASOURSE LIGADO COM O CLIENTDATASET DO DATAMODULE.

DESDE JÁ AGRADEÇO!!


Tpaulon

Tpaulon

Responder

Posts

03/09/2009

Osocram

Acho que vc não entendeu o proposito dos componentes.

DBComboBox vc tem que popular no braço. Por exemplo no OnShow da tela vc faz um loop em seu ClientDataSet e faz ComboBox.Item.append(clientdataSet.FieldByName(´ds_marca´).ASstring)

Agora o DBLookUpComboBox ele tem umas propriedades no qual vc tem que ligar ou outro ClientDataSet que vai ter todos os registros que vc quer, no seu caso um select ds_marca from marca. E não da p editar uma nova marca nele... somente selecionar uma ja existente.


Responder

Gostei + 0

03/09/2009

Rafa.spimenta

Pelo que eu entendi vc deveria utilizar o dbcombobox com a propriedade style = csDropDown, assim o usuário pode digitar qualquer valor no seu dbcbx.
No evento onExit do dbcbx, faça um locate na sua tabela para verificar se o q esta no dbcbx existe na sua tabela, caso nao exista vc pode exibir uma msg questionando se o usuario gostaria de inserir aquele dado q esta no seu dbcbx na sua tabela ou nao, se positivo, vc o insere.


Responder

Gostei + 0

07/09/2009

Tpaulon

Pessoal .... deu certo!!
Muito obrigado!!!

Populei no braço o DBComboBox, no oncreate do form:

procedure Tform1.FromCreate(Sender :TObject);
clientdataSet.first
DBComboBox1.Clear;
while not ClientdataSet1.eof do
begin
ComboBox.Item.append(clientdataSet.FieldByName(´ds_marca´).ASstring);
clientdataSet.next;
end;


Depois no botão salvar, como eu não vou fechar o meu form, no botão salvar eu forlo a chamada do evento onshow, onde ele ´re-popula o DBComboBox já com a nova inserção que acabei de gravar. fica assim:

procedure Tform1.btn_Salvar(Sender :TObject);
begin
formShow(Sender);
end;

no meu caso resolveu o problema!!!
vlw...!!!
abraço!!


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar