This repository has been archived on 2024-12-02. You can view files and clone it, but cannot push or open issues or pull requests.
FactuGES/Datos/Articulo.pas

173 lines
5.3 KiB
ObjectPascal
Raw Permalink Normal View History

unit Articulo;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxEdit, DB, cxDBData, Menus, am2000menuitem, am2000popupmenu, am2000,
cxButtonEdit, cxDBEdit, cxMaskEdit, cxDropDownEdit, cxContainer,
cxTextEdit, cxMemo, StdCtrls, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridCardView,
cxGridDBCardView, cxGrid, AdvPanel, ExtCtrls, RdxBotones, RdxPaneles,
RdxBarras, RdxTitulos, RdxFrame, ArticuloModelo, IBCustomDataSet, IBQuery,
cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, ActnList, cxDataStorage;
type
TfrArticulo = class(TfrArticuloModelo)
Label1: TLabel;
Precio: TcxDBTextEdit;
Label2: TLabel;
Referencia: TcxDBTextEdit;
procedure CodigoPropertiesButtonClick(Sender: TObject;AButtonIndex: Integer); override;
procedure cbxFamiliaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
private
FFamilia : Variant;
function CargarPropiedadesModelo(Familia: Integer): Boolean;
protected
procedure ActivarModoAnadir; override;
procedure ActivarModoModificar; override;
procedure ActivarModoEliminar; override;
procedure ActivarModoConsultar; override;
procedure InicializarTablas; override;
end;
var
frArticulo: TfrArticulo;
implementation
uses
TablaArticulos, TablaPropiedadesArticulo, TablaPropiedades,
TablaFamilias, Entidades, BaseDatos, IBSQL, Articulos, Mensajes,
RxMemDS, Literales, Configuracion;
{$R *.dfm}
{ TfrArticulo }
procedure TfrArticulo.ActivarModoAnadir;
begin
inherited;
dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos);
// TablaArticulos.FieldByName('FAMILIA').OnSetText := FamiliaSetText;
Referencia.SetFocus;
end;
procedure TfrArticulo.ActivarModoModificar;
begin
inherited;
dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos);
// TablaArticulos.FieldByName('FAMILIA').OnSetText := FamiliaSetText;
Descripcion.SetFocus;
end;
function TfrArticulo.CargarPropiedadesModelo(Familia: Integer): Boolean;
var
Contador : Integer;
DatosArtModelo : TDatosArticuloModelo;
PropiedadAux : TDatosPropiedad;
begin
Result := False;
DatosArtModelo := TDatosArticuloModelo.Create(Familia);
try
if (DatosArtModelo.ListaPropiedades.Count > 0) and
(VerMensajePregunta(msgDatosCargaPropFamilia) = IDYES) then
begin
// Insertamos las propiedades
with TablaPropiedadesMem do
begin
DisableControls;
EmptyTable;
try
First;
for Contador := 0 to (DatosArtModelo.ListaPropiedades.Count - 1) do
begin
PropiedadAux := DatosArtModelo.ListaPropiedades.Items[Contador];
Insert;
FieldByName('CODIGOPROPIEDAD').AsInteger := PropiedadAux.CodigoPropiedad;
FieldByName('VALOR').AsString := PropiedadAux.Valor;
Post;
end;
finally
EnableControls;
end;
end;
end;
finally
DatosArtModelo.Free;
end;
Result := True;
end;
procedure TfrArticulo.CodigoPropertiesButtonClick(Sender: TObject;AButtonIndex: Integer);
begin
if (TratarCambios = IDCANCEL) then
exit;
{ Esto es porque en modo 'Modificar' hacemos un cambio y pulsamos
este bot<EFBFBD>n se cierra la tabla y si en el frame hijo (el del grid) damos
a cancelar, FCodigoArticulo es NULL y da error al activar modo porque
no se inicializa los par<EFBFBD>metros de la sql. Lo hace BuscarInstalador. }
if not TablaArticulos.Active then
BuscarArticulo;
ContenidoModal := TfrArticulos.Create(Self);
end;
procedure TfrArticulo.InicializarTablas;
begin
Entidad := entArticulo;
dmTablaArticulos.ArtModelo := entArticulo;
with TablaArticulos do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaArticulos.sqlConsultar);
InsertSQL.Assign(dmTablaArticulos.sqlInsertar);
ModifySQL.Assign(dmTablaArticulos.sqlModificar);
DeleteSQL.Assign(dmTablaArticulos.sqlEliminar);
RefreshSQL.Assign(dmTablaArticulos.sqlConsultar);
end;
with TablaPropiedades do
begin
Database := BaseDatos;
Transaction := Transaccion;
SelectSQL.Assign(dmTablaPropiedadesArticulo.sqlGrid);
InsertSQL.Assign(dmTablaPropiedadesArticulo.sqlInsertar);
ModifySQL.Assign(dmTablaPropiedadesArticulo.sqlModificar);
DeleteSQL.Assign(dmTablaPropiedadesArticulo.sqlEliminar);
RefreshSQL.Assign(dmTablaPropiedadesArticulo.sqlConsultar);
end;
end;
procedure TfrArticulo.cbxFamiliaPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
begin
inherited;
if (FFamilia <> DisplayValue) then
begin
FFamilia := DisplayValue;
if CargarPropiedadesModelo(dsFamilias.DataSet.FieldByName('CODIGO').AsInteger) then
Descripcion.SetFocus;
ActualizarBotones;
end;
end;
procedure TfrArticulo.ActivarModoEliminar;
begin
inherited;
dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos);
end;
procedure TfrArticulo.ActivarModoConsultar;
begin
inherited;
dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos);
end;
end.