Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 11-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Jere_84.

La verdad que no alcanzo a entender bién la situación como para evaluar una opción mejor. Pero de acuerdo a lo que solicitas en tu mensaje, se me ocurre ir guardando los valores del registro anterior, algo parecido a esto:
Código Delphi [-]
...
implementation

type
  TPrevValues = record
    Valor: Currency;
    Porce: Currency;
    Fijo: Currency;
  end;

var
  rPrev: TPrevValues;

procedure TForm1.FormCreate(Sender: TObject);
begin
  with DataSet { El TDataSet asociado al DBGrid } do  
  begin
    Open;
    // Inicializar valores previos con los valores del primer registro 
    rPrev.Valor:= FieldByName('VALOR').AsCurrency;
    rPrev.Porce:= FieldByName('PORCENTAJE').AsCurrency;
    rPrev.Fijo := FieldByName('IMPORTEFIJO').AsCurrency;
    // O los podes asignar manualmente con un valor fijo 
  end;
end;

procedure TForm1.DataSet1BeforePost(DataSet: TDataSet);
var
  Value: Currency;
begin
  with DataSet { El TDataSet asociado al DBGrid } do
  begin
    Edit;
    // Aplicar la operación que solicitas en tu mensaje: 
    // (Valor_Actual - Valor_Anterior) * Porcentaje_Anterior + Importe_Fijo_Anterior
    Value:= (FieldByName('VALOR').AsCurrency - rPrev.Valor) * rPrev.Porce/100 + rPrev.Fijo;

    // Asignar el valor al campo actual
    FieldByName('VALOR').AsCurrency:= Value;

    // Valores de registro actual a el "nuevo valor previo"
    rPrev.Valor:= FieldByName('VALOR').AsCurrency;
    rPrev.Porce:= FieldByName('PORCENTAJE').AsCurrency;
    rPrev.Fijo := FieldByName('IMPORTEFIJO').AsCurrency;
  end;
end;
Espero te de alguna pauta.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
concatenar dos valores de registros distintos según duplicados lmpadron SQL 3 30-08-2012 17:05:05
Detectar en un label registros con valores iguales y mostrarlo como uno solo Rofocale Varios 7 16-06-2011 09:48:20
Realizar calculos y buscar número mayor en DBGrid lujurock Conexión con bases de datos 14 12-11-2008 11:05:17
cambiar valores de registros daniel_snokker Conexión con bases de datos 1 12-10-2007 18:52:56
Hacer calculos con campos de un dbgrid... hademon Varios 1 16-09-2005 15:13:27


La franja horaria es GMT +2. Ahora son las 09:17:05.


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