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!!!