muchas gracias a todos por interesarse, pero he aqui una solucion que logre construir, aunque confieso que no me convence mucho, hasta ahora es lo que he logrado.
reconosco debo pulir un poco mas la idea...
procedure TForm1.Button2Click(Sender: TObject);
type
RegUnPrecio = Record
PorcUtil,PorcUtilEx : Boolean;
Utilidad,UtilidadEx,SinImpuesto,MtoImpuesto1,MtoImpuesto2 ,
TotalPrecio ,TotalPrecioEx: Currency;
TipoRound : Byte;
end;
RegCostos = Record
CodeCompra : String[50];
VImpuesto1 ,
VImpuesto2 : Boolean;
CostoAnteriorBs ,
CostoAnteriorEx ,
CostoActualBs ,
CostoActualEx ,
CostoPromedioBs ,
CostoPromedioEx ,
MImpuesto1 ,
MImpuesto2 : Currency;
PorcentImp1 ,
Exento1 ,
PorcentImp2 ,
Exento2 : Boolean;
FechaVencimiento: TDateTime;
NumeroDeLote : String[50];
Precios : Array[1..6] of RegUnPrecio;
end;
var
registro:regcostos;
Stream1 : tStream;
begin
//inicializar el registro...
dbisamtable1.Open;
dbisamtable1.edit;
Stream1 :=DBISAMTable1FX_COSTOS.DataSet.CreateBlobStream(DBISAMTable1FX_COSTOS,bmread); //creo una variable blob para lectura
stream1.read(registro,Sizeof(registro));//leo la variable blob en mi record
label3.Caption:=floattostr(registro.Precios[1].SinImpuesto);//imprimo en valor (opcional)
stream1.Free; //libero el stream, no se por que. lo recomienda borland
Stream1 :=DBISAMTable1FX_COSTOS.DataSet.CreateBlobStream(DBISAMTable1FX_COSTOS,bmwrite); //instancio un nuevo stream en modo de escritura
registro.Precios[1].SinImpuesto:=strtofloat(label3.Caption)+500;
stream1.Write(registro,Sizeof(registro)); //actualizo en registro
dbisamtable1.Post; //grabo en la tabla
end;
si `pueden brindar alguna sugerencia estare argadecido...
__________________
ing. frankmch
|