Fórum Inserção usando um botão tipo incluir #457798
08/10/2013
0
- É o seguinte estou desenvolvendo um programinha para um restaurante de um amigo, dai gostaria de simplificar algumas rotinas, tipo esta:
-Clicar em um determinado botão que represente um produto, da TABELA PRODUTOS, e se este já estiver presente na TABELA DE ITENS DO PEDIDO, acrescentar na mesma linha a quantidade e some o total. Tipo assim:
Cod. Descr. Qnt. unit Total
1 Pizza Mussa 1 10 10
dai se eu quiser inserir mas um pizza com o mesmo
- De já agradeço,
- Obrigado. FICANDO ASSIM:
Cod. Descr. Qnt. unit Total
1 Pizza Mussa 2 10 20
Emerson Carvalho
Curtir tópico
+ 0Posts
08/10/2013
Marcos Oliveira
Att,
Marcos
Gostei + 0
08/10/2013
Emerson Carvalho
Gostei + 0
08/10/2013
Emerson Carvalho
begin
TbITens.First;
While Not TbItens.Eof do
Begin
//if not TbItens.IsEmpty then
if TbItens.FindKey([TbItensCodProduto.Value]) then
TbItens.InsertRecord([TbItensQuantidade.Value,TbItensPreco.Value,TbItensTotal.Value])
Else
begin
DsItens.DataSet.Insert;
DBEdit3.SetFocus;
end;
TbItens.Next;
End;
end;
Gostei + 0
08/10/2013
Marcos Oliveira
if TbItens.FindKey([TbItensCodProduto.Value]) then
begin
// Encontrou o registro, então só faz a edição.
TblItens.Edit;
TblItens.FieldByName('Qtde').AsFloat := TblItens.FieldByName('Qtde').AsFloat + 1; // Exemplo... Faça de acordo com sua necessidade.
TblItens.FieldByName('Total').AsFloat := TblItens.FieldByName('Qtde').AsFloat * TblItens.FieldByName('valor_unitario').AsFloat;
TblItens.Post;
end
else
begin
// Se não encontrou o registro, então adiciona um novo.
TblItens.Append;
TblItens.FieldByName('Qtde').AsFloat := 1;
TblItens.FieldByName('Total').AsFloat := TblItens.FieldByName('valor_unitario').AsFloat;
TblItens.Post;
end;
Bom, isso é só um exemplo. Você deve adaptar de acordou com seu sistema, mas a lógica é mais ou menos essa.
Se der algum erro, me desculpe. Paradox não é minha área.
Att,
Marcos
Gostei + 0
08/10/2013
Emerson Carvalho
Gostei + 0
08/10/2013
Emerson Carvalho
procedure TFrmCadPedidos.Button2Click(Sender: TObject);
begin
TbItens.First;
While Not TbItens.Eof do
Begin
if TbItens.FindKey([TbItensCodProduto.Value]) then
begin
// Encontrou o registro, então só faz a edição.
TbItens.Edit;
TbItens.FieldByName('Quantidade').AsFloat := TbItens.FieldByName('Quantidade').AsFloat + 1; // Exemplo... Faça de acordo com sua necessidade.
TbItens.FieldByName('Total').AsFloat := TbItens.FieldByName('Qtde').AsFloat * TbItens.FieldByName('Preco').AsFloat;
TbItens.Post;
end
else
begin
// Se não encontrou o registro, então adiciona um novo.
TbItens.Append;
TbItens.FieldByName('Quantidade').AsFloat := 1;
TbItens.FieldByName('Total').AsFloat := TbItens.FieldByName('Preco').AsFloat;
TbItens.Post;
end;
TbItens.Next;
end;
Gostei + 0
08/10/2013
Marcos Oliveira
Pra dar o FindKey, você precisa de índices, correto? Você selecionou o índice correto pela propriedade IndexName da tabela, antes de dar o FindKey?
Gostei + 0
09/10/2013
Rafael Brendolan
Já que o projeto é novo, utilize pelo menos o Delphi Xe2 pra frente e FireBird.
Foge do Paradox.
Tem muito artigo aqui ensinando a usar o Firebird e qualquer dúvida tem o fórum também.
Digo isso porque depois precisa trabalhar em Rede e fazer isso com Paradox não é recomendado e não é um dos melhores bancos.
Temos ainda MySQL, PostGreSQL, entre outros Free.
Att.
Gostei + 0
09/10/2013
Marcos Oliveira
Já utilizei a algum tempo, e não recomendo pra ninguém. Passei muita raiva com ele.
Gostei + 0
09/10/2013
Emerson Carvalho
Veja o seguinte, eu passei uns quatro anos sem programar, dai estou voltando agora novamente. Conheço essa ferramenta de desenvolvimento de da versão 2, 3, até 7, só q quando chegou ai dei um parada.
Mas lhe pergunto, pq estou meio alheio aos assunto: Por onde Começar ??
1-Esta ferramenta é muito cara a ultima versão do DELPHI;
2-E por onde começaria com este banco de dados FIRE BIRD ?
Na minha máquina eu intalei o IBExpert e o IBConsole, com eles eu consigo manipular alguma coisa?
-- Me desculpe a gama de perguntas é pq vou procurar me antenar quanto ao assunto.
Gostei + 0
09/10/2013
Emerson Carvalho
Gostei + 0
09/10/2013
Rafael Brendolan
1 - Então, pelo preço do Delphi pelo que sei se vcê compra o XE5 você ganha as Keys das versões anteriores também para usar. Me corrijam se eu estiver errado.
2 - Sim, pelo IBExpert você pode manipular o Firebird. Criar Banco, tabela, campo, registro, SQL, retorno de tempo das querys, etc... completo mesmo.
Como você está a um tempo sem programar e não tenho ideia do seu conhecimento na ferramenta Delphi, recomendo esse curso de ClientDataSet para acesso aos dados do Banco:
https://www.devmedia.com.br/curso/trabalhando-com-clientdataset/108
Depois para relatórios do sistema recomendaria este
https://www.devmedia.com.br/curso/aprenda-a-criar-relatorios-no-delphi-com-rave-reports-crystal-reports-e-quick-reports/3
Aqui na DevMedia ainda da pra achar muita coisa Free, mas estes dois cursos são muito bons e vai ter praticamente tudo que você precisa pra acessar os dados no banco, incluir e manipular eles.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)