Fórum Subtrair valor de um registro #222870

27/03/2004

0

Awe pessoal fmz?
eu denovo eheheh
Tipo tenho a tabela contas que tem o campo saldo
e tenho uma tabela de gastos com o campo valor
E ai toda vez que registra um novo registro no gastos tem que desconta o valor do campo valor do campo saldo da tabela contas
So que nao to conseguindo faze isso
eu fiz de um jeito mais ele nao da nada nem desconta nem da erro
alguem pode me ajuda?



nao sabia oque coloca de assunto se tive algum problema fala ae que arrumo(se de)


Snipa

Snipa

Responder

Posts

29/03/2004

Snipa

Bom queria dize que to postando resposta pq nao achei o botao edita
E tipo jah tentei applyupdates aquele dbisavechanges jah coloquei fiz de tudo quanto eh jeito e ele nao tah descontando o valor
tah estranhao
passei so pra posta isso memo
se alguem soube ae posta ae to precisando disso pra termina um trabaim
:o)


Responder

Gostei + 0

29/03/2004

Marco Salles

E ai toda vez que registra um novo registro no gastos tem que desconta o valor do campo valor do campo saldo da tabela contas

Olha Eu Não Sei Qual o Banco Que Voce Usa , Não Sei Tambem a Estrutura De Sua Tabela, O Que Eu Posso De Dar é Uma Noção De Onde Voce Deve Fazer Isto...
Depois De Registrar o Novo Registro, Voce Tem Que Colocar a Sua Tabela Contas ir Para o Ultimo Registro Coloca-la No Modo De Edição
e Escrever: TabelaGastoscontas:=TabelaGastos.contas - TabelaSaldoValor
e Depois Salvar.. Isto é Só Uma Idéia Para Ser mais ´Formal´ Acredito Ser Precisso Maiores Informações na Modelagem Dos Seus Dados.


Responder

Gostei + 0

29/03/2004

Snipa

Awe bom
Eu fiz um esquema pra ve se tava funcionando oque tava fazendo colocando em labels
Ai eu vi qeu ele tah descontando e tal so que parece que ele nao tah salvando.

eu to fazendo assim
procedure TFrmCadgastos.Table1AfterPost(DataSet: TDataSet);
var valor1,saldo,resultado:real;
begin
valor1 := strtofloat(table1.Fields[4].value);
saldo := strtofloat(table2.Fields[5].value);
resultado := (saldo - valor1);
label3.Caption := floattostr(valor1);
label4.Caption := floattostr(saldo);
label6.Caption := floattostr(resultado);
table2.Edit;
table2.Fields[5].NewValue := floattostr(resultado);
table2.Post;
label7.Caption := table2.Fields[5].Value;
dbisavechanges(table2.Handle);
table2.refresh;
end;


O problema agora eh que ele parece nao tah salvando
nao sei pq
e vlw a ajuda ae marco
mais se tu soube essa agora ia agradece paca


Responder

Gostei + 0

30/03/2004

Marco Salles

Aparentemente Esta Correto, Eu Só Não Usaria o Evento OnAfterPost Da Tabela1 Para Inseriri/Modificar Dados Da Tabela2...Mas Voltando ao Assunto Propiamente Dito , Explica Melhor o Que Ocorre Com os Valores Dos Labeis Apos Todo o Processo:Label4,Label4,Label6,Label7 :?: De Um Exemplo Numérico...Etc..


Responder

Gostei + 0

30/03/2004

Marco Salles

Há Outra Coisa Também..Troque a Instrução
table2.Fields[5].NewValue := floattostr(resultado); 

por:
table2.Fields[5].AsString:= floattostr(resultado); 

P:S A Propiedade NewValue é Do Tipo Variant Ok


Responder

Gostei + 0

30/03/2004

Snipa

Awe fmz vlw ae cara a ajuda que se tah dando

Tipo os labels era so pra sabe se as variaveis tavam recebendo os valores
Mais pode esquece eu jah tirei os labels
E tipo a tabela eh do tipo paradox
O meu form tah assim :[url]snipes.jbrasil.com/teste.JPG[/url]
E tipo eu to usando duas table
Uma com a tabela:
Contas
com os campos: Codigo,Descricao,Banco,Agencia,Saldo
E outra table com a tabela
Gastos
com os campos:Codigo,Descricao,Codigodaconta,Datainsercao,Valor

E eu uso essa tabela contas para listar as contas no dblokupComboBox
E a tabela gastos pra inseri :)

Ai eu qeuro que toda vez que ele cadastre um gasto ele:
Desconte o valor do gasto, do saldo da conta que ele escolheu.
Por isso eu fiz no afterpost da table1(eh a tabela gastos)

E o problema eh que ele nao tah descontando do saldo da conta
eh como se essa linha
table2.Fields[5].AsString:= floattostr(resultado);
nao tivesse funcionando
so que nao aparece msg de erro nem nada

Bom agora acho que eu expliquei tudo direitinho ehhehe :o)
Se agora tu soube vlw ae flw


Responder

Gostei + 0

30/03/2004

Marco Salles

Seus Campos:
Codigo,Descricao,Codigodaconta,Datainsercao,Valor

Note: Fields[0]=Codigo;Fields[1]=Descricao;....;Fields[4]=Valor
Voce Usa
strtofloat(table1.Fields[4].value); Ok...
Codigo,Descricao,Banco,Agencia,Saldo

Note: Fields[0]=Codigo;Fields[1]=Descricao,......Fields[4]=Saldo, Mas Voce Usa:
strtofloat(table2.Fields[5].value); :?: :?: Tá Esquisito , Deveria Ser :
strtofloat(table2.Fields[4].value :?: :?: Confira Por Favor o Valor Correto Do Indice Usado Indice

Quanto ao Label
Tipo os labels era so pra sabe se as variaveis tavam recebendo os valores Mais pode esquece eu jah tirei os labels

Eu Sei Que Era So Para Este Propósito, Mas Ajuadaia Para Depurar o Programa


Responder

Gostei + 0

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

Aceitar