Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #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
Poder: 17
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
  #2  
Antiguo 13-04-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Red face

Parece que es un poco dificil el asunto, pense utilizar los eventos OnColEnter y OnColExit del dbgrig para que por lo menos al salir o entrar en una columna de resien se me haga los calculos pero ni aun asi he podido solucionarlo ya que la columna que hago las operaciones son las dos ultimas del ClientaDataSet,para la penultima(Moneda nacional) funciona pero para la ultima(moneda extranjera) no, ya que cuando utilizo en evento OnColExit para esta ultima columna,por alguna razon no se ejecuta el codigo que deberiera actualizar,quisas por que el dataset(ClientDataSet)en cuestion cambia a otro registro. y en realidad lo que se esta atualizando seria la columna del nuevo registro.
Huuuummm,O tal ves quisas pueda utilizar mejor algun evento del ClientDataSet, al fin y al cabo es este quien contiene los datos.....
Seguire intentandolo....
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
Respuesta



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
DBGRID Editable pero no Insertable FelipeDiaz Conexión con bases de datos 2 10-12-2007 18:24:00
Escribir en dbgrid, pero no guardar drykea Varios 10 02-08-2007 16:28:19
necesito programar un evento en un combobox,pero no se cual de todos es federiconqn21 Varios 7 06-04-2006 17:42:24
Evento OnMouseOver de HTML pero en Delphi?????? mguixot Gráficos 3 01-08-2003 03:59:38


La franja horaria es GMT +2. Ahora son las 10:51:48.


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