Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...