Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Carregar Dados De Tabela, Em um ComboBox


valSistemasDelphi

Pergunta

Olá a todos sou novo no fórum. Atualmente Curso, Sistemas De Informação estou desenvolvendo um sistema para meu projeto, uso a linguagem DelphiXE7

Quero carregar Dados de uma tabela em um ComboBox, mais não sei como fazer isso, se poderem me ajudar eu agradeço.

Uso um DataSourse, DataBase, IbTable, IbTransaction.

Observação:

Tenho um Form Chamado Cadastro_De Funcionários e Outro Form Chamado Caixa_Do_Sistema...

Preciso Que Os Dados Do Form Cadastro_De_Funcionários (Nome) Caia em Um comboBox, No Form Caixa_Do_Sistema.

Para quando eu abrir o caixa do Sistema, poder estar no comboBox, o nome do funcionário já cadastrado.

Link para o comentário
Compartilhar em outros sites

  • Respostas 98
  • Created
  • Última resposta

Top Posters For This Question

Posts Recomendados

  • 0

eu quero que quando o usuário escolher um lanche o preço desse lanche, que está tudo em DbGrid, caisse em um Edit ou Dbedit..

exemplo: Edit4.text:=Ibtable1.Fieldbyname('Nome').AsString;

// nesse exemplo o campo NOME é o 2º campo da tabela
// os indices dos campos de uma tabela começa com o numero 0
// por isso o indice desse campo é o numero 1

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   if (Column.FieldName = 'NOME') then
   begin
      // pegar o conteudo do campo e e jogar em um Edit
      Edit1.Text := DBGrid1.Columns.Items[1].Field.AsString; 
   end;

end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

olá Jhonas acho que me expressei mal.. Tenho três DblookupComboBox que armazena os seguintes Resultados,um para Lanches,Bebidas e outro para Outros..

Exemplo: Se o usuário clicar para escolher o lanche no DblookupCombobox,Eu preciso que o preço desse lanche caia em um Edit..

O DblookupComboBox já está conectado e recebendo todos os cadastros dos lanches...

Se você poder me explicar mais, Pois não Entendi muito bem Sua lógica...Desde já Agradeço pela Ajuda...

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

O exemplo anterior seria se voce fosse clicar com o mouse no DBGrid

No DBLookupComboBox1 na propriedade KeyField voce seleciona o campo da sua tabela ( preço )

No Evento OnClick do DBLookupComboBox1 voce coloca assim

procedure TForm1.DBLookupComboBox1Click(Sender: TObject);
begin
   Edit1.Text := DBLookupComboBox1.KeyValue;
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Iae jhonas Obrigado pela Ajuda até aqui..Bom o preço dos produtos já está ficando armazenado em Edit do jeito que e para ficar..

Tenho um Edit onde e colocado a quantidade que o cliente quer por lanche... Tenho um button que e de calcular.. Ele calcula tudo.. E amostra o valor em um edit..para o funcionário....E tenho um button que e de adicionar..Onde ele adiciona o pedido e o preço em um DbGrid..Isso está funcionando muito Bem...

Ai por Exemplo: Eu escolho a quantidade que o cliente quer.. Clico No Button de calcular, e ele calcula a quantidade * O preço Do lanche, e caia no Edit Chamado Total..

Ai se o funcionário fosse calcular outro pedido desse mesmo cliente, O preço desse Novo pedido somasse com o preço do Primeiro pedido, e caice tudo no Edit Total, já somados já tentei fazer aqui algumas idéias de código mais sem sucesso..

Pois quando gito o novo valor ele apaga o valor e adiciona o outro sem somar........Queria que ele somasse tudo....

O meu Código e este...

procedure TForm4.SpeedButton5Click(Sender: TObject);
var
A:Real;
B:Real;
C:Real;
begin
A:=strtofloat(Edit7.Text);
B:=Strtofloat(Edit8.Text);
C:=B*A;
Edit9.Text:=FloattoStr©;
end;
Este código só calcula o preço do lanche * a Quantidade.
Quero uma ajuda em questão desse problema... se poder me ajudar sobre isso agradeço....
Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

voce tem que armazenar o valor do calculo para depois soma-lo

procedure TForm1.Button1Click(Sender: TObject);
VAR A,B,C,D :Real;
begin
   A:=strtofloat(Edit7.Text);
   B:=Strtofloat(Edit8.Text);
   C:=(B*A);
   D := D + C;
   Edit9.Text:=FloattoStr(D);
end;

tem um exemplo pronto de sistema para lanchonete ... se quiser dar uma olhada, pode aprender mais

http://www.planetadelphi.com.br/delphi/exemplos/completos/00003947.zip

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Iae Jhonas, consegui resolver meu problema, muito Obrigado Você e o Cara...KKk..

Estou com outra Dúvida..Tenho três DbLookupComboBox1, no meu caixa.. Eles estão conectados no mesmo Banco De Dados, Quando clico no dblookupcombox ele amostra certinho o lanche, e já acrescenta o valor no Edit.. ate ai tudo bem..

Só que quando clico em outro DbLookupCombobox o lanche que escolhi de cima some... Só aparece quando clico em um determinado DbLookupComboBox, Quero saber se tem como os nomes dos DbLookupcombox ficar Visivel mesmo clicando nos três... Se tem alguma propriedade, para tal situação...

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

acho que voce não sacou o uso do DbLookupComboBox1

o DbLookupComboBox1 trava em um registro pelo campo ... por isso quando voce clica em um outro item do DbLookupComboBox1, os outros ( DbLookupComboBox ) que estão linkados à mesma tabela, tambem vão apontar para o mesmo registro.

Quero saber se tem como os nomes dos DbLookupcombox ficar Visivel mesmo clicando nos três

com esse componente não ( se os valores estiverem em registros diferentes na mesma tabela )

voce terá que optar por usar outro componente ... tipo o Combobox ... só que nesse caso, voce tem que popular ( inserir ) os dados nele ( strings ) lendo a tabela e jogando os valores que voce quer nele. Depois voce pode escolher os itens independente dos outros.

isso tambem vai requerer que voce tenha um pouco mais de experiencia em programação ... como sugestão, voce deveria ver o exemplo que te passei ... pode ser que voce tenha outras ideias

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Iae jhonas preciso de mais uma ajuda... Preciso imprimir um texto de um memo...Code: Printers(Memo1.Lines);

Mais não Está Funcionando...Sei que você já me ajudou D+ da conta, mais me ajudando eu aprendo e posso também ajudar, meus amigos que estão também na luta comigo na programação na Facu... Desde já agradeço por toda ajuda....

Link para o comentário
Compartilhar em outros sites

  • 0
  • 0

Valeu Ai Jhonas Com os Exemplos Consegui Resolver o meu problema Aqui...

Resolvi Colocar Tres Forms de Estoque em meu sistema...

quero uma ajuda sobre isto pois não tenho muita ideia de como por exemplo dar baixa em um produto por exemplo.

Fiz um form que tem um banco de dados que o mesmo de cadastro de produtos... Então quando cadastro um produto A Quantidade cai tudo neste Form....

Quero uma Ajuda para mim poder dar baixa nesses produtos ou seja diminuir a quantidade desses produtos.... Olhei bastante vídeos mais não me ajudou muito...

Se poder me ajudar Mais está vez... Obrigado pela sua ajuda até aqui Com meu projeto.

Link para o comentário
Compartilhar em outros sites

  • 0

a lógica é:

voce deve ter um form de cadastro de produtos .. certo ? nele voce coloca o código, a descrição do produto, a quantidade, o preço ... etc

então voce deve ter tambem um form de vendas ou movimentação ou outro nome

nesse form voce seleciona o produto e a quantidade que voce quer que seja retirado do cadastro de produto

nesse form voce terá um botão, que irá processar esse evento.... ou seja, voce terá que ler os itens de produto pelo código, pesquisar na tabela de produtos esse código, e achando o código, voce vai diminuir a quantidade que esta nessa tabela

seria tipo isso:

procedure TForm1.Button1Click(Sender: TObject);
begin
  //VERIFICAR PRODUTOS NO ESTOQUE
   CDS_Moviment.First;

   if (botao = 1) then
      begin
         CDS_Moviment.First;
         Gauge1.MaxValue := CDS_Moviment.RecordCount;
         for i := 1 to CDS_Moviment.RecordCount do
            begin
               // PROCURAR O PRODUTO PELO CODIGO
               CDS_Cadprod1.Active := false;
               CDS_Cadprod1.Params[0].AsString := trim(CDS_MovimentCODPRO.Value);
               CDS_Cadprod1.Active := true;
               CDS_Cadprod1.Refresh;

               if  CDS_Cadprod1COD_PRODUTO.Value = CDS_MovimentCODPRO.Value then
                  begin
                     CDS_Cadprod1.Edit;

                     // DAR BAIXA NO ESTOQUE 
                     CDS_Cadprod1QUANT.Value := CDS_Cadprod1QUANT.Value - CDS_MovimentQUANT.Value;
                     CDS_Cadprod1ESTOQUE_ATUAL.Value := CDS_Cadprod1QUANT.Value;
                     CDS_Cadprod1VAL_TOTAL.Value := CDS_Cadprod1VAL_UNIT.Value * CDS_Cadprod1QUANT.Value;
                      
                     // SALVAR AS ALTERAÇÕES NO ESTOQUE
                     CDS_Cadprod1.ApplyUpdates(-1);
                     //CDS_Cadprod1.Refresh;

                  end;
            end;
      end;
end;

OBS: nesse link tem um exemplo prontinho de Cadastro de Produtos e Controle de Estoque

http://www.planetadelphi.com.br/delphi/exemplos/completos/00000818.rar

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas Fiz da seguinte maneira.. Criei um Menu chamado Entrada Estoque> Estoque Produto, Estoque Bebida, Estoque Produtos Opcionais > Onde eu cadastro os Produtos que entraram em estoque..

E criei outro Menu Chamado Saída Estoque> Saída Produto, Saída Bebidas, Saida Produtos opcionais> Onde eu cadastro os produtos que sairam do estoque..

Todos com Banco de dados diferentes... Qual sua opinião a respeito disso? Será que esta Funcional?? ou seja essa logica esta certa,, Quero sua opinião sobre isto.. Esse exemplo não ajudou muito pois uso DelphiXE7, E nesse exemplo o projeto foi feito em outra versão e esta faltando algumas Dll.

Desde já agradeço pela tua ajuda..

Link para o comentário
Compartilhar em outros sites

  • 0

Esse exemplo não ajudou muito pois uso DelphiXE7, E nesse exemplo o projeto foi feito em outra versão e esta faltando algumas Dll.

eu te passei esse exemplo para que voce estude o codigo e entenda a lógia usada. ( voce pode aplicar isso ao seu código )

Todos com Banco de dados diferentes... Qual sua opinião a respeito disso? Será que esta Funcional?? ou seja essa logica esta certa,, Quero sua opinião sobre isto

não seria de bom senso usar tabelas diferentes para a mesma coisa... isso compromete a performance do programa e prejudica a atualização e a manutenção dos dados.

imagine o sequinte: uma tabela chamada "Estoque" onde voce cadastrou uma bebida "Cerveja" e no estoque voce colocou a quantidade de 10

em uma outra tabela usada para Saida de Produtos voce colocou que saiu esse produto "Cerveja" mas que a quantidade foi de 15

para atualizar a tabela "Estoque" voce teria que comparar os dados da Saida de Produtos com a tabela Estoque para atualizar a quantidade, certo ? então sua tabela "estoque ficaria com ( - 5 ) para esse produto ( Cerveja )

se voce simplesmente fizer como no código acima ( exemplo ) voce vai usar sempre a mesma tabela de produtos, adicionando ou retirando a quantidade de um produto ou adicionando um novo produto nela... dessa maneira voce terá sempre a sua tabela atualizada sem precisar fazer outro procedimento.

OBS: Se o programa estiver funcional para voce entregar ao seu professor, então deixe como está ... entretanto, somente com a experiencia e entendimento sobre a programação, é que voce vai aprender que um programa pode ser muintissimo simplificado.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas estou precisando de uma ajuda com Relatórios, Busquei Videos sobre!! mais não entendi muito bem como faz a conexão de por exemplo tabelas para que apareçam no Relatório .. No delphi XE7 estou usando o FastReport Se tiver como me ajudar ou me passar algum conteúdo sobre relatórios para pesquisa, fico grato pela ajuda..

Link para o comentário
Compartilhar em outros sites

  • 0
Link para o comentário
Compartilhar em outros sites

  • 0

Iae Jhonas consegui conectar meu relatorio com meu banco de dados... Ai coloquei um button com o seguinte Código ... Para chamar este Relatório, Estava Chamando e amonstrando os dados....

FRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\Venda.fp3');
FrxReport1.ShowReport();

Agora Está dando este erro, Se eu clico em continuar ele abre o foumulário, mais sem os dados não estou conseguindo entender o que está errado.. Já copiei o caminho do relatório diversas vezes mais nada funcionol...

Project Project1.Exe Reised Expecion Class EClassNotFound With Message 'Class PreparedReport Not Found'.

Se você poder me ajudar sobre isto....

Link para o comentário
Compartilhar em outros sites

  • 0

o erro é : Classe PreparedReport não encontrado

voce pode ter deletado alguma coisa do relatorio

Nota: caso o FastReport não encontre o arquivo, nenhum erro é mostrado, apenas o relatório não exibe nenhum registro.

Veja o exemplo desse artigo:

http://anaprogramadorajunior.blogspot.com.br/2013/10/fastreport-no-delphi.html

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Iae Jhonas Com sua Dica, Tive uma ideia de fazer uma Reparação no Aplicativo Do FrxReport que se encontra no Disco C:\Arquivos De Programas\Report.... Fiz a reparação e está abrindo normalmente agora no Delphi Com o Código que sitei anteriormente Acima.. Com todos os dados do Banco De Dados.. Não entendi muito bem esse erro... Mais parece que era alguma classe Do FrxReport que o Delphi não estava encontrando... . Valeu ai Jhonas..Obrigado...

Editado por valSistemasDelphi
Link para o comentário
Compartilhar em outros sites

  • 0

Jhonas eu vi num video aqui de um sistema que e tipo de fechamento De Caixa...O cara Por exomplo tem três TradioButton 1º Diário o 2º Mensal 3º Por data....

Ai ele tem um Dbgrid que fica Desabilitado.. Ou seja não Aparece nenhum arquivo... Ai quando ele seleciona um dos três, RadioButton e Clica num Button, aparece os arquivos no DbGrid... Quero fazer isto também no meu Sistema... Se você tiver alguma Dica ou Video ou Artigo.. Eu pesquiso Aqui.. Por que eu já procurei testei e não está dando certo... Porque no caso e uma Condição que o Código tem que ter ne só que no meu caso não consegui Resolver ainda......

Se poder me dar uma força.......

Link para o comentário
Compartilhar em outros sites

  • 0

para usar o componente RadioButton seria assim:

exemplo

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Grids, DBGrids, DB, DBTables;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    Query1: TQuery;
    procedure RadioButton1Click(Sender: TObject);
    procedure RadioButton2Click(Sender: TObject);
    procedure RadioButton3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.RadioButton1Click(Sender: TObject);
begin
   if RadioButton1.Checked = true then
      begin
         Query1.Active := false;
         Query1.SQL.Clear;
         Query1.SQL.Append('select * from produtos order by cod_fornec');
         Query1.Active := true;
      end;
end;

procedure TForm1.RadioButton2Click(Sender: TObject);
begin
   if RadioButton2.Checked = true then
      begin
         Query1.Active := false;
         Query1.SQL.Clear;
         Query1.SQL.Append('select * from produtos order by cod_prod');
         Query1.Active := true;
      end;
end;

procedure TForm1.RadioButton3Click(Sender: TObject);
begin
   if RadioButton3.Checked = true then
      begin
         Query1.Active := false;
         Query1.SQL.Clear;
         Query1.SQL.Append('select * from produtos order by descricao');
         Query1.Active := true;
      end;
end;

end.

OBS: Essa é uma das maneiras, mas existem muitas outras...

nesse caso, quando voce seleciona um RadioButton, voce fecha a query, limpa, substitui o código select, e ativa a query novamente ... o DBgrid vai mostrar os dados da "select" assim que a query é ativada.

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

o jhonas fiquei com uma dúvida sera que da para usar esta lógica para por exemplo abrir relatório... Exemplo se eu escolher um rádio Button la de Venda Diária.. Ele vai abrir somente das vendas daquele dia que a lanchonete vendeu certo... Será que dar para fazer com esta condição .. Fico no aguardo desta dúvida..

Link para o comentário
Compartilhar em outros sites

  • 0

O jhonas fiquei com uma dúvida sera que da para fazer com esta mesma logica de código descrita acima para ele abrir um relatorio por exempl... Eu tenho 3 RadioButton um de Venda Diária, Mensal, E por escolha de Data... Eu fiz um relatorio mais queria que ele abrice so com as vendas que foi feita naquele dia...Assim sendo Diária.. Fiz uma condição parecida com este código seu, Só que ele só carrega meu relatório... No código fiz um exmplo assim

if Diário.checked = true then
beginFRXReport1.LoadFromFile('E:\ProjetoCadastro\Nova Lanchonete\VendaCaixa.fr3');
FrxReport1.ShowReport() ;
end
else
ShowMessage('Operação incorreta');
End;
End;
Fiz esta mensagem para testar mais sempre abre o formulário, já fiz com FrxReport.Visible:=True, mais sempre abre...
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.




  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...