Como Subtrair Valores
04/03/2013
0
Dbedit1 = a Valor documento
Dbedit2 = a Valor pago
Dbedit3 = a Restante
preciso que quando eu colocar o valor no Dbedit1 e no Dbedit2 ele diminua e mostre no Dbedit3 o restante.
Ex: Dbedit1 = 10,00 - Dbedit2 = 5,00 ai Dbedit3 vai ser igual a 5,00.
neste exemplo o valor do documento é 10,00 e o valor pago foi 5,00 então o restante é 5,00.
Bom eu uso Delphi 2010, banco de dados Firebird, sqlconection, TSQLQuery, ClienteDataset.
Desde já Obrigado!
Francielio Medeiros
Posts
04/03/2013
Wilton Júnior
DBEdit3.text := IntToStr(StrToInt(DbEdit1.text) - StrToInt(DBEdit2.text));
04/03/2013
Francielio Medeiros
DBEdit3.text := IntToStr(StrToInt(DbEdit1.text) - StrToInt(DBEdit2.text));
Ok, só mais uma duvida como sou iniciante, onde eu colocaria esse codigo???
04/03/2013
Wilton Júnior
04/03/2013
José
que dai ao clicar no botão o DBEdit3.text receberá o resultado do DBEdit1,text - DBEdit2,text
04/03/2013
Luiz Menin
DBEdit3.text := IntToStr(StrToInt(DbEdit1.text) - StrToInt(DBEdit2.text));
Só uma correção: como será tratado valores com vírgula, o correto seria:
DBEdit3.text := FloatToStr(StrToFloat(DbEdit1.text) - StrToFloat(DBEdit2.text));
Outra coisa: o evento que você poderia utilizar é no OnExit dos DBEdit1 e DBEdit2.
04/03/2013
Francielio Medeiros
DBEdit3.text := IntToStr(StrToInt(DbEdit1.text) - StrToInt(DBEdit2.text));
Ok, só mais uma duvida como sou iniciante, onde eu colocaria esse codigo???
Apresentou o seguinte Erro:
First chance exception at $7608969b. Exception class EConvertError with message ""is not a Valid integer value'. Process MSCeramica.exe (4980)
04/03/2013
Francielio Medeiros
DBEdit3.text := IntToStr(StrToInt(DbEdit1.text) - StrToInt(DBEdit2.text));
Só uma correção: como será tratado valores com vírgula, o correto seria:
DBEdit3.text := FloatToStr(StrToFloat(DbEdit1.text) - StrToFloat(DBEdit2.text));
Outra coisa: o evento que você poderia utilizar é no OnExit dos DBEdit1 e DBEdit2.
deu esse erro is not valid floating
04/03/2013
Francielio Medeiros
04/03/2013
Luiz Menin
Deixe por padrão os valores 0,00.
04/03/2013
Francielio Medeiros
Deixe por padrão os valores 0,00.
EU ESTOU USANDO DBEDIT
E COLOCO COMO CURRENCY
04/03/2013
Francielio Medeiros
e ainda continua com o seguinte erro:
"R$ 12,00'is not a valid floating point value'.
04/03/2013
Francielio Medeiros
e ainda continua com o seguinte erro:
"R$ 12,00'is not a valid floating point value'.
Meu Codigo pessoal
unit U_ContasPG;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls, DB, Mask, DBCtrls, FMTBcd, SqlExpr;
type
TF_ContasPG = class(TForm)
Panel2: TPanel;
btn_editar: TBitBtn;
btn_cancelar: TBitBtn;
btn_excluir: TBitBtn;
btn_gravar: TBitBtn;
btn_pesquisar: TBitBtn;
btn_sair: TBitBtn;
btn_novo: TBitBtn;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
DBEdit1: TDBEdit;
DataSource1: TDataSource;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
GroupBox2: TGroupBox;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label10: TLabel;
DBEdit10: TDBEdit;
DBRadioGroup1: TDBRadioGroup;
SP_GEN_CONTASPG: TSQLStoredProc;
procedure btn_sairClick(Sender: TObject);
procedure Desativabtn;
procedure ativabtn;
Procedure ativadbedit;
Procedure desativadbedit;
procedure btn_novoClick(Sender: TObject);
procedure btn_gravarClick(Sender: TObject);
procedure btn_editarClick(Sender: TObject);
procedure btn_cancelarClick(Sender: TObject);
procedure btn_excluirClick(Sender: TObject);
procedure btn_pesquisarClick(Sender: TObject);
procedure DBEdit7KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit10KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit9Exit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_ContasPG: TF_ContasPG;
implementation
uses U_Principal, U_DM, U_PesqCliente, U_PesqContasPG;
{$R *.dfm}
procedure TF_ContasPG.ativabtn;
begin
btn_novo.enabled := True;
btn_editar.enabled := True;
btn_cancelar.enabled := False;
btn_gravar.enabled := False;
btn_excluir.enabled := True;
btn_sair.enabled := True;
btn_pesquisar.enabled := True;
end;
procedure TF_ContasPG.DBEdit10KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then
Begin
SelectNext(Sender as tWinControl, True, True );
Key := #0;
btn_gravar.SetFocus;
end;
end;
procedure TF_ContasPG.DBEdit7KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then
Begin
SelectNext(Sender as tWinControl, True, True );
Key := #0;
end;
end;
procedure TF_ContasPG.DBEdit9Exit(Sender: TObject);
begin
DBEdit10.text := FloatToStr(StrToFloat(DbEdit8.text) - StrToFloat(DBEdit9.text));
end;
procedure TF_ContasPG.Desativabtn;
begin
btn_novo.enabled := False;
btn_editar.enabled := False;
btn_cancelar.enabled := True;
btn_gravar.enabled := True;
btn_excluir.enabled := False;
btn_sair.enabled := False;
btn_pesquisar.enabled := False;
end;
procedure TF_ContasPG.ativadbedit;
begin
DBEdit2.enabled := True;
DBEdit3.enabled := True;
DBEdit4.enabled := True;
DBEdit5.enabled := True;
DBEdit6.enabled := True;
DBEdit7.enabled := True;
DBEdit8.enabled := True;
DBEdit9.enabled := True;
DBEdit10.enabled := True;
DBRadioGroup1.Enabled := True;
end;
procedure TF_ContasPG.desativadbedit;
begin
DBEdit2.enabled := False;
DBEdit3.enabled := False;
DBEdit4.enabled := False;
DBEdit5.enabled := False;
DBEdit6.enabled := False;
DBEdit7.enabled := False;
DBEdit8.enabled := False;
DBEdit9.enabled := False;
DBEdit10.enabled := False;
DBRadioGroup1.Enabled := False;
end;
procedure TF_ContasPG.btn_cancelarClick(Sender: TObject);
begin
//BOTÃO CANCELAR//
if DataSource1.DataSet.State in [dsBrowse, dsEdit, dsInsert] then
begin
DM.CDS_CONTASPG.Cancel;
DM.CDS_CONTASPG.ApplyUpdates(-1);
DM.CDS_CONTASPG.Open;
DM.CDS_CONTASPG.close;
ativabtn;
end
else
ShowMessage('Atenção: Favor Executar uma Operação.');
end;
procedure TF_ContasPG.btn_editarClick(Sender: TObject);
begin
DM.CDS_CONTASPG.Edit;
Desativabtn;
ativadbedit;
end;
procedure TF_ContasPG.btn_excluirClick(Sender: TObject);
begin
//Botão Excluir//
if DataSource1.DataSet.State in [dsBrowse, dsEdit] then
begin
DM.CDS_CONTASPG.Delete;
DM.CDS_CONTASPG.ApplyUpdates(0);
DM.CDS_CONTASPG.close;
end;
end;
procedure TF_ContasPG.btn_gravarClick(Sender: TObject);
begin
//Botão Gravar//
if DM.CDS_CONTASPG.State in [dsBrowse, dsEdit, dsInsert] then
begin
DM.CDS_CONTASPG.Post;
DM.CDS_CONTASPG.ApplyUpdates(0);
DM.CDS_CONTASPG.close;
ATIVABTN;
end;
end;
procedure TF_ContasPG.btn_novoClick(Sender: TObject);
//Botão Novo//
var
vID: integer;
begin
with SP_GEN_CONTASPG do
begin
Prepared := True;
ExecProc;
Prepared := False;
vID := ParamByName('ID').Value;
close;
end;
DM.CDS_CONTASPG.Open;
DM.CDS_CONTASPG.Append;
DM.CDS_CONTASPG.FieldByName('ID').AsInteger := vID;
Desativabtn;
ativadbedit;
DBEdit2.SetFocus;
end;
procedure TF_ContasPG.btn_pesquisarClick(Sender: TObject);
begin
// Chamar Pesquisa de Contas a Pagar //
F_PesqContasPG:= TF_PesqContasPG.create(Self);
F_PesqContasPG.ShowModal;
F_PesqContasPG.Release;
F_PesqContasPG.free;
end;
procedure TF_ContasPG.btn_sairClick(Sender: TObject);
begin
F_ContasPG.Close;
end;
end.
04/03/2013
Luiz Menin
Tente desta forma:
DBEdit3.Text := CurrToStr(StrToCurr(DBEdit1.text) - StrToCurr(DBEdit2.text));
04/03/2013
Francielio Medeiros
Tente desta forma:
DBEdit3.Text := CurrToStr(StrToCurr(DBEdit1.text) - StrToCurr(DBEdit2.text));
Persiste o Mesmo Erro!
04/03/2013
Luiz Menin
Uma coisa tão simples...
Eu realizei testes aqui utilizando 3 Edit's e funcionou.
Tente fazer de alguma forma diferente: retire a propriedade Currency, mude seus DBEdit's para Edit's, etc. Não insista muito no mesmo erro.
Clique aqui para fazer login e interagir na Comunidade :)