Fórum Inserir registro em um dbgrid #352327
23/01/2008
0
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
Curtir tópico
+ 0Posts
23/01/2008
Dbergkamps10
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
Gostei + 0
23/01/2008
Kalleby Garcia
Gostei + 0
23/01/2008
Kalleby Garcia
Gostei + 0
23/01/2008
Ferreia2
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.
Gostei + 0
24/01/2008
Kalleby Garcia
Gostei + 0
24/01/2008
Kalleby Garcia
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;
Gostei + 0
24/01/2008
Paullsoftware
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:
Gostei + 0
24/01/2008
Kalleby Garcia
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)