Ver Mensaje Individual
  #63  
Antiguo 19-06-2013
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Reputación: 22
José Luis Garcí Va camino a la fama
Cambios importantes en los módulos auxiliares (Notas, Imágenes, Direcciones, Bancos, Contactos, Personas de contacto)

1º) se ha añadido un IBQuerry y su datasource el ModuleData (UDM en mi caso), para facilitar los datos a todos los modulos que lo llaman,, eliminando parte del código de control en cada uno de estos, el aspecto actual de mi UDM es el siguiente



Los cambios en su código son los siguientes:

Código Delphi [-]
procedure TDM.conectar;
//------------------------------------------------------------------------------
//**************************************************************[ Conectar ]****
//Nos permite conectar las tablas, querrys + IBDatabase + IBTransaction
//------------------------------------------------------------------------------
begin
   IBDatabase1.Connected:=True;  //La base de datos
   IBTransaction1.Active:=True;  //Las Tansacciones
   IBDCLIEN.Active:=True;        //La tabla Clientes
   IBDirecciones.Active:=True;   //La tabla Direcciones
   IBDPC.Active:=True;           //La tabla Personas de Contacto
   IBDContacto.Active:=True;     //La Tabla de datos de contacto
   IBDBcos.Active:=True;         //La tabla de Bancos
   IBDCONFI.Active:=True;        //La tabla de Configuración
   IBDUSUA.Active:=True;         //La tabla de usuarios (permisos de acceso)
   IBDNOTAS.Active:=True;        //La tabla de notas
   IBDIMAGENES.Active:=True;     //La tabla de Imagenes
   IBDPROVEEDORES.Active:=True;  //La tabla de Proveedores
   IBDLOTES.Active:=True;        //La tabla de Lotes
   IBDARTICULOS.Active:=True;    //La tabla de Artículos
   IBDFAMILIAS.Active:=True;     //La tabla de Familias
   IBDFABRICABLES.Active:=True;  //La tabla de Fabricables
   IBDSTOCK.Active:=True;        //La tabla de Stock
end;


procedure TDM.DataModuleDestroy(Sender: TObject);
//------------------------------------------------------------------------------
//*********************************************************[ Al destruirlo ]****
// Nos aseguramos de que no se nos queden Querys abiertos     //Añadir el archivo Fun.Pas
//------------------------------------------------------------------------------
begin
   QuerryOC(IBQIMAGENES);
   QuerryOC(IBQNOTAS);
   QuerryOC(IBQDirecciones);
   QuerryOC(IBQPersonasContacto);
   QuerryOC(IBQContactos);
   QuerryOC(IBQBancos);
end;


2º) en el FormClose de cada módulo auxiliar ponemos el siguiente código




















//////////He editado nuevamente este post cambiando lo que había puesto por lo siguiente y explico lo que he eliminado///////////






Código Delphi [-]

//Cambiar donde aparece XXX por lo que proceda (Nombre del MODULO, de la Tabla, de el IBDataSet, del IBQuerry, del módulo de llamada o del SpeedButtonBC)

procedure TFNotas.FXXXClose(Sender: TObject; var Action: TCloseAction);
//------------------------------------------------------------------------------
//*************************************************[ Al Cerrarse El Form ]******
// Cerramos todos los procesos para que no consuman memoria y posibles errores
//------------------------------------------------------------------------------
begin
   if Timer1.Enabled=true then  Timer1.Enabled:=False;
   ActIbdataset(DM.IBDXXX,'select * from XXX');
   //Retornos al modulo de llamada
   if VarSNomMod='XXX' then FArticulos.SpeedButtonBCXXXClick(sender);
end;

he eliminado el siguiente código

Código Delphi [-]
   if DM.IBQXXX.Active then  //Nos aseguramos de refrescar los datos del querry, con los nuevos introducidos si los ha habido
   begin  //No uso refresh, ya que muchas veces no funciona y de esta manera es más efectivo el refresco de datos
      DM.IBQXXX.Active:=False;
      DM.IBQXXX.Active:=True;
   end;

, al ya esta controlado en la lineas

Código Delphi [-]
 if VarSNomMod='XXX' then FArticulos.SpeedButtonBCXXXClick(sender);

Que no había actualizado, con lo que el código anterior era redundante.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"

Última edición por José Luis Garcí fecha: 19-06-2013 a las 11:36:11.
Responder Con Cita