{ =============================================================================== 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 Clientes; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, ComCtrls, RdxBotones, ToolWin, ExtCtrls, Menus, am2000menuitem, am2000popupmenu, am2000, Db, DBTables, RXDBCtrl, RdxPaneles, RdxBarras, TablaClientes, RdxDBFrame, RdxFrameClientes, RdxFrame, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxEdit, cxDBData, cxGridTableView, cxGridCustomTableView, cxGridDBTableView, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGrid, Configuracion, StdCtrls, Buttons, AdvPanel, cxContainer, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, ActnList, am2000utils, cxDataStorage, cxDBEdit; type TfrClientes = class(TRdxFrameClientes) dsClientes: TDataSource; brSeleccion: TRdxBarraInferior; bSeleccionar: TRdxBoton; bCancelar: TRdxBoton; BarraClientes: TRdxBarraSuperior; bAnadir: TRdxBotonSuperior; bModificar: TRdxBotonSuperior; bEliminar: TRdxBotonSuperior; bConsultar: TRdxBotonSuperior; MenuOpciones: TPopupMenu2000; mnuAnadir: TMenuItem2000; mnuModificar: TMenuItem2000; mnuEliminar: TMenuItem2000; gridClientesDBTableView1: TcxGridDBTableView; gridClientesLevel1: TcxGridLevel; gridClientes: TcxGrid; mnuConsultar: TMenuItem2000; bSeparador1: TShape; pnlCuerpo: TPanel; pnlSeparador: TPanel; Acciones: TActionList; actAnadir: TAction; actModificar: TAction; actEliminar: TAction; actConsultar: TAction; actSeleccionar: TAction; actCancelar: TAction; bImprimir: TRdxBotonSuperior; actImprimir: TAction; imgSombra: TImage; pnlExtra: TRdxBarraSuperior; pnlCuerpo2: TRdxPanel; bRefrescar: TRdxBoton; Shape1: TShape; RdxBotonSuperior1: TRdxBotonSuperior; actConsultarCobros: TAction; Panel1: TPanel; Buscar: TcxTextEdit; bLimpiar: TRdxBoton; eNombre: TLabel; RdxBotonSuperior2: TRdxBotonSuperior; Shape2: TShape; actEtiquetas: TAction; procedure RdxFrameClientesShow(Sender: TObject); procedure cxLookupComboBox1PropertiesEditValueChanged(Sender: TObject); procedure actAnadirExecute(Sender: TObject); procedure actModificarExecute(Sender: TObject); procedure actEliminarExecute(Sender: TObject); procedure actConsultarExecute(Sender: TObject); procedure gridClientesDBTableView1DblClick(Sender: TObject); procedure actSeleccionarExecute(Sender: TObject); procedure actCancelarExecute(Sender: TObject); procedure actImprimirExecute(Sender: TObject); procedure actRefrescarDatosExecute(Sender: TObject); procedure actConsultarCobrosExecute(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure bLimpiarClick(Sender: TObject); procedure actEtiquetasExecute(Sender: TObject); private procedure ActualizarBotones; protected procedure BuscarCliente; override; procedure FreeContenido; override; procedure SetContenido (NuevoFrame : TRdxFrame); override; public constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property TablaClientes; property Entidad; end; var frClientes: TfrClientes; implementation {$R *.DFM} uses IBCustomDataSet, BaseDatos, Entidades, Cliente, Variants, ListadoClientes, EtiquetasClientes, ListadoPagosCliente, TablaFacturasCliente, TablaPagosCliente, Mensajes, Literales; constructor TfrClientes.Create (AOwner : TComponent); begin inherited Create(AOwner); Entidad := entCliente; BaseDatos := dmBaseDatos.BD; Transaccion := dmBaseDatos.Transaccion; TablaClientes := TIBDataSet.Create(Self); dsClientes.DataSet := TablaClientes; with TablaClientes do begin //DisableControls; Database := BaseDatos; Transaction := Transaccion; SelectSQL.Assign(dmTablaClientes.sqlGrid); Prepare; Open; ActualizarBotones; //EnableControls; end; dmTablaClientes.InicializarGridClientes(gridClientesDBTableView1); gridClientesDBTableView1.OnDblClick := gridClientesDBTableView1DblClick; gridClientesDBTableView1.Controller.GoToFirst; end; procedure TfrClientes.BuscarCliente; var i: Integer; begin with TablaClientes do begin DisableControls; Close; Open; ActualizarBotones; EnableControls; if not Locate('CODIGO', CodigoCliente, []) then gridClientesDBTableView1.Controller.GoToFirst else gridClientesDBTableView1.Controller.TopRowIndex := gridClientesDBTableView1.Controller.FocusedRowIndex; end; end; destructor TfrClientes.Destroy; begin TablaClientes.Close; TablaClientes.Unprepare; TablaClientes.Free; inherited; end; procedure TfrClientes.FreeContenido; begin if (Contenido is TRdxFrameClientes) then CodigoCliente := (Contenido as TRdxFrameClientes).CodigoCliente; if (Contenido is TfrListadoPagosCliente) then CodigoCliente := (Contenido as TfrListadoPagosCliente).CodigoCliente; inherited FreeContenido; //gridClientes.SetFocus; end; procedure TfrClientes.ActualizarBotones; begin if BaseDatos.IsReadOnly then begin actAnadir.Enabled := False; actModificar.Enabled := False; actEliminar.Enabled := False; actConsultar.Enabled := True; actImprimir.Enabled := True; actConsultarCobros.Enabled := True; Exit; end; if TablaClientes.RecordCount = 0 then begin actAnadir.Enabled := True; actModificar.Enabled := False; actEliminar.Enabled := False; actConsultar.Enabled := False; actImprimir.Enabled := False; actConsultarCobros.Enabled := False; end else begin actAnadir.Enabled := True; actModificar.Enabled := True; actEliminar.Enabled := True; actConsultar.Enabled := True; actImprimir.Enabled := True; actConsultarCobros.Enabled := True; end; end; procedure TfrClientes.RdxFrameClientesShow(Sender: TObject); begin Buscar.SetFocus end; procedure TfrClientes.cxLookupComboBox1PropertiesEditValueChanged( Sender: TObject); begin TablaClientes.Locate('CODIGO', (Sender as TcxLookupComboBox).EditValue, [loCaseInsensitive]); end; procedure TfrClientes.actAnadirExecute(Sender: TObject); begin Contenido := TfrCliente.Create(Self); Contenido.Modo := Anadir; end; procedure TfrClientes.actModificarExecute(Sender: TObject); begin Contenido := TfrCliente.Create(Self); Contenido.Modo := Modificar; end; procedure TfrClientes.actEliminarExecute(Sender: TObject); begin Contenido := TfrCliente.Create(Self); Contenido.Modo := Eliminar; end; procedure TfrClientes.actConsultarExecute(Sender: TObject); begin Contenido := TfrCliente.Create(Self); Contenido.Modo := Consultar; end; procedure TfrClientes.gridClientesDBTableView1DblClick(Sender: TObject); begin if Modo = Seleccionar then actSeleccionar.Execute else actModificar.Execute; end; procedure TfrClientes.actSeleccionarExecute(Sender: TObject); begin CodigoCliente := TablaClientes.FieldByName('CODIGO').AsString; CloseFrame; end; procedure TfrClientes.actCancelarExecute(Sender: TObject); begin FCodigoCliente := NULL; CloseFrame; end; procedure TfrClientes.actImprimirExecute(Sender: TObject); begin Contenido := TfrListadoClientes.Create(Self); Contenido.Modo := Imprimir; end; procedure TfrClientes.actRefrescarDatosExecute(Sender: TObject); begin FCodigoCliente := TablaClientes.FieldByName('CODIGO').AsString; BuscarCliente; end; procedure TfrClientes.actConsultarCobrosExecute(Sender: TObject); var lCodigo : Variant; begin lCodigo := TablaClientes.FieldByName('CODIGO').AsVariant; if dmTablaFacturasCliente.ExisteFacturaConCliente(lCodigo) or dmTablaPagosCliente.ExistePagoConCliente(lCodigo) then begin Contenido := TfrListadoPagosCliente.Create(Self); Contenido.Modo := Consultar; (Contenido as TfrListadoPagosCliente).activarFacturasCobrosCliente; end else VerMensajeFmt(msgCliCliNoFacPag, [lCodigo]); end; procedure TfrClientes.SetContenido(NuevoFrame: TRdxFrame); begin inherited; if (Contenido is TfrListadoPagosCliente) then (Contenido as TfrListadoPagosCliente).CodigoCliente := CodigoCliente; end; procedure TfrClientes.Edit1Change(Sender: TObject); begin FiltrarGrid(gridClientes, Buscar.Text); end; procedure TfrClientes.bLimpiarClick(Sender: TObject); begin Buscar.Text := ''; end; procedure TfrClientes.actEtiquetasExecute(Sender: TObject); begin Contenido := TfrEtiquetasClientes.Create(Self); Contenido.Modo := Imprimir; end; end.