Ir al contenido


Foto

Como asignar un campo calculado en "runtime"


  • Por favor identifícate para responder
2 respuestas en este tema

#1 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 02 febrero 2011 - 12:57

Pues si, tengo un pequeño problema, será que después de varios días durmiendo sólo 3 horas al día ya no doy mas :(

Resulta que estoy creando un DataSet en tiempo de ejecución de esta forma:



delphi
  1.   CDSTemp.FieldDefs.Add('NOLISTA', ftInteger, 0, False);
  2.   CDSTemp.FieldDefs.Add('NOMALUMNO', ftString, 60, False);
  3.   CDSTemp.FieldDefs.Add('PROMEDIO', ftFloat, 0, False);
  4.   CDSTemp.FieldDefs.Add('OBSERVACIONES', ftString, 150, False);



LO que necesito es asignar al campo PROMEDIO el tipo fkcalculated.

Si lo hago de esta forma



delphi
  1.   CDSTemp.FieldByName('PROMEDIO').FieldKind :=fkCalculated;
  2.   CDSTemp.CreateDataSet;



Me muestra el siguiente error:

---------------------------
Field 'PROMEDIO' not found.
---------------------------
Aceptar 
---------------------------


Si lo hago de esta forma:



delphi
  1.   CDSTemp.CreateDataSet;
  2.   CDSTemp.FieldByName('PROMEDIO').FieldKind :=fkCalculated;



Me muestra el siguiente error:

---------------------------
Cannot perform this operation on an open dataset.
---------------------------
Aceptar 
---------------------------


Si lo hago de esta forma:



delphi
  1.   CDSTemp.CreateDataSet;
  2.   CDSTemp.Close;
  3.   CDSTemp.FieldByName('PROMEDIO').FieldKind :=fkCalculated;



Me muestra el siguiente error.

---------------------------
Field 'PROMEDIO' not found.
---------------------------
Aceptar 
---------------------------


¿ Alguien me puede decir como asignar ese evento al campo Promedio ?

Salud OS
  • 0

#2 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 02 febrero 2011 - 06:50

Saludos.

Amigo egostar antes de que llegues al agotamiento, pasa por DelphiAccess y veras que encontraras ayuda.

:cool:
  • 0

#3 Wilson

Wilson

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.137 mensajes

Escrito 02 febrero 2011 - 06:54

Ensaya con esta chapuza:



delphi
  1. var
  2. MiStringField, MiFloatField :TField;
  3. //
  4.     CDSTemp.CreateDataSet;
  5.   CDSTemp.Close;
  6.   MiStringField := TStringField.Create(Self);
  7.   with MiStringField do
  8.   begin
  9.     FieldKind := fkCalculated;
  10.     FieldName := 'MiString';
  11.     Size := 100;
  12.     DataSet := CDSTemp;
  13.   end;
  14.   MiFloatField := TFloatField.Create(Self);
  15.   with MiFloatField do
  16.   begin
  17.     FieldKind := fkCalculated;
  18.     FieldName := 'MiFloat';
  19.     DisplayFormat := '000000.00';
  20.     DataSet := CDSTemp;
  21.   end;
  22.   CDSTemp.Open;
  23. end;


  • 0




IP.Board spam blocked by CleanTalk.