{ =============================================================================== 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: 03-11-2002 Versión actual: 1.0.0 Fecha versión actual: 03-11-2002 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- =============================================================================== } unit TablaSucursalesCliente; interface uses //Generales SysUtils, Classes, Controls, IBSQL, cxGridDBTableView, cxCustomData, DB, //Particulares Contnrs, cxGridDBCardView, cxButtonEdit, cxEdit, //Aplicacion Framework, StrFunc, Entidades, Constantes, BaseDatos; type //////////////////////////////////////////////////////////////////////////////// //TDatosSucursal //////////////////////////////////////////////////////////////////////////////// TDatosSucursal = class(TPersistent) public NIFCIF : String; Nombre : String; Calle : String; Numero : String; Piso : String; CodigoPostal : String; Poblacion : String; Provincia : String; Telefono1 : String; Telefono2 : String; Movil1 : String; Movil2 : String; Fax : String; Correo : String; PersonaContacto : String; end; TListaSucursales = class(TPersistent) private FLista : TObjectList; FCodigoCliente : String; function GetCount : Integer; function GetSucursal(Index: Integer): TDatosSucursal; protected procedure ObtenerLista; virtual; public constructor Create(CodigoCliente : String); destructor Destroy; override; property Count : Integer read GetCount; property Sucursal[Index: Integer] : TDatosSucursal read GetSucursal; end; //////////////////////////////////////////////////////////////////////////////// //TdmTablaSucursalesCliente //////////////////////////////////////////////////////////////////////////////// TdmTablaSucursalesCliente = class(TDataModule) private procedure IniciarSQL; public sqlInsertar : TStrings; sqlModificar : TStrings; sqlConsultar : TStrings; sqlEliminar : TStrings; sqlGrid : TStrings; function FormatearCodigo(Codigo : String) : String; constructor Create (AOwner : TComponent); override; destructor Destroy; override; procedure InicializarGridSucursales (var vGrid: TcxGridDBCardView); end; var dmTablaSucursalesCliente: TdmTablaSucursalesCliente; implementation {$R *.DFM} constructor TdmTablaSucursalesCliente.Create (AOwner : TComponent); begin inherited; sqlInsertar := TStringList.Create; sqlModificar := TStringList.Create; sqlConsultar := TStringList.Create; sqlEliminar := TStringList.Create; sqlGrid := TStringList.Create; IniciarSQL; end; destructor TdmTablaSucursalesCliente.Destroy; begin sqlInsertar.Free; sqlModificar.Free; sqlConsultar.Free; sqlEliminar.Free; sqlGrid.Free; inherited; end; procedure TdmTablaSucursalesCliente.IniciarSQL; begin with sqlInsertar do begin Add('INSERT INTO SUCURSALESCLIENTE ('); Add('CODIGOCLIENTE, CODIGO, TIPO, FECHAALTA, '); Add('NIFCIF, NOMBRE, CALLE, NUMERO, PISO, '); Add('CODIGOPOSTAL, POBLACION, PROVINCIA, '); Add('TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, '); Add('FAX, CORREO, PERSONACONTACTO, USUARIO) '); Add('VALUES (:CODIGOCLIENTE, :CODIGO, :TIPO, '); Add(':FECHAALTA, :NIFCIF, :NOMBRE, :CALLE, '); Add(':NUMERO, :PISO, :CODIGOPOSTAL, '); Add(':POBLACION, :PROVINCIA, :TELEFONO1, '); Add(':TELEFONO2, :MOVIL1, :MOVIL2, '); Add(':FAX, :CORREO, :PERSONACONTACTO, :USUARIO)'); end; with sqlModificar do begin Add('UPDATE SUCURSALESCLIENTE SET '); Add('NIFCIF = :NIFCIF, '); Add('NOMBRE = :NOMBRE, '); Add('CALLE = :CALLE, '); Add('NUMERO = :NUMERO, '); Add('PISO = :PISO, '); Add('CODIGOPOSTAL = :CODIGOPOSTAL, '); Add('POBLACION = :POBLACION, '); Add('PROVINCIA = :PROVINCIA, '); Add('TELEFONO1 = :TELEFONO1, '); Add('TELEFONO2 = :TELEFONO2, '); Add('MOVIL1 = :MOVIL1, '); Add('MOVIL2 = :MOVIL2, '); Add('FAX = :FAX, '); Add('CORREO = :CORREO, '); Add('PERSONACONTACTO = :PERSONACONTACTO '); Add('WHERE (CODIGOCLIENTE = :CODIGOCLIENTE) AND '); Add('(CODIGO = :CODIGO)'); end; with sqlEliminar do begin Add('delete from SUCURSALESCLIENTE '); Add('where CODIGO = :CODIGO and '); Add('CODIGOCLIENTE = :CODIGOCLIENTE'); end; with sqlConsultar do begin Add('select CODIGOCLIENTE, CODIGO, TIPO, FECHAALTA, '); Add('NIFCIF, NOMBRE, CALLE, NUMERO, PISO, CODIGOPOSTAL, POBLACION, '); Add('PROVINCIA, TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, FAX, CORREO, '); Add('PERSONACONTACTO, USUARIO'); Add('from SUCURSALESCLIENTE '); Add('where CODIGO = :CODIGO and '); Add('CODIGOCLIENTE = :CODIGOCLIENTE'); end; with sqlGrid do begin Add('select CODIGOCLIENTE, CODIGO, TIPO, FECHAALTA, '); Add('NIFCIF, NOMBRE, CALLE, NUMERO, PISO, CODIGOPOSTAL, POBLACION, '); Add('PROVINCIA, TELEFONO1, TELEFONO2, MOVIL1, MOVIL2, FAX, CORREO, '); Add('PERSONACONTACTO, USUARIO'); Add('from SUCURSALESCLIENTE '); Add('where CODIGOCLIENTE = :CODIGOCLIENTE '); Add('order by CODIGO'); end; end; function TdmTablaSucursalesCliente.FormatearCodigo(Codigo : String) : String; begin Result := StrPadLeft(Codigo, 10, '0'); end; procedure TdmTablaSucursalesCliente.InicializarGridSucursales (var vGrid: TcxGridDBCardView); var Columna : TcxGridDBCardViewRow; begin with vGrid do begin {Columna RDB$DB_KEY} { Columna := CreateRow; Columna.DataBinding.FieldName := 'RDB$DB_KEY'; Columna.Caption := 'RDB$DB_KEY'; Columna.Visible := False;} {Columna CODIGO} Columna := CreateRow; Columna.DataBinding.FieldName := 'CODIGO'; Columna.Caption := 'Código'; Columna.CaptionAlignmentHorz := taRightJustify; Columna.Visible := False; {Columna CODIGOCLIENTE} Columna := CreateRow; Columna.DataBinding.FieldName := 'CODIGOCLIENTE'; Columna.Caption := 'Cód.Cliente'; Columna.CaptionAlignmentHorz := taRightJustify; Columna.Visible := False; {Columna NIFCIF} Columna := CreateRow; Columna.DataBinding.FieldName := 'NIFCIF'; Columna.Caption := 'NIF/CIF'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna NOMBRE} Columna := CreateRow; Columna.DataBinding.FieldName := 'NOMBRE'; Columna.Caption := 'Nombre'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna CALLE} Columna := CreateRow; Columna.DataBinding.FieldName := 'CALLE'; Columna.Caption := 'Calle'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna NUMERO} Columna := CreateRow; Columna.DataBinding.FieldName := 'NUMERO'; Columna.Caption := 'Número'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna PISO} Columna := CreateRow; Columna.DataBinding.FieldName := 'PISO'; Columna.Caption := 'Piso'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna CODIGOPOSTAL} Columna := CreateRow; Columna.DataBinding.FieldName := 'CODIGOPOSTAL'; Columna.Caption := 'Cód. postal'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna PROVINCIA} Columna := CreateRow; Columna.DataBinding.FieldName := 'PROVINCIA'; Columna.Caption := 'Provincia'; Columna.CaptionAlignmentHorz := taRightJustify; Columna.PropertiesClassName := 'TcxButtonEditProperties'; with TcxButtonEditProperties(Columna.Properties) do begin Buttons[0].Kind := bkEllipsis; end; {Columna POBLACION} Columna := CreateRow; Columna.DataBinding.FieldName := 'POBLACION'; Columna.Caption := 'Población'; Columna.CaptionAlignmentHorz := taRightJustify; Columna.PropertiesClassName := 'TcxButtonEditProperties'; with TcxButtonEditProperties(Columna.Properties) do begin Buttons[0].Kind := bkEllipsis; end; {Columna TELEFONO1} Columna := CreateRow; Columna.DataBinding.FieldName := 'TELEFONO1'; Columna.Caption := 'Tlf. 1'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna TELEFONO2} Columna := CreateRow; Columna.DataBinding.FieldName := 'TELEFONO2'; Columna.Caption := 'Tlf. 2'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna MOVIL1} Columna := CreateRow; Columna.DataBinding.FieldName := 'MOVIL1'; Columna.Caption := 'Móvil 1'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna MOVIL2} Columna := CreateRow; Columna.DataBinding.FieldName := 'MOVIL2'; Columna.Caption := 'Móvil 2'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna FAX} Columna := CreateRow; Columna.DataBinding.FieldName := 'FAX'; Columna.Caption := 'Fax'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna CORREO} Columna := CreateRow; Columna.DataBinding.FieldName := 'CORREO'; Columna.Caption := 'Correo electrónico'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna PERSONACONTACTO} Columna := CreateRow; Columna.DataBinding.FieldName := 'PERSONACONTACTO'; Columna.Caption := 'Pers. de contacto'; Columna.CaptionAlignmentHorz := taRightJustify; {Columna USUARIO} Columna := CreateRow; Columna.DataBinding.FieldName := 'USUARIO'; Columna.Caption := 'Usuario'; Columna.Visible := False; Columna.CaptionAlignmentHorz := taRightJustify; end; end; { TListaSucursales } constructor TListaSucursales.Create(CodigoCliente: String); begin FCodigoCliente := CodigoCliente; FLista := TObjectList.Create; ObtenerLista; end; destructor TListaSucursales.Destroy; begin FLista.Free; FLista := NIL; inherited; end; function TListaSucursales.GetCount: Integer; begin Result := FLista.Count; end; function TListaSucursales.GetSucursal(Index: Integer): TDatosSucursal; begin Result := TDatosSucursal(FLista.Items[Index]); end; procedure TListaSucursales.ObtenerLista; var oSQL : TIBSQL; Sucursal : TDatosSucursal; begin oSQL := TIBSQL.Create(nil); with oSQL do begin Database := dmBaseDatos.BD; Transaction := dmBaseDatos.Transaccion; SQL.Add('select CODIGOCLIENTE, CODIGO, TIPO, '); SQL.Add('FECHAALTA, USUARIO, NIFCIF, '); SQL.Add('NOMBRE, CALLE, NUMERO, '); SQL.Add('PISO, CODIGOPOSTAL, POBLACION, '); SQL.Add('PROVINCIA, TELEFONO1, TELEFONO2, '); SQL.Add('MOVIL1, MOVIL2, FAX, '); SQL.Add('CORREO, PERSONACONTACTO '); SQL.Add('from SUCURSALESCLIENTE '); SQL.Add('where CODIGOCLIENTE = :CODIGOCLIENTE and '); SQL.Add('TIPO = ''S'' '); SQL.Add('order by CODIGO'); try ParamByName('CODIGOCLIENTE').AsString := FCodigoCliente; Prepare; ExecQuery; while not EOF do begin Sucursal := TDatosSucursal.Create; with Sucursal do begin NIFCIF := FieldByName('NIFCIF').AsString; Nombre := FieldByName('NOMBRE').AsString; Calle := FieldByName('CALLE').AsString; Numero := FieldByName('NUMERO').AsString; Piso := FieldByName('PISO').AsString; CodigoPostal := FieldByName('CODIGOPOSTAL').AsString; Poblacion := FieldByName('POBLACION').AsString; Provincia := FieldByName('PROVINCIA').AsString; Telefono1 := FieldByName('TELEFONO1').AsString; Telefono2 := FieldByName('TELEFONO2').AsString; Movil1 := FieldByName('MOVIL1').AsString; Movil2 := FieldByName('MOVIL2').AsString; Fax := FieldByName('FAX').AsString; Correo := FieldByName('CORREO').AsString; PersonaContacto := FieldByName('PERSONACONTACTO').AsString; end; FLista.Add(Sucursal); Next; end; finally Close; Transaction := NIL; Free; end; end; end; end.