GARANTIR DESCONTO

Fórum Inserir registro em um dbgrid #352327

23/01/2008

0

Tenho um dbgrid editavel com os campos Descrição, Quantidade, Valor Unitario, Valor Total, onde o campo Valor Total = Quantidade * Valor Unitario, e os dados desse dbgrid vai ser salvo numa tabela itens (PARADOX), como faço para inserir dados no dbgrid de um cliente e salvar e quando eu clicar no botão novo e colocar um outro cliente o dbgrid fica limpo e pronto para inserir novos dados?

Exemplo:

Cliente: Fulano

Descrição Quantidade Valor Unitario Valor Total
1---------------------2---------------1,00--------------2,00
2---------------------1---------------0,50--------------0,50
3---------------------1---------------3,00--------------3,00
4---------------------3---------------2,00--------------6,00 :cry: :cry:


Kalleby Garcia

Kalleby Garcia

Responder

Posts

23/01/2008

Dbergkamps10

Olá,
Nesse caso, a tabela itens deve estar relacionada a tabela de clientes. Quanto ao campo Valor Total, vc deve calcular manualmente após a digitação dos valores de qtd e Valor unitario.

Espero ter ajudado
Att
Dalton


Responder

Gostei + 0

23/01/2008

Kalleby Garcia

ela ja esta linkado a tabela cliente, mas o calculo eu ja fiz o que não estou conseguindo é limpar o dbgrid na hora de inserir novos itens para outro cliente. OBS estou usando um query.


Responder

Gostei + 0

23/01/2008

Kalleby Garcia

o dbgrid é editavel...


Responder

Gostei + 0

23/01/2008

Ferreia2

eu faço isso da seguinte forma:
eu tenho uma query Pedido e outra itemPedido
eu coloco no evento afterscrool da query Pedido uma outra query filtrando a ItemPedido, porque toda vez que eu mudar o Pedido ele filtra o ItemPedido, portanto quando você clicar em novo pedido ele vai filtrar o item pedido passando o parâmetro número do pedido como não vai ter nenhum item ele traz o DBGrid Limpo.

Obs. a Unica restrição é que você precisa gerar um Número do pedido no evento onnewrecord da query pedido.


Responder

Gostei + 0

24/01/2008

Kalleby Garcia

Galera muito obrigado pela dica, qualquer duvida eu retorno..


Responder

Gostei + 0

24/01/2008

Kalleby Garcia

Essa e a strutura da tabela Mestre de Pedidos

CREATE TABLE TBMPEDIDO (
CODIGO INTEGER NOT NULL,
DATAPEDIDO DATE,
ATENDENTE VARCHAR(20),
IDREQUISITANTE1 INTEGER,
REQUISITANTE1 VARCHAR(100),
IDREQUISITANTE2 INTEGER,
REQUISITANTE2 VARCHAR(100),
IDREQUISITANTE3 INTEGER,
REQUISITANTE3 VARCHAR(100)
);


Essa e a strutura da tabela Detalhes de Pedidos ou Itens do Pedido

CREATE TABLE TBDPEDIDO (
CODIGO INTEGER NOT NULL,
IDMESTRE INTEGER NOT NULL,----> (Esse campo q faz a ligação com a tabela mestre tbMPedido.Codigo)
IDPRODUTO INTEGER,
DESCPRODUTO VARCHAR(100),
QTDE DOUBLE PRECISION,
UNIDADE VARCHAR(3),
PRECOUNIT NUMERIC(16,4)
);



Dentro do Delhi vc faz assim

procedure TfPedidos.FormCreate(Sender: TObject);
begin
dsMestre.DataSet.Close; dmControle.qryMPedido.Sql.Text :=
´Select *From tbMPedido Where Codigo = :pCodigo Order By Codigo´;
dmControle.qryMPedido.ParamByName(´pCodigo´).AsInteger := 0;
dsMestre.DataSet.Open;
//
dsDetalhe.DataSet.Close; dmControle.qryDPedido.DataSource := dsMestre; dmControle.qryDPedido.Sql.Text :=
´Select *From tbDPedido Where IdMestre = :Codigo Order By Codigo´;
dsDetalhe.DataSet.Open;
End;


Responder

Gostei + 0

24/01/2008

Paullsoftware

Um conselho de quem já passou por problemas relacionado a nomes de campos...
de preferência ao usu dos nomes iguais para fazer o relacionamento, pois, o dbexpress não aceita relacionamento parametrizado com nomes de campos diferentes, ou pelo menos comigo não funcionou :roll:
CREATE TABLE TBMPEDIDO (
CODIGO INTEGER NOT NULL, //arqui seria melhor assim: CODPEDIDO
DATAPEDIDO DATE,
ATENDENTE VARCHAR(20),
IDREQUISITANTE1 INTEGER,
REQUISITANTE1 VARCHAR(100),
IDREQUISITANTE2 INTEGER,
REQUISITANTE2 VARCHAR(100),
IDREQUISITANTE3 INTEGER,
REQUISITANTE3 VARCHAR(100)
);

CREATE TABLE TBDPEDIDO (
CODIGO INTEGER NOT NULL,
IDMESTRE INTEGER NOT NULL,//arqui seria melhor assim: CODPEDIDO
IDPRODUTO INTEGER,
DESCPRODUTO VARCHAR(100),
QTDE DOUBLE PRECISION,
UNIDADE VARCHAR(3),
PRECOUNIT NUMERIC(16,4)
);

no SQL basta usar a mesma lógica que vc fez e vai fucionar perfeitamente... :wink:


Responder

Gostei + 0

24/01/2008

Kalleby Garcia

Valew amigo são dicas assim que dinamiza os nosso sistema...


Responder

Gostei + 0

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

Aceitar