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

!problema Urgente


Guest gseverog

Pergunta

to precisando saber com faço o seguinte, qro cadastrar uma peca, mas essa peca serve em varios carros, entaum teria q criar otra tabela, pra guardar o codigo da peca e o codigo do carro, mas dai tenho uma list q fik todos os carros q qro q a peca seja compativel, entaum como faco pra pegar o codigo do carro e da peca pra cadastrar, sendo q a list é prenchida já a partir das tabela de carros!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Vou vê se consigo ajudar e se entendi realmente o que você quer fazer ok?

Tbl_carro:

codigo_carro

nome

cor

placa

tbl_peca:

codigo_peca

modelo

referencia

preço

tbl_carro_peca

codigo_carro_peca (sequencial)

codigo_peca FK

codigo_carro FK

Tbl_Compra

Codigo_Compra

Cliente

Codigo_Peca

Codigo_Carro

você pode fazer uma query assim:

// Com essa Query você consegue buscar o que tem correspond. nas três tabelas.

// O resultado dessa query pode ser mais de uma peça e você deverá mostrar em um DbGrid e selecionar a peça correspondente ao que o cliente quer. Caso você precise fazer uma consulta mais aprofundada pela aproximação do nome da peça você me fala, primeiro vê se isso te atende ok?

With Query1 do

begin

close;

SQL.Clear;

SQL.Text := 'select * from tbl_carro a, tbl_peca b, tbl_carro_peca c '+

'where a.codigo_carro = c.codigo_carro and '+

' b.codigo_peca = c.codigo_peca and '+

' a.codigo_carro = :parametro ';

ParamByName('parametro').asInteger := strtoint(trim(codigo_carro.text));

Open;

end;

//Carrega os dados na tela aqui, essa forma pode ser aplicada no On Click de um botão ou no On key down do DbGrid ok?

On Click

if not isempty then

begin

formEDITS.Edit_Carro_Codigo.text := FieldByName('codigo_carro').asString;

formEDITS.Edit_Peca_Codigo.text := FieldByName('peca_codigo').asString;

Etc...

FORMDBGRID.close;

end

else

begin

ShowMessage('Informe a peça a ser selecionada');

dbgrid.setfocus;

exit;

end;

// On Key Down do DBGrid:

if key = vk_return then // esse vk_return é para o enter

begin

if not isempty then

begin

formEDITS.Edit_Carro_Codigo.text := FieldByName('codigo_carro').asString;

formEDITS.Edit_Peca_Codigo.text := FieldByName('peca_codigo').asString;

Etc...

FORMDBGRID.close;

end

else

begin

ShowMessage('Informe a peça a ser selecionada');

dbgrid.setfocus;

exit;

end;

end;

// Caso você queira usar outra tecla pra selecionar os capos e jogar nos edits ultilize o nome da tecla depois do vk_ ok? algumas você tem q fazer de outra forma...

// Depois de selecionado os campos para os edits é só colocar o código para cadastrar numa tabela de compras EX:

With Query_Inclusao do

begin

Close;

SQL.Clear;

SQL.Text := 'Insert into tbl_compras '+

'(compra_codigo, carro_codigo, cliente, peca_codigo) '+

'Values '+

'(:compra_codigo, :carro_codigo, :cliente, :peca_codigo) ';

// Colocar Parametros OBS: Caso o seu código de compra seja auto incremento você não deve coloca-lo no código acima e nem abaixo ok?

ParamByName('Compra_Codigo').asInteger := StrToInt(Trim(Edit_Codigo_Compra.Text));

ParamByName('carro_codigo').asInteger := StrToInt(trim(Edit_Carro_Codigo.text));

Etc...

ExecSQL;

end;

OBS: Toda vez que você quiser fazer uma consulta de compra você pode fazer uma query como na primeira fazendo referência a outras tabelas ok?

Um abraço, Espero ter ajudado... cool.gif , Qualquer coisa pergunte!!!

Anderson Gonçalves - anderson_sys@yahoo.com.br

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...