This repository has been archived on 2024-11-29. You can view files and clone it, but cannot push or open issues or pull requests.
Tecsitel_FactuGES/Articulos/ListarArticulos.pas

313 lines
9.4 KiB
ObjectPascal
Raw Permalink Normal View History

{
===============================================================================
Copyright (<EFBFBD>) 2001. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero s<EFBFBD>lo podr<EFBFBD> ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los t<EFBFBD>rminos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versi<EFBFBD>n: 01-10-2001
Versi<EFBFBD>n actual: 1.0.2
Fecha versi<EFBFBD>n actual: 01-05-2004
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
13-11-2001 No se comprobaban correctamente los campos inicial y final
para intervalos por c<EFBFBD>digo de material y por familias.
01-05-2004 p274. Actualizaci<EFBFBD>n del informe a FastReport.
===============================================================================
}
unit ListarArticulos;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ListadoBase, cxDropDownEdit, cxControls, cxContainer, cxEdit, cxTextEdit,
cxMaskEdit, cxButtonEdit, RdxRadioButton, ExtCtrls, StdCtrls, RdxTitulos,
RdxPaneles, TablaArticulos;
type
TfrListarArticulos = class(TfrListadoBase)
rbTodos: TRdxRadioButton;
rbArticulos: TRdxRadioButton;
DescripcionIni: TcxButtonEdit;
DescripcionFin: TcxButtonEdit;
rbFamilias: TRdxRadioButton;
cbFamiliaIni: TcxComboBox;
cbFamiliaFin: TcxComboBox;
Label1: TLabel;
procedure rbTodosClick(Sender: TObject);
procedure rbArticulosClick(Sender: TObject);
procedure rbFamiliasClick(Sender: TObject);
procedure DescripcionIniPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure DescripcionFinPropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure DescripcionFinPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
procedure DescripcionIniPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
procedure cbFamiliaIniPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
procedure cbFamiliaFinPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
procedure RdxFrameShow(Sender: TObject);
private
FCodigoArticuloAux : Variant;
FArticuloIni : TDatosArticulo;
FArticuloFin : TDatosArticulo;
procedure ActivarNombres;
procedure ActivarFamilias;
procedure DesactivarNombres;
procedure DesactivarFamilias;
procedure RefrescarInforme; override;
protected
procedure FreeContenido; override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
end;
var
frListarArticulos: TfrListarArticulos;
implementation
{$R *.DFM}
uses
Articulos, Familias, TablaFamilias, InformeListadoMateriales,
Mensajes, StrFunc, Configuracion, RdxFrameArticulos, Literales;
{ TfrListarArticulos }
constructor TfrListarArticulos.Create(AOwner : TComponent);
var
DescripcionAux : String;
begin
inherited Create(AOwner);
ConfigurarFrame(Self, Self.Entidad);
FArticuloIni := TDatosArticulo.Create;
FArticuloFin := TDatosArticulo.Create;
FCodigoArticuloAux := NULL;
DescripcionAux := dmTablaArticulos.DarArticuloMin;
FArticuloIni.Codigo := '';
FArticuloIni.Descripcion := DescripcionAux;
DescripcionIni.EditingText := FArticuloIni.Descripcion;
DescripcionAux := dmTablaArticulos.DarArticuloMax;
FArticuloFin.Codigo := '';
FArticuloFin.Descripcion := DescripcionAux;
DescripcionFin.EditingText := FArticuloFin.Descripcion;
cbFamiliaIni.Properties.Items := dmTablaFamilias.darFamilias;
cbFamiliaIni.Properties.Items.Delete(0); //Borro el item en blanco.
cbFamiliaIni.ItemIndex := 0;
cbFamiliaFin.Properties.Items := dmTablaFamilias.darFamilias;
cbFamiliaFin.Properties.Items.Delete(0); //Borro el item en blanco.
cbFamiliaFin.ItemIndex := cbFamiliaFin.Properties.Items.Count - 1;
FInforme := TdmInformeListadoMateriales.Create(Self);
FInforme.Preview := FVistaPrevia.Preview;
RefrescarInforme;
end;
procedure TfrListarArticulos.ActivarNombres;
begin
DescripcionIni.Enabled := True;
DescripcionIni.SetFocus;
DescripcionFin.Enabled := True;
end;
procedure TfrListarArticulos.ActivarFamilias;
begin
cbFamiliaIni.Enabled := True;
cbFamiliaIni.SetFocus;
cbFamiliaFin.Enabled := True;
end;
procedure TfrListarArticulos.DesactivarNombres;
begin
DescripcionIni.Enabled := False;
DescripcionFin.Enabled := False;
end;
procedure TfrListarArticulos.DesactivarFamilias;
begin
cbFamiliaIni.Enabled := False;
cbFamiliaFin.Enabled := False;
end;
procedure TfrListarArticulos.rbTodosClick(Sender: TObject);
begin
DesactivarNombres;
DesactivarFamilias;
RefrescarInforme;
end;
procedure TfrListarArticulos.rbArticulosClick(Sender: TObject);
begin
ActivarNombres;
DesactivarFamilias;
RefrescarInforme;
end;
procedure TfrListarArticulos.rbFamiliasClick(Sender: TObject);
begin
ActivarFamilias;
DesactivarNombres;
RefrescarInforme;
end;
procedure TfrListarArticulos.FreeContenido;
begin
if (ContenidoModal is TRdxFrameArticulos) then
FCodigoArticuloAux := (ContenidoModal as TRdxFrameArticulos).CodigoArticulo;
inherited FreeContenido;
end;
procedure TfrListarArticulos.DescripcionIniPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if AnsiCompareText(DisplayValue, DescripcionFin.Text) > 0 then
begin
ErrorText := msgInfArticuloIniMayor;
Error := True;
Exit;
end;
FArticuloIni.Descripcion := DisplayValue;
FArticuloIni.Codigo := '';
RefrescarInforme;
end;
procedure TfrListarArticulos.DescripcionIniPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
ContenidoModal := TfrArticulos.Create(Self);
if not VarIsNull(FCodigoArticuloAux) then
begin
FArticuloIni.Codigo := FCodigoArticuloAux;
dmTablaArticulos.DarDatosArticulo(FArticuloIni);
DescripcionIni.EditingText := FArticuloIni.Descripcion;
PostMessage(DescripcionIni.Handle, WM_KEYDOWN, VK_RETURN, 0);
end;
end;
procedure TfrListarArticulos.DescripcionFinPropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
ContenidoModal := TfrArticulos.Create(Self);
if not VarIsNull(FCodigoArticuloAux) then
begin
FArticuloFin.Codigo := FCodigoArticuloAux;
dmTablaArticulos.DarDatosArticulo(FArticuloFin);
DescripcionFin.EditingText := FArticuloFin.Descripcion;
PostMessage(DescripcionFin.Handle, WM_KEYDOWN, VK_RETURN, 0);
end;
end;
procedure TfrListarArticulos.DescripcionFinPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if AnsiCompareText(DisplayValue, DescripcionIni.Text) < 0 then
begin
ErrorText := msgInfArticuloIniMayor;
Error := True;
Exit;
end;
FArticuloFin.Descripcion := DisplayValue;
FArticuloFin.Codigo := '';
RefrescarInforme;
end;
destructor TfrListarArticulos.Destroy;
begin
FreeAndNil(FArticuloIni);
FreeAndNil(FArticuloFin);
// El informe se destruye en el padre
inherited;
end;
procedure TfrListarArticulos.RdxFrameShow(Sender: TObject);
begin
DesactivarNombres;
DesactivarFamilias;
rbTodos.SetFocus;
end;
procedure TfrListarArticulos.cbFamiliaIniPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if AnsiCompareText(DisplayValue, cbFamiliaFin.Text) > 0 then
begin
ErrorText := msgInfFamiliaIniMayor;
Error := True;
Exit;
end;
RefrescarInforme;
end;
procedure TfrListarArticulos.cbFamiliaFinPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
if AnsiCompareText(DisplayValue, cbFamiliaIni.Text) < 0 then
begin
ErrorText := msgInfFamiliaIniMayor;
Error := True;
Exit;
end;
RefrescarInforme;
end;
procedure TfrListarArticulos.RefrescarInforme;
begin
with (FInforme as TdmInformeListadoMateriales) do
begin
if rbTodos.Checked then
begin
DescripcionIni := NULL;
DescripcionFin := NULL;
FamiliaIni := NULL;
FamiliaFin := NULL;
end
else begin
if rbArticulos.Checked then
begin
DescripcionIni := FArticuloIni.Descripcion;
DescripcionFin := FArticuloFin.Descripcion;
FamiliaIni := NULL;
FamiliaFin := NULL;
end
else begin
DescripcionIni := NULL;
DescripcionFin := NULL;
FamiliaIni := cbFamiliaIni.Text;
FamiliaFin := cbFamiliaFin.Text;
end;
end;
Previsualizar;
end;
end;
end.