Moviemnto e Saldo em conta DBGrid
Boa tarde!
sou novo no delphi ja fiz pessquisar mais nao consigo chega a soluciona um pegeno preblema tenho quero pega contas Recebida e Contas Paga e criar um saldo no DBGrind.
igual ao exemplo da foto.
[img]http://arquivo.devmedia.com.br/forum/imagem/425467-20150714-183300.png[/img]
Minha tabela em MySQL
sou novo no delphi ja fiz pessquisar mais nao consigo chega a soluciona um pegeno preblema tenho quero pega contas Recebida e Contas Paga e criar um saldo no DBGrind.
igual ao exemplo da foto.
[img]http://arquivo.devmedia.com.br/forum/imagem/425467-20150714-183300.png[/img]
Minha tabela em MySQL
Klissmann Rodrigues
Curtidas 0
Melhor post
Dorivan Sousa
16/07/2015
nao entendi o pq somar o valor das vendas...
quando vce faz uma venda nao registra onde foi recebido (banco, caixa)?
basicamnete vc tem a tabelas de tipos de contas que vc ta chamando de BANCO e tem a tabela de movimentacao vc chama de CONTA.
a tabela de vendas é um registro das vendas que deve alimentar a tabela de movimentacao informando que conta foi creditado o valor.
quando vce faz uma venda nao registra onde foi recebido (banco, caixa)?
basicamnete vc tem a tabelas de tipos de contas que vc ta chamando de BANCO e tem a tabela de movimentacao vc chama de CONTA.
a tabela de vendas é um registro das vendas que deve alimentar a tabela de movimentacao informando que conta foi creditado o valor.
GOSTEI 1
Mais Respostas
Dorivan Sousa
14/07/2015
como é a sua extrutura do banco de dados?
voce tem uma tabela de movimento por contas? ou vc tem uma tabela de contas a receber e outra de contas a pagar?
voce tem uma tabela de movimento por contas? ou vc tem uma tabela de contas a receber e outra de contas a pagar?
GOSTEI 0
Klissmann Rodrigues
14/07/2015
tenho um MySQL
BANCO pra o nome da conta do banco.
CONTA pra conta ARECEBIDA e CONTA APAGA
VENDA pra cadastra os valores vendido
BANCO pra o nome da conta do banco.
CONTA pra conta ARECEBIDA e CONTA APAGA
VENDA pra cadastra os valores vendido
GOSTEI 0
Klissmann Rodrigues
14/07/2015
[img]http://arquivo.devmedia.com.br/forum/imagem/425467-20150715-135057.png[/img]
como este codigo de cima conseguer soma valo de saldo incial + contas recebidas - contas paga;
esta fatando somas os vaores das vendas do MySQL Venda.
procedure TForm1.CDSBancoCalcFields(DataSet: TDataSet);
var
Con: TDBXConnection;
Cmd: TDBXCommand;
Reader: TDBXReader;
SQL : TStringList;
begin
Con := TDBXConnectionFactory.GetConnectionFactory.GetConnection ('krtecnologia', 'krtecnologia', '12345');
Cmd := Con.CreateCommand;
SQL := TStringList.Create;
SQL.Add('SELECT sum(CASE WHEN CATEGORIA = ');
SQL.Add(QuotedStr('ARECEBER'));
SQL.Add(' THEN VPAGO END) as valor_credito, ');
SQL.Add('sum(CASE WHEN CATEGORIA = ');
SQL.Add(QuotedStr('APAGAR'));
SQL.Add(' THEN VPAGO END) as valor_debito ');
SQL.Add('FROM CONTA WHERE STATU="PAGO" AND CONTA= ');
SQL.Add(QuotedStr(CDSBancoNOME.AsString));
Cmd.Text := SQL.Text;
Reader := Cmd.ExecuteQuery;
if Reader.Next then
begin
CDSBancovTOTAL.AsString := FormatCurr('R$ ###,###,##0.00', CDSBancoSNICIAL.AsCurrency + Reader.Value[0].AsDouble - Reader.Value[1].AsDouble);
end;
end;como este codigo de cima conseguer soma valo de saldo incial + contas recebidas - contas paga;
esta fatando somas os vaores das vendas do MySQL Venda.
GOSTEI 0
Klissmann Rodrigues
14/07/2015
descreva com devo fazer. por favor!
GOSTEI 0
Dorivan Sousa
14/07/2015
eu tenho as minhas tabelas de contas a receber, contas a pagar, vendas isso são as movimentacoes que o sistema permite.
agora o controle de saldo de banco, caixa eu tenho a tabela de gerencia, onde eu separo por contas caixas.
nessa tabela de gerencia tem o campo pra informar qual a movimentacao (receber, pagar, vendas, etc) e qual a conta que movimentou (banco ou caixa)
por exemplo quando eu faço um recebimento eu atualizo o status da conta como recebida e registro na tabela de gerencia a data, o usuario, a movimentacao q gerou (receber), a conta pra onde foi o dinheiro (banco, caixa), o valor e um historico (referente ao recebimento do cliente fulano de tal com a fatura tal), e se foi credito ou debito (nesse caso credito)
o mesmo se repete pra qualquer outra movimentacao... pagar, vendas, ou outra q vc criar depois como devolucao de vendas, ou pagamento de funcionario.
n sei se me expliquei bem... mas uma coisa sao as movimentacoes que vc tem no sistema, outra é a tabela q unifica essas movimentacoes (gerenia), ate pq vc pode fazer uma venda hoje e cancelar amanha entao cada operacao acorre na sua data e gera o seu registro na tabela de gerencia.
e tem coisas que vc precisa lancar que nao sao movimentacoes a taxa de manutencao da conta, tarifas bancarias, se vc pegar um emprestmo tem q creditar e gerar contas a pagar....
agora o controle de saldo de banco, caixa eu tenho a tabela de gerencia, onde eu separo por contas caixas.
nessa tabela de gerencia tem o campo pra informar qual a movimentacao (receber, pagar, vendas, etc) e qual a conta que movimentou (banco ou caixa)
por exemplo quando eu faço um recebimento eu atualizo o status da conta como recebida e registro na tabela de gerencia a data, o usuario, a movimentacao q gerou (receber), a conta pra onde foi o dinheiro (banco, caixa), o valor e um historico (referente ao recebimento do cliente fulano de tal com a fatura tal), e se foi credito ou debito (nesse caso credito)
o mesmo se repete pra qualquer outra movimentacao... pagar, vendas, ou outra q vc criar depois como devolucao de vendas, ou pagamento de funcionario.
n sei se me expliquei bem... mas uma coisa sao as movimentacoes que vc tem no sistema, outra é a tabela q unifica essas movimentacoes (gerenia), ate pq vc pode fazer uma venda hoje e cancelar amanha entao cada operacao acorre na sua data e gera o seu registro na tabela de gerencia.
e tem coisas que vc precisa lancar que nao sao movimentacoes a taxa de manutencao da conta, tarifas bancarias, se vc pegar um emprestmo tem q creditar e gerar contas a pagar....
GOSTEI 1
Klissmann Rodrigues
14/07/2015
se não for pede muito posta um código por gentileza.
qual é melhor TDBXConnection ou sqlquery?
qual é melhor TDBXConnection ou sqlquery?
GOSTEI 0
Dorivan Sousa
14/07/2015
ai vc tem q desenvolver sua ideia, eu nao tenho como postar o codigo pq isso q eu falei é apenas parte da minha aplicação...
começa a fazer q eu vou tentar ajudar no q puder.
começa a fazer q eu vou tentar ajudar no q puder.
GOSTEI 0
Klissmann Rodrigues
14/07/2015
fiz desta forma deu certo o saldo em conta!
[img]http://arquivo.devmedia.com.br/forum/imagem/425467-20150717-155445.jpg[/img]
procedure TForm1.CDSBancoCalcFields(DataSet: TDataSet);
var
Con: TDBXConnection;
Cmd: TDBXCommand;
Reader: TDBXReader;
SQL: TStringList;
begin
Con := TDBXConnectionFactory.GetConnectionFactory.GetConnection ('krtecnologia', 'krtecnologia', '12345');
Cmd := Con.CreateCommand;
SQL := TStringList.Create;
SQL.Add(' SELECT sum(CASE WHEN TIPO = "CREDITO" ');
SQL.Add(' AND STATU = ');
SQL.Add(QuotedStr('PAGO'));
SQL.Add(' THEN VALOR END) as valor_credito, ');
SQL.Add(' sum(CASE WHEN TIPO = "DEBITO" ');
SQL.Add(' AND STATU = ');
SQL.Add(QuotedStr('PAGO'));
SQL.Add(' THEN VALOR END) as valor_debito, ');
SQL.Add(' sum(CASE WHEN VENDA = "APRAZO" ');
SQL.Add(' AND STATU = ');
SQL.Add(QuotedStr('PEDENTE'));
SQL.Add(' THEN VALOR END) as valor_prazo ');
SQL.Add(' FROM MOVIMENTO WHERE CONTA = ');
SQL.Add(QuotedStr(CDSBancoNOME.AsString));
Cmd.Text := SQL.Text;
Reader := Cmd.ExecuteQuery;
if Reader.Next then
begin
CDSBancovTOTAL.AsString := FormatCurr('###,###,##0.00', (CDSBancoSINICIAL.AsCurrency + Reader.Value[0].AsDouble) - (Reader.Value[1].AsDouble + Reader.Value[2].AsDouble));
end
[img]http://arquivo.devmedia.com.br/forum/imagem/425467-20150717-155445.jpg[/img]
GOSTEI 0