{ =============================================================================== 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.