Ver Mensaje Individual
  #1  
Antiguo 17-05-2015
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Reputación: 20
oscjae Va por buen camino
Campos calculados en tiempo de ejecucion

Hola, he estado buscando por el foro, he encontrado algunas dudas parecidas a las mías, pero no he visto nada que me pueda ayudar, les expongo mi caso:

Tengo un dataset en el que le paso una sentencia en tiempo de ejecución, no tiene campos persistentes, depende del select que le paso,
pongo un ejemplo

Código Delphi [-]
...
var
sentencia:String,
begin
sentencia:='select campo1,campo2,campo3 from TABLA where campo1=Valor';
vTabla.Close;
vTabla.SelectSQL.Clear;
vTabla.SelectSQL.Text:=sentencia;
vTabla.Open;
...

Evidentemente, esta sentencia varía según opciones, si no, crearía los campos persistentes, y el problema es que debo crear un campo calculado, pero no es tan fácil como operar con campos de la sentencia, como (campo1*campo2) o cosas así, es bastante complejo, necesito hacer operaciones en el evento OnCalcFields de la tabla, y no se como crear ese campo calculado en tiempo de ejecución, lo he intentado creando el campo de esta forma:

Código Delphi [-]
...
var
vCampoCalculado:TFloatField;
begin
vCampoCalculado:=TFloatField.Create(vTabla);
vCampoCalculado.FieldName:='CampoCalc';
vCampoCalculado.FieldKind:=fkCalculated;
vCampoCalculado.DataSet:=vTabla;
...

Metiendo el código antes del Open de la tabla (solo me muestra ese campo), después (da error porque no se puede hacer con un dataset abierto, como es normal), etc...

No se si se puede hacer realmente, a ver si alguien me podría ayudar, gracias!!!
Responder Con Cita