Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #11  
Antiguo 04-08-2013
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 27
Caral Va por buen camino
Hola
Procedimiento calcula:
Colocar el procedure al principio, asi:
Código Delphi [-]
    procedure DBEdit5Change(Sender: TObject);
    procedure calcula; // aqui....
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form14: TForm14;
  fecha:Tdate;
  S,D,I,total:Real;
  e,c:integer;
implementation

Crear el procedimiento:

Código Delphi [-]
procedure calcula;
var
  TotalGanancias : Currency;
  Marca : TBookMarkStr;
begin
 // subTotal
 TotalGanancias := 0;
 Marca := Table2.Bookmark;//Almacenamos la posición del registro actual en nuestra marca
 Table2.DisableControls;//Deshabilitamos los controles enlazados a nuestro  DataSet
 Table2.First;
 While Not Table2.Eof do
  begin
   TotalGanancias := TotalGanancias + Table2.FieldbyName('TotalImp').ASCurrency;
   Table2.Next;
  end;
    Table2.EnableControls;//Habilitamos nuevamente los controles
    Table2.Bookmark := Marca;//Restauramos a la posición del registro de nuestra marca
 Edit2.Text:=CurrToStr(TotalGanancias);
 S:=StrToFloat(Edit2.Text);
 // total
 total:=S-D+I;
 Edit5.Text:=FloatToStr(total);
end;

Colocar el procedimiento en el dobleclick del dbgrid2: (revisa al final del codigo es lo unico que cambia)
Código Delphi [-]
procedure TForm14.DBGrid2DblClick(Sender: TObject);
begin
Table2.Open;
if combobox1.Text = 'Productos' then
  begin
   datasource5.DataSet:= Table4;  // tabla de productos
   Table2.Insert; // inserta un campo
   Table2Cod_prodser.Value:= Table4Cod_prod.Value; // el campo cod_prod de la tabla nueva es igual al de la tabla5
   Table2Codigo.Value:= Table4Codigo.Value;
   Table2Descripcion.Value:= Table4Descripcion.Value;
  // Table2Unidad.Value:= Table4Unidad.Value;
   Table2Importunidad.Value:= Table4ImpVent.Value;
   Table2Cantidad.Value:= StrToFloat(Edit1.Text);  //cantidad cargada por el usuario
   Table2TotalImp.Value:=Table2Cantidad.Value * Table2Importunidad.Value;   // multiplica la cantidad por el valor unitario
   Table2.Post; // guarda el dato en la tabla nueva.
   end;
  if combobox1.Text = 'Servicios' then
  begin
  datasource3.DataSet:= Table3;  // tabla servicios
   Table2.Insert; // inserta un campo
   Table2Cod_prodser.Value:= Table5Cod_servcio.Value; // el campo cod_servicio de la tabla nueva es igual al de la tabla3
   Table2Codigo.Value:= Table5Codigo.Value;
   Table2Descripcion.Value:= Table5Servicio.Value;
   Table2Cantidad.Value:= StrToFloat(Edit1.Text);  // cantidad cargada por el usuario
   Table2Importunidad.Value:= Table5ImpServ.Value;
   Table2TotalImp.Value:=Table2Cantidad.Value * Table2Importunidad.Value;
   Table2.Post; // guarda el dato en la tabla nueva.
   end;
   calcula; // aqui....
end;

Llamar al procedimiento en el edit3 y el 4 en el evento onchange:
Código Delphi [-]
procedure TForm14.Edit3Change(Sender: TObject);
begin
D:=StrToFloat(Edit2.text)*StrToFloat(Edit3.Text)/100;
if edit2.Text = ' ' then
begin
    edit2.Text = '0'.
end
else
calcula;

end;
Código Delphi [-]
procedure TForm14.Edit4Change(Sender: TObject);
begin
I:=StrToFloat(Edit2.text)*StrToFloat(Edit4.Text)/100;
if edit4.Text = ' ' then
begin
    edit4.Text = '0'.
end
else
calcula;
end;

Parece mucho trabajo ya que tienes que modificar algunas cosas, pero te daras cuenta que crear procedimientos ajustados a tu necesidad te ayuda a no repetir codigo, simplemente lo llamas cuando necesites.
saludos
Espero que estemos aprendiendo algo a nuestra edad....
__________________
Siempre Novato
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Copiar registro de una Tabla a otra Tabla, sin repetirse MaMu Conexión con bases de datos 22 11-04-2013 15:29:11
Mysql: copiar los campos de una tabla de una base de datos a otra tabla de otra base? patriram MySQL 4 02-11-2007 16:00:24
copiar datos de una tabla en otra fedelphi Firebird e Interbase 6 24-08-2007 03:59:36
Copiar un registro de una tabla en otra... JuanErasmo SQL 6 10-07-2007 23:08:15
Copiar Tabla de una BD a Otra BD en Firebird pcicom SQL 3 14-02-2005 16:31:15


La franja horaria es GMT +2. Ahora son las 03:47:05.


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