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/BaseDatos/TablaPropiedadesArticulo.pas
2007-06-26 08:08:27 +00:00

335 lines
9.8 KiB
ObjectPascal

{
===============================================================================
Copyright (©) 2002. 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: 01-12-2002
Versión actual: 1.0.0
Fecha versión actual: 01-12-2002
===============================================================================
Modificaciones:
Fecha Comentarios
---------------------------------------------------------------------------
===============================================================================
}
unit TablaPropiedadesArticulo;
interface
uses
//Generales
SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB,
//Particulares
cxGraphics, cxGridDBCardView, cxDBLookupComboBox, TablaPropiedades,
//Aplicacion
Framework, StrFunc, Entidades, Constantes, BaseDatos;
type
//////MIRAR ESTO PARA QUE SEA COMPATIBLE TAMBIEN/////////////////////////////////
TListaPropiedadesArticulo = class(TListaPropiedades)
private
FCodigoArticulo : String;
protected
procedure AssignTo(Dest: TPersistent); override;
procedure ObtenerLista; override;
public
constructor Create(CodigoArticulo : String); overload;
constructor Create; overload; override;
property Items;
end;
TListaPropiedadesArtModelo = class(TListaPropiedadesArticulo)
protected
procedure ObtenerLista; override;
end;
/////////////////////////////////////////////////////////////////////////////////
TdmTablaPropiedadesArticulo = class(TDataModule)
private
procedure IniciarSQL;
public
sqlInsertar : TStrings;
sqlModificar : TStrings;
sqlConsultar : TStrings;
sqlEliminar : TStrings;
sqlGrid : TStrings;
sqlInsertarProArtModelo : TStrings;
sqlModificarProArtModelo : TStrings;
sqlConsultarProArtModelo : TStrings;
sqlEliminarProArtModelo : TStrings;
sqlGridProArtModelo : TStrings;
constructor Create (AOwner : TComponent); override;
destructor Destroy; override;
procedure InicializarGridPropiedadesArticulo(var vGrid: TcxGridDBCardView);
end;
var
dmTablaPropiedadesArticulo: TdmTablaPropiedadesArticulo;
implementation
{$R *.DFM}
constructor TdmTablaPropiedadesArticulo.Create (AOwner : TComponent);
begin
inherited;
sqlInsertar := TStringList.Create;
sqlModificar := TStringList.Create;
sqlConsultar := TStringList.Create;
sqlEliminar := TStringList.Create;
sqlGrid := TStringList.Create;
sqlInsertarProArtModelo := TStringList.Create;
sqlModificarProArtModelo := TStringList.Create;
sqlConsultarProArtModelo := TStringList.Create;
sqlEliminarProArtModelo := TStringList.Create;
sqlGridProArtModelo := TStringList.Create;
IniciarSQL;
end;
destructor TdmTablaPropiedadesArticulo.Destroy;
begin
sqlInsertar.Free;
sqlModificar.Free;
sqlConsultar.Free;
sqlEliminar.Free;
sqlGrid.Free;
sqlInsertarProArtModelo.Free;
sqlModificarProArtModelo.Free;
sqlConsultarProArtModelo.Free;
sqlEliminarProArtModelo.Free;
sqlGridProArtModelo.Free;
inherited;
end;
procedure TdmTablaPropiedadesArticulo.IniciarSQL;
begin
//Propiedades articulo
with sqlInsertar do
begin
Add('insert into PROPIEDADESARTICULOS (');
Add('CODIGOARTICULO, NUMPROPIEDAD, CODIGOPROPIEDAD, VALOR) ');
Add('values (:CODIGOARTICULO, :NUMPROPIEDAD, :CODIGOPROPIEDAD, :VALOR)');
end;
with sqlModificar do
begin
Add('update PROPIEDADESARTICULOS set ');
Add('CODIGOPROPIEDAD = :CODIGOPROPIEDAD, ');
Add('VALOR = :VALOR ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
with sqlEliminar do
begin
Add('delete from PROPIEDADESARTICULOS ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
with sqlConsultar do
begin
Add('select * from PROPIEDADESARTICULOS ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
with sqlGrid do
begin
Add('select CODIGOARTICULO, NUMPROPIEDAD, CODIGOPROPIEDAD, VALOR ');
Add('from PROPIEDADESARTICULOS ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
end;
//Propiedades articulo modelo
with sqlInsertarProArtModelo do
begin
Add('insert into PROPIEDADESARTICULOSMODELO (');
Add('CODIGOARTICULO, NUMPROPIEDAD, CODIGOPROPIEDAD, VALOR) ');
Add('values (:CODIGOARTICULO, :NUMPROPIEDAD, :CODIGOPROPIEDAD, :VALOR)');
end;
with sqlModificarProArtModelo do
begin
Add('update PROPIEDADESARTICULOSMODELO set ');
Add('CODIGOPROPIEDAD = :CODIGOPROPIEDAD, ');
Add('VALOR = :VALOR ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
with sqlEliminarProArtModelo do
begin
Add('delete from PROPIEDADESARTICULOSMODELO ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
with sqlConsultarProArtModelo do
begin
Add('select * from PROPIEDADESARTICULOSMODELO ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
with sqlGridProArtModelo do
begin
Add('select CODIGOARTICULO, NUMPROPIEDAD, CODIGOPROPIEDAD, VALOR ');
Add('from PROPIEDADESARTICULOSMODELO ');
Add('where CODIGOARTICULO = :CODIGOARTICULO ');
Add('and NUMPROPIEDAD = :NUMPROPIEDAD ');
end;
end;
procedure TdmTablaPropiedadesArticulo.InicializarGridPropiedadesArticulo(var vGrid: TcxGridDBCardView);
var
Columna : TcxGridDBCardViewRow;
begin
with vGrid do begin
{Columna CODIGOARTICULO}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'CODIGOARTICULO';
Columna.Caption := 'Código artículo';
Columna.CaptionAlignmentHorz := taRightJustify;
Columna.Visible := False;
{Columna NUMPROPIEDAD}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'NUMPROPIEDAD';
Columna.Caption := 'Número propiedad';
Columna.CaptionAlignmentHorz := taRightJustify;
Columna.Visible := False;
{Columna CODIGOPROPIEDAD}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'CODIGOPROPIEDAD';
Columna.Caption := 'Propiedad';
Columna.CaptionAlignmentHorz := taRightJustify;
Columna.Visible := True;
Columna.PropertiesClassName := 'TcxLookupComboBoxProperties';
with TcxLookupComboBoxProperties(Columna.Properties) do
begin
KeyFieldNames := 'CODIGO';
ListColumns.Add.FieldName := 'DESCRIPCION';
ListOptions.AnsiSort := True;
ListOptions.GridLines := glNone;
ListOptions.ShowHeader := False;
GridMode := True;
end;
Columna.Visible := True;
{Columna VALOR}
Columna := CreateRow;
Columna.DataBinding.FieldName := 'VALOR';
Columna.Caption := 'Valor';
Columna.CaptionAlignmentHorz := taRightJustify;
Columna.Visible := True;
end;
end;
{ TListaPropiedades }
constructor TListaPropiedadesArticulo.Create(CodigoArticulo: String);
begin
inherited Create;
FCodigoArticulo := CodigoArticulo;
ObtenerLista;
end;
procedure TListaPropiedadesArticulo.AssignTo(Dest: TPersistent);
begin
if not (Dest is TListaPropiedadesArticulo) then
AssignError(Dest);
(Dest as TListaPropiedadesArticulo).FCodigoArticulo := FCodigoArticulo;
(Dest as TListaPropiedadesArticulo).FLista.Assign(FLista, laCopy, NIL);
end;
constructor TListaPropiedadesArticulo.Create;
begin
inherited;
FCodigoArticulo := '';
end;
procedure TListaPropiedadesArticulo.ObtenerLista;
var
oSQL : TIBSQL;
Propiedad : TDatosPropiedad;
begin
oSQL := TIBSQL.Create(nil);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select * from PROPIEDADESARTICULOS');
SQL.Add('where CODIGOARTICULO = :CODIGOARTICULO');
try
ParamByName('CODIGOARTICULO').AsString := FCodigoArticulo;
Prepare;
ExecQuery;
while not EOF do begin
Propiedad := TDatosPropiedad.Create;
Propiedad.CodigoPropiedad := FieldByName('CODIGOPROPIEDAD').AsInteger;
Propiedad.Valor := FieldByName('VALOR').AsString;
FLista.Add(Propiedad);
Next;
end;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
{ TListaPropiedadesArtModelo }
procedure TListaPropiedadesArtModelo.ObtenerLista;
var
oSQL : TIBSQL;
Propiedad : TDatosPropiedad;
begin
oSQL := TIBSQL.Create(nil);
with oSQL do
begin
Database := dmBaseDatos.BD;
Transaction := dmBaseDatos.Transaccion;
SQL.Add('select * from PROPIEDADESARTICULOSMODELO');
SQL.Add('where CODIGOARTICULO = :CODIGOARTICULO ');
try
ParamByName('CODIGOARTICULO').AsString := FCodigoArticulo;
Prepare;
ExecQuery;
while not EOF do begin
Propiedad := TDatosPropiedad.Create;
Propiedad.CodigoPropiedad := FieldByName('CODIGOPROPIEDAD').AsInteger;
Propiedad.Valor := FieldByName('VALOR').AsString;
FLista.Add(Propiedad);
Next;
end;
finally
Close;
Transaction := NIL;
Free;
end;
end;
end;
end.