Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Sumar edits (https://www.clubdelphi.com/foros/showthread.php?t=87876)

mramos65 11-03-2015 19:56:13

Sumar edits
 
Hola:

Trate de hacer lo que indican del uso de:

StrToFloatDef

en Delphi 7 sin embargo me da error al ajecutarlo

[Error] Principal.pas(829): There is no overloaded version of 'StrToFloatDef' that can be called with these arguments

podrian ayudarme uso delphi 7 y tablas *.dbf

quiero realizar la suma de una columna de datos que puede incluir datos vacios.

SALUDOS

Jose Roman 11-03-2015 20:35:38

Los campos vacios se muestran como null?, si es asi debes hacer una conversion como en SQL para que se pueda utilizar en una suma los campos NULL

Casimiro Noteví 11-03-2015 21:05:19

Código SQL [-]
select campo from tabla where campo is not null

nlsgarcia 11-03-2015 21:06:13

mramos65,

Cita:

Empezado por mramos65
...quiero realizar la suma de una columna de datos que puede incluir datos vacíos...

:rolleyes:

Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
const
   A1 : Array[0..9] of String = ('1,11','','3,13','4,14','','6,16','7,17','','9,19','10,0');

var
   Sum : Double;
   i : Integer;

begin

   Sum := 0;

   for i := Low(A1) to High(A1) do
      Sum := Sum + StrToFloatDef(A1[i],0);

   ShowMessage(Format('La suma de A1 es %n',[Sum]));

end;

end.
El código anterior en Delphi 7 sobre Windows 7 Professional x32, permite sumar un arreglo de strings con valores numéricos aunque este tenga valores nulos.

Espero sea útil :)

Nelson.

ecfisa 11-03-2015 22:14:23

Hola mramos65
Cita:

Empezado por mramos65 (Mensaje 489887)
...
[Error] Principal.pas(829): There is no overloaded version of 'StrToFloatDef' that can be called with these arguments

El error que mencionas se presenta por que con toda seguridad estas usando un parámetro de tipo incorrecto en la función StrToFloatDef.

Dado que la función StrToFloatDef está declarada de este modo,
Cita:

function StrToFloatDef(const S: string; const Default: Extended): Extended; overload;
te pongo dos casos de ejemplo que provocarían ese error:
Código Delphi [-]
var
  r: Double;
...
{1}  re:= StrToFloatDef(Table1.FieldByName('ItemsTotal').AsFloat, 0 );    //  AsString (correcto)
{2}  re:= StrToFloatDef(Table1.FieldByName('ItemsTotal').AsString, '0' ); // 0 (correcto)

Saludos :)


La franja horaria es GMT +2. Ahora son las 06:04:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi