git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES/trunk@4 3f40d355-893c-4141-8e64-b1d9be72e7e7
173 lines
5.3 KiB
ObjectPascal
173 lines
5.3 KiB
ObjectPascal
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<6F>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<61>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.
|