164 lines
4.2 KiB
ObjectPascal
164 lines
4.2 KiB
ObjectPascal
unit uCargaEDI;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, ExtCtrls, jpeg, ComCtrls, StdCtrls, JvExComCtrls, JvAnimate,
|
|
pngimage, XPMan, ImgList;
|
|
|
|
type
|
|
TIconoEstado = (ieOK, ieMAL, ieNada);
|
|
|
|
TfCargaEDI = class(TForm)
|
|
Label13: TLabel;
|
|
JvAnimate1: TJvAnimate;
|
|
Button1: TButton;
|
|
TimerCuentaAtrasCerrar: TTimer;
|
|
ListView1: TListView;
|
|
Image1: TImage;
|
|
Bevel1: TBevel;
|
|
TimerCuentaAtrasCargar: TTimer;
|
|
XPManifest1: TXPManifest;
|
|
ImageList1: TImageList;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure Button1Click(Sender: TObject);
|
|
procedure TimerCuentaAtrasCerrarTimer(Sender: TObject);
|
|
procedure TimerCuentaAtrasCargarTimer(Sender: TObject);
|
|
private
|
|
FNumCargasError : Integer;
|
|
FNumCargasOK : Integer;
|
|
FCuentaAtras : Integer;
|
|
procedure OnLoadSuccess(Sender: TObject);
|
|
procedure OnLoadError(Sender : TObject);
|
|
procedure AnadirMensaje(const aMensaje : String; Icono : TIconoEstado = ieNada);
|
|
procedure LanzarCargas;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
fCargaEDI: TfCargaEDI;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses
|
|
uCargarFicheros, uDataModuleBase;
|
|
|
|
procedure TfCargaEDI.FormShow(Sender: TObject);
|
|
begin
|
|
FNumCargasOK := 0;
|
|
FNumCargasError := 0;
|
|
TimerCuentaAtrasCargar.Enabled := True;
|
|
end;
|
|
|
|
procedure TfCargaEDI.OnLoadError(Sender: TObject);
|
|
begin
|
|
Beep;
|
|
AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': ' + (Sender as TCargarFicherosThread).ErrorText, ieMAL);
|
|
|
|
FNumCargasError := FNumCargasError + 1;
|
|
if (FNumCargasError = 2) or
|
|
((FNumCargasError = 1) and (FNumCargasOK = 1)) then
|
|
begin
|
|
JvAnimate1.Visible := False;
|
|
JvAnimate1.Active := False;
|
|
TimerCuentaAtrasCerrar.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfCargaEDI.OnLoadSuccess(Sender: TObject);
|
|
begin
|
|
Beep;
|
|
AnadirMensaje((Sender as TCargarFicherosThread).Nombre + ': Ficheros cargados', ieOK);
|
|
|
|
FNumCargasOK := FNumCargasOK + 1;
|
|
if (FNumCargasOK = 2) or
|
|
((FNumCargasError = 1) and (FNumCargasOK = 1)) then
|
|
begin
|
|
JvAnimate1.Visible := False;
|
|
JvAnimate1.Active := False;
|
|
TimerCuentaAtrasCerrar.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfCargaEDI.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TfCargaEDI.FormCreate(Sender: TObject);
|
|
begin
|
|
FCuentaAtras := 5;
|
|
FNumCargasError := 0;
|
|
FNumCargasOK := 0;
|
|
end;
|
|
|
|
procedure TfCargaEDI.Button1Click(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TfCargaEDI.AnadirMensaje(const aMensaje: String;
|
|
Icono : TIconoEstado = ieNada);
|
|
var
|
|
AItem : TListItem;
|
|
begin
|
|
AItem := ListView1.Items.Add;
|
|
case Icono of
|
|
ieOK : AItem.ImageIndex := 1;
|
|
ieMAL : AItem.ImageIndex := 0;
|
|
else
|
|
AItem.ImageIndex := -1;
|
|
end;
|
|
AItem.Caption := TimeToStr(Now);
|
|
AItem.SubItems.Add(aMensaje);
|
|
end;
|
|
|
|
procedure TfCargaEDI.LanzarCargas;
|
|
begin
|
|
if not dmBase.HayConexion then
|
|
begin
|
|
JvAnimate1.Visible := False;
|
|
JvAnimate1.Active := False;
|
|
AnadirMensaje('No se encuentra el servidor', ieMAL);
|
|
TimerCuentaAtrasCerrar.Enabled := True;
|
|
end
|
|
else begin
|
|
JvAnimate1.Active := True;
|
|
AnadirMensaje('Cargando ficheros de ventas');
|
|
TCargarVentasThread.Create('CABVEN.TXT', 'LUGVEN.TXT',
|
|
'ARTVEN.TXT', OnLoadSuccess, OnLoadError);
|
|
|
|
AnadirMensaje('Cargando ficheros de inventario');
|
|
TCargarInventarioThread.Create('CABINV.TXT', 'LININV.TXT',
|
|
'CANTINV.TXT', OnLoadSuccess, OnLoadError);
|
|
end;
|
|
end;
|
|
|
|
procedure TfCargaEDI.TimerCuentaAtrasCerrarTimer(Sender: TObject);
|
|
begin
|
|
Button1.Enabled := True;
|
|
TimerCuentaAtrasCerrar.Enabled := False;
|
|
if FCuentaAtras = 0 then
|
|
Close;
|
|
Button1.Caption := 'Cerrar (' + IntToStr(FCuentaAtras) + ')';
|
|
Update;
|
|
Application.ProcessMessages;
|
|
FCuentaAtras := FCuentaAtras - 1;
|
|
TimerCuentaAtrasCerrar.Enabled := True;
|
|
end;
|
|
|
|
procedure TfCargaEDI.TimerCuentaAtrasCargarTimer(Sender: TObject);
|
|
begin
|
|
TimerCuentaAtrasCargar.Enabled := False;
|
|
Update;
|
|
LanzarCargas;
|
|
end;
|
|
|
|
end.
|