Fazer procedimento gravar o registro
Estou com um programa que da baixa no saldo do cliente atraves de um lançamento de credito, porem todo lançamento seja ele DEBITO OU CREDITO possui um valor no campo SALDO_CLIENTE que vai acompanhando o valor do saldo cliente.
Quando gera um lançamento para cobrança ou seja, o campo tipo será DEBITO e o saldo do cliente será
CLIENTES.SALDOCLIENTE:= CLIENTES.SALDOCLIENTE - LANCAMENTO.VALOR
Logo apos
LANCAMENTO.SALDOCLIENTE:= CLIENTES.SALDOCLIENTE
Quando é dado baixa no cliente ou seja, o campo tipo será CREDITO e o saldo do cliente sera
CLIENTES.SALDOCLIENTE := CLIENTES.SALDOCLIENTE +
EDTBAIXA.TEXT
Logo apos
LANCAMENTO.SALDOCLIENTE:= CLIENTES.SALDOCLIENTE
Meu problema é o seguinte:
Quando vai dar baixa o campo SALDOCLIENTE fica em branco ou seja ´nulo´ já tentei
varias coisas e nao grava nada nesse campo. Apenas quando é debito.
Por favor, eu gostaria de saber o que está acontecendo.
Quando gera um lançamento para cobrança ou seja, o campo tipo será DEBITO e o saldo do cliente será
CLIENTES.SALDOCLIENTE:= CLIENTES.SALDOCLIENTE - LANCAMENTO.VALOR
Logo apos
LANCAMENTO.SALDOCLIENTE:= CLIENTES.SALDOCLIENTE
Quando é dado baixa no cliente ou seja, o campo tipo será CREDITO e o saldo do cliente sera
CLIENTES.SALDOCLIENTE := CLIENTES.SALDOCLIENTE +
EDTBAIXA.TEXT
Logo apos
LANCAMENTO.SALDOCLIENTE:= CLIENTES.SALDOCLIENTE
Meu problema é o seguinte:
Quando vai dar baixa o campo SALDOCLIENTE fica em branco ou seja ´nulo´ já tentei
varias coisas e nao grava nada nesse campo. Apenas quando é debito.
dmdados.DsLancamentos.Post; dmdados.DsLancamentos.Refresh; dmdados.DsLancamentos.Last; AtualizaSaldo;
procedure Tfrm_baixas.AtualizaSaldo(); begin dmdados.TClientes.Edit; dmdados.TClientesSALDOCLIENTE.Value := dmdados.TClientesSALDOCLIENTE.Value + strtofloat(edtbaixa.Text); dmdados.TClientes.Post; ValorSaldo := dmdados.TClientesSALDOCLIENTE.Value; showmessage(floattostr(ValorSaldo)); end
procedure Tfrm_baixas.FormClose(Sender: TObject; var Action: TCloseAction); begin dmdados.DsLancamentos.Edit; dmdados.DsLancamentosSALDO_CLIENTE.Value := ValorSaldo; dmdados.DsLancamentos.Post; dmdados.DsLancamentos.Refresh; dmdados.TLancamentos.Close; dmdados.TClientes.Close; dmdados.TItens.Close; dmdados.DsLancamentos.Close; end;
Por favor, eu gostaria de saber o que está acontecendo.
Crawler
Curtidas 0
Respostas
Keron
10/08/2009
Já tentou verivicar qual valor está chegando nessa parte do código?
procedure Tfrm_baixas.FormClose(Sender: TObject; var Action: TCloseAction); begin ShowMessage(FloatToStr(ValorSaldo)); // apenas para ver se o erro está acontecendo na gravação ou se está ´valorSaldo´ está chegando zerado. dmdados.DsLancamentos.Edit; dmdados.DsLancamentosSALDO_CLIENTE.Value := ValorSaldo; dmdados.DsLancamentos.Post; dmdados.DsLancamentos.Refresh; dmdados.TLancamentos.Close; dmdados.TClientes.Close; dmdados.TItens.Close; dmdados.DsLancamentos.Close; end;
GOSTEI 0
Emerson Nascimento
10/08/2009
outra coisa... no seu caso, não use [i:30f27fceaf].Value[/i:30f27fceaf], pois se o valor for nulo, nada será calculado. passe a usar [i:30f27fceaf].AsFloat[/i:30f27fceaf], por exemplo.
GOSTEI 0
Crawler
10/08/2009
Eu já fiz essa verificação na caixa de mesagem e esta me retornando o valor correto.
Mas no banco aparece compo nulo.
estou usando delphi7, firebird, paleta interbase/
Mas no banco aparece compo nulo.
estou usando delphi7, firebird, paleta interbase/
GOSTEI 0
Crawler
10/08/2009
deem uma olhada nesse POST:
http://forum.devmedia.com.br/viewtopic.php?p=91381&sid=5ac553bd5251f54793a466b7a300285f
o cara esta usando dbexpress, tem como fazer uma transação com os componentes do interbase?
http://forum.devmedia.com.br/viewtopic.php?p=91381&sid=5ac553bd5251f54793a466b7a300285f
o cara esta usando dbexpress, tem como fazer uma transação com os componentes do interbase?
ses DBXPress; Evento OnClick De Um Botão Qualquer(Sender : Tobject); Var Transacao : TTransactionDesc; Begin Transacao.TransactionID := 1; Transacao.IsolationLevel := xilREPEATABLEREAD; SqlConnection.StartTransaction(Transacao); Try Tabela.Insert; Tabela.FieldByName(´teste´).Asstring := ´tudo ok´; Tabela.Post; Tabela.ApplayUpdates(0); SqlConnection.Commit(Transacao); Except SqlConnection.Rollback(Transacao); End; End;
GOSTEI 0
Emerson Nascimento
10/08/2009
o IBX tem o IBTransaction.
GOSTEI 0
Crawler
10/08/2009
Deve ser outra coisa pois ele da um ´insert´ no dataset antes e o campo não grava nada no banco.
Será que esse campo tem um problema?
ele sempre fica nulo. O que está acontecendo?
Será que esse campo tem um problema?
ele sempre fica nulo. O que está acontecendo?
GOSTEI 0