Ver Mensaje Individual
  #1  
Antiguo 09-04-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 20
rgstuamigo Va por buen camino
Thumbs up Evento OnSetEditText del StringGrid pero en un DBGrid

Hola amigos del club,estoy un poco atorado en un sistema que estoy implemetando, pues resulta que necesito un evento parecido al OnSetEditText del StringGrid, pero que sea en un DBGrid, el asunto es que tengo un DBGrid conectadoa a un ClientDataSet atraves de un DataSource,en el ClientDataSet tengo 5 campos(columnas) de las cuales una de ellas es para colocar el precio de compra de materiales en moneda Nacional(osea de mi pais) y otro campo(que esta al lado del anterior)es para poner el equivalente de ese monto pero en moneda extranjera, osea dólares;desde luego que para convertir la moneda nacional a extranjera se utiliza la siguiente formula:
Código Delphi [-]
Dólares:=Moneda_Nacional /Tipo_De_Cambio_Actual;
El tipo_de_cambio_actual se refiere a el precio que cuesta 1 dolar en moneda nacional de mi pais; que desde luego no es constante sino que puede cambiar o variar diariamente.Este dato es registrado por el usuario al mometo de ingresar al sistema, osea que internamente lo tengo almacenado en una variable, digamos TC(tipo de cambio).
Bueno el asunto es que para automatizar la insersion o edicion de los datos en el DBGrid ,deseo que cuando el usuario este poniendo el monto en moneda nacional,automaticamente se vaya tambien convirtiendo a moneda extranjera en la siguiente columna o tambien que cuando ponga los datos en la columna de moneda extranjera haga lo mismo en la columna anterior;claro que en este caso la formula debe ser invertida. osea:
Código Delphi [-]
Moneda_Nacional:=Dólares * Tipo_De_Cambio_Actual;
En algun sitema anterior yo ya habia hecho algo parecido pero en un StringGrid en el cual utilizaba el evento OnSetEditText y ponia algo como esto:
Código Delphi [-]
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
begin
  //TC es el tipo de cambio;
  if ACol=3 then //la columna 3 es de moneda nacional
  StringGrid1.Cells[4,ARow]:=FloatToStr(StrToFloat(Value)/TC);//Actualizo los dolares
  if ACol=4 then //la columna 4 es de moneda extranjera
  StringGrid1.Cells[3,ARow]:=FloatToStr(StrToFloat(Value)*TC);//actualizo la moneda nacional
end;
Ahora lo que deseo es hacer lo mismo pero en un DBGrid ,pero en realidad no se en que evento poder hacerlo,o como podria solucionar esto?
Muchas gracias de antemano por su sugerencias.
Saludos..
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita