Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

GustavoArcilla

" is not a valid floating point value no DbGrid

Recommended Posts

Salve a todos!

 

Seguinte, montei o dbgrid aqui certinho, com tudo funcionando, porem quando vou adicionar algo nos campos 'código' ou 'produto' ele aparece o erro

" is not a valid floating point value

Não sei o que fazer =/... vou postar abaixo o fonte do formulario principal

 

Perdão pelo código gigantesco...

 

unit uni_principal;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Mask, DBCtrls, ExtCtrls,

ToolWin, ComCtrls, Menus, DBClient;

 

type

Tf_principal = class(TForm)

DataSource1: TDataSource;

Table1: TTable;

DBGrid1: TDBGrid;

Table1Codigo: TFloatField;

Table1Produto: TStringField;

Table1QuantidadeEstoque: TFloatField;

Table1ValorCusto: TFloatField;

Table1Entrada: TFloatField;

Table1vendas: TFloatField;

Table1valototal: TFloatField;

Table1soma: TFloatField;

DBNavigator1: TDBNavigator;

GroupBox1: TGroupBox;

somatotal: TLabel;

Label1: TLabel;

MainMenu1: TMainMenu;

Sobre1: TMenuItem;

Sair1: TMenuItem;

Table1Saida: TStringField;

procedure Table1CalcFields(DataSet: TDataSet);

procedure Table1valototalChange(Sender: TField);

procedure FormActivate(Sender: TObject);

procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure Sobre1Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure Sair1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

 

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

f_principal: Tf_principal; Valor : Real;

 

implementation

 

uses unit1, uni_sobre;

 

{$R *.dfm}

 

procedure Tf_principal.Table1CalcFields(DataSet: TDataSet);

begin

Table1QuantidadeEstoque.value := Table1Entrada.value - Table1Saida.ascurrency;

Table1valototal.value := Table1QuantidadeEstoque.value * Table1ValorCusto.value;

end;

 

 

procedure Tf_principal.Table1valototalChange(Sender: TField);

var

Total : Double;

begin

{:Somar}

 

with Table1 do

begin

DisableControls; //desativa os controles para melhorar a performance da soma

First; //começo da tabela

while not Eof do //enquanto não for o fim

begin

Total := ( Total + table1.FieldByName('valototal').asFloat); //faz a soma total da tabela

Next; //proximo

end;

EnableControls; //quando terminar ativa os controles novamente.

somatotal.Caption := Format('%12.2n',[Total]); //mostra o resultado da tabela em um Label

end;

end;

 

procedure Tf_principal.FormActivate(Sender: TObject);

var

Total : Double;

begin

{:Somar}

 

with Table1 do

begin

DisableControls; //desativa os controles para melhorar a performance da soma

First; //começo da tabela

while not Eof do //enquanto não for o fim

begin

Total := ( Total + table1.FieldByName('valototal').asFloat); //faz a soma total da tabela

Next; //proximo

end;

EnableControls; //quando terminar ativa os controles novamente.

somatotal.caption := Format('%12.2n',[Total]); //mostra o resultado da tabela em um Label

end;

end;

 

 

 

procedure Tf_principal.DBGrid1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

case key of

13 : Key := 9;

end;

end;

 

procedure Tf_principal.Sobre1Click(Sender: TObject);

begin

sobre.show;

end;

 

procedure Tf_principal.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

if MessageDlg('Deseja sair do sistema?', mtConfirmation,

[mbYes, mbNo], 0) = mrYes then

Action:=CaFree

else

Action := caNone;

end;

 

procedure Tf_principal.Sair1Click(Sender: TObject);

begin

close;

end;

 

 

procedure Tf_principal.FormCreate(Sender: TObject);

begin

 

end;

 

end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz um teste, comente as duas linhas no OnCalcField e rode o sistema, veja se acontece algum erro, caso ocorra, o problema deve de estar neste ponto, ou então, marque BreakPoints no fonte e rode passo-a-passo o sistema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.