This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Miguelo_FactuGES/Datos/ArticulosModelo.pas
2007-06-25 15:19:31 +00:00

248 lines
7.3 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2001. Rodax Software.
===============================================================================
Los contenidos de este fichero son propiedad de Rodax Software titular del
copyright. Este fichero sólo podrá ser copiado, distribuido y utilizado,
en su totalidad o en parte, con el permiso escrito de Rodax Software, o de
acuerdo con los términos y condiciones establecidas en el acuerdo/contrato
bajo el que se suministra.
-----------------------------------------------------------------------------
Web: www.rodax-software.com
===============================================================================
Fecha primera versión: 13-05-2002
Versión actual: 1.0.0
Fecha versión actual: 13-05-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit ArticulosModelo;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, Grids, DBGrids, ComCtrls, IBDatabase, ToolWin, ExtCtrls,
IBCustomDataSet, IBQuery, RXDBCtrl, RdxPaneles, RdxBarras,
RdxBotones, Mensajes, RdxFrameArticulos, Configuracion,
cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxEdit, cxDBData,
cxGridLevel, cxClasses,
cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, RdxFrame, Menus, am2000menuitem,
am2000popupmenu, am2000, StdCtrls, RdxComboBox, RdxCampos, AdvPanel, cxContainer,
cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit,
cxDBLookupComboBox, DBCtrls, ActnList, am2000utils, cxDataStorage;
type
TfrArticulosModelo = class(TRdxFrameArticulos)
brSeleccion: TRdxBarraInferior;
bSeleccionar: TRdxBoton;
bCancelar: TRdxBoton;
dsArticulos: TDataSource;
BarraSuperior: TRdxBarraSuperior;
bConsultar: TRdxBotonSuperior;
bEliminar: TRdxBotonSuperior;
bModificar: TRdxBotonSuperior;
bAnadir: TRdxBotonSuperior;
MenuOpciones: TPopupMenu2000;
mnuAnadir: TMenuItem2000;
mnuModificar: TMenuItem2000;
mnuEliminar: TMenuItem2000;
mnuConsultar: TMenuItem2000;
pnlCuerpo: TPanel;
pnlGrid: TPanel;
gridArticulos: TcxGrid;
gridArticulosView: TcxGridDBTableView;
gridArticulosLevel: TcxGridLevel;
Acciones: TActionList;
actAnadir: TAction;
actModificar: TAction;
actEliminar: TAction;
actConsultar: TAction;
actSeleccionar: TAction;
actCancelar: TAction;
imgSombra: TImage;
procedure gridArticulosRefreshButton(Sender: TObject);
procedure RdxFrameArticulosShow(Sender: TObject);
procedure actAnadirExecute(Sender: TObject); virtual;
procedure actModificarExecute(Sender: TObject); virtual;
procedure actEliminarExecute(Sender: TObject); virtual;
procedure actConsultarExecute(Sender: TObject); virtual;
procedure actSeleccionarExecute(Sender: TObject);
procedure actCancelarExecute(Sender: TObject);
procedure gridArticulosViewDblClick(Sender: TObject);
private
protected
procedure ActualizarBotones;
procedure BuscarArticulo; override;
procedure FreeContenido; override;
procedure InicializarTablas; virtual;
public
constructor Create (AOwner : TComponent); overload; override;
destructor Destroy; override;
published
property TablaArticulos;
property Entidad;
end;
var
frArticulosModelo: TfrArticulosModelo;
implementation
{$R *.DFM}
uses
Variants, BaseDatos, Entidades, TablaArticulos, ArticuloModelo;
constructor TfrArticulosModelo.Create (AOwner : TComponent);
begin
inherited Create(AOwner);
BaseDatos := dmBaseDatos.BD;
Transaccion := dmBaseDatos.Transaccion;
TablaArticulos := TIBDataSet.Create(Self);
dsArticulos.DataSet := TablaArticulos;
InicializarTablas;
dmTablaArticulos.InicializarGridArticulos(gridArticulosView);
gridArticulosView.OnDblClick := gridArticulosViewDblClick;
gridArticulosView.Controller.GoToFirst;
end;
destructor TfrArticulosModelo.Destroy;
begin
TablaArticulos.Close;
TablaArticulos.UnPrepare;
TablaArticulos.Free;
inherited;
end;
procedure TfrArticulosModelo.BuscarArticulo;
begin
with TablaArticulos do
begin
DisableControls;
Close;
Open;
ActualizarBotones;
EnableControls;
if not Locate('CODIGO', CodigoArticulo, []) then
gridArticulosView.Controller.GoToFirst
else
gridArticulosView.Controller.TopRowIndex := gridArticulosView.Controller.FocusedRowIndex;
end;
end;
procedure TfrArticulosModelo.FreeContenido;
begin
if (Contenido is TRdxFrameArticulos) then
CodigoArticulo := (Contenido as TRdxFrameArticulos).CodigoArticulo;
inherited FreeContenido;
gridArticulos.SetFocus;
end;
procedure TfrArticulosModelo.ActualizarBotones;
begin
if BaseDatos.IsReadOnly then
begin
actAnadir.Enabled := False;
actModificar.Enabled := False;
actEliminar.Enabled := False;
actConsultar.Enabled := True;
Exit;
end;
if TablaArticulos.RecordCount = 0 then begin
actAnadir.Enabled := True;
actModificar.Enabled := False;
actEliminar.Enabled := False;
actConsultar.Enabled := False;
end
else begin
actAnadir.Enabled := True;
actModificar.Enabled := True;
actEliminar.Enabled := True;
actConsultar.Enabled := True;
end;
end;
procedure TfrArticulosModelo.gridArticulosRefreshButton(Sender: TObject);
begin
BuscarArticulo;
end;
procedure TfrArticulosModelo.RdxFrameArticulosShow(Sender: TObject);
begin
gridArticulos.SetFocus
end;
procedure TfrArticulosModelo.actAnadirExecute(Sender: TObject);
begin
Contenido := TfrArticuloModelo.Create(Self);
Contenido.Modo := Anadir;
end;
procedure TfrArticulosModelo.actModificarExecute(Sender: TObject);
begin
Contenido := TfrArticuloModelo.Create(Self);
Contenido.Modo := Modificar;
end;
procedure TfrArticulosModelo.actEliminarExecute(Sender: TObject);
begin
Contenido := TfrArticuloModelo.Create(Self);
Contenido.Modo := Eliminar;
end;
procedure TfrArticulosModelo.actConsultarExecute(Sender: TObject);
begin
Contenido := TfrArticuloModelo.Create(Self);
Contenido.Modo := Consultar;
end;
procedure TfrArticulosModelo.actSeleccionarExecute(Sender: TObject);
begin
CodigoArticulo := TablaArticulos.FieldByName('CODIGO').AsString;
CloseFrame;
end;
procedure TfrArticulosModelo.actCancelarExecute(Sender: TObject);
begin
FCodigoArticulo := NULL;
CloseFrame;
end;
procedure TfrArticulosModelo.gridArticulosViewDblClick(Sender: TObject);
begin
if Modo = Seleccionar then
actSeleccionar.Execute
else
actModificar.Execute;
end;
procedure TfrArticulosModelo.InicializarTablas;
begin
Entidad := entArticuloModelo;
with TablaArticulos do
begin
DisableControls;
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaArticulos.sqlGridArtModelo);
Prepare;
Open;
ActualizarBotones;
EnableControls;
end;
end;
end.