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;
begin
IBDatabase1.Connected:=True; IBTransaction1.Active:=True; IBDCLIEN.Active:=True; IBDirecciones.Active:=True; IBDPC.Active:=True; IBDContacto.Active:=True; IBDBcos.Active:=True; IBDCONFI.Active:=True; IBDUSUA.Active:=True; IBDNOTAS.Active:=True; IBDIMAGENES.Active:=True; IBDPROVEEDORES.Active:=True; IBDLOTES.Active:=True; IBDARTICULOS.Active:=True; IBDFAMILIAS.Active:=True; IBDFABRICABLES.Active:=True; IBDSTOCK.Active:=True; end;
procedure TDM.DataModuleDestroy(Sender: TObject);
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
[-]
procedure TFNotas.FXXXClose(Sender: TObject; var Action: TCloseAction);
begin
if Timer1.Enabled=true then Timer1.Enabled:=False;
ActIbdataset(DM.IBDXXX,'select * from XXX');
if VarSNomMod='XXX' then FArticulos.SpeedButtonBCXXXClick(sender);
end;
he eliminado el siguiente código
Código Delphi
[-]
if DM.IBQXXX.Active then begin 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.