{ =============================================================================== Copyright (©) 2001. 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-10-2001 Versión actual: 1.0.3 Fecha versión actual: 04-10-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 24-02-2002 Ajusta el alto de la ventana modal de listar. 07-04-2002 Se ha adaptado a una unica transacción. 14-07-2004 Se ha adaptado a multiempresa. 04-10-2004 Se añade unidad cambiarEntidad para que pueda cambiar de color dependiendo del modulo desde el que se la llama =============================================================================== } unit HistoricoMovimientos; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, RdxBotones, StdCtrls, IB, RdxFrame, RdxMemo, RdxCampos, ExtCtrls, Tipos, IBCustomDataSet, RdxComboBox, Db, DBTables, RXDBCtrl, RdxTitulos, RdxPaneles, IBSQL, RdxBarras, DBCtrls, RxMemDS, RdxCheckBox, RdxFrameHistoricoMovimientos, Mensajes, dxCntner, dxTL, dxDBCtrl, dxDBGrid, pngimage; type TfrHistoricoMovimientos = class(TRdxFrameHistoricoMovimientos) dsMovimientos: TDataSource; RdxBarraSuperior1: TRdxBarraSuperior; bConsultar: TRdxBotonSuperior; bEliminar: TRdxBotonSuperior; bBuscar: TRdxBotonSuperior; bListar: TRdxBotonSuperior; pnlCuerpo: TRdxPanel; pnlGridArticulos: TPanel; pnlDatos: TPanel; pnlExtra: TRdxBarraSuperior; eAlmacen: TLabel; cbxAlmacen: TRdxComboBox; gridMovimientos: TdxDBGrid; imgSombra: TImage; procedure bConsultarClick(Sender: TObject); procedure bEliminarClick(Sender: TObject); procedure bBuscarClick(Sender: TObject); procedure bListarClick(Sender: TObject); procedure cbxAlmacenChange(Sender: TObject); procedure gridMovimientosRefreshButton(Sender: TObject); private procedure ActualizarBotones; protected procedure BuscarAlmacen; override; procedure BuscarMovimiento; override; procedure FreeContenido; override; procedure VerModal; override; procedure SetContenido (NuevoFrame : TRdxFrame); override; function CambiarEntidad (EntidadAnterior, Entidad : TRdxEntidad): Boolean; override; public constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property TablaMovimientos; property Entidad; end; var frHistoricoMovimientos: TfrHistoricoMovimientos; implementation {$R *.DFM} uses BaseDatos, BuscarMovimiento, HistoricoMovimiento, ListadoHistoricoMovimientos, TablaMovimientos, TablaAlmacenes, TablaHistoricoMovimientos, Excepciones, Configuracion, RdxEmpresaActiva; constructor TfrHistoricoMovimientos.Create (AOwner : TComponent); var i : integer; begin inherited Create(AOwner); Entidad := entAlmacen; ConfigurarFrame(Self, Self.Entidad); BaseDatos := dmBaseDatos.BD; Transaccion := dmBaseDatos.Transaccion; TablaMovimientos := TIBDataSet.Create(Self); dsMovimientos.DataSet := TablaMovimientos; with TablaMovimientos do begin Database := BaseDatos; Transaction := Transaccion; SelectSQL.Assign(dmTablaHistoricoMovimientos.sqlGrid); end; dmTablaAlmacenes.darAlmacenes(EmpresaActiva.Codigo, FListaAlmacenesCodigo,FListaCodigosAlmacen); for i:=0 to FListaAlmacenesCodigo.Count-1 do cbxAlmacen.Items.Add(FListaAlmacenesCodigo.Names[i]); // Carga el primer almacen cbxAlmacen.ItemIndex := 0; CodigoAlmacen := FListaAlmacenesCodigo.Values[cbxAlmacen.Text]; // dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos); dmTablaHistoricoMovimientos.InicializarGridMovimientos(gridMovimientos); // gridMovimientos.AutoWidth := awWidestValueTitle; end; destructor TfrHistoricoMovimientos.Destroy; begin TablaMovimientos.Close; TablaMovimientos.UnPrepare; TablaMovimientos.Free; inherited; end; procedure TfrHistoricoMovimientos.BuscarAlmacen; begin if Transaccion = NIL then exit; try TablaMovimientos.DisableControls; TablaMovimientos.Close; if not VarIsNull(CodigoAlmacen) then TablaMovimientos.Params.ByName('CODIGOALMACEN').AsString := CodigoAlmacen; TablaMovimientos.Params.ByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; TablaMovimientos.Prepare; TablaMovimientos.Open; ActualizarBotones; TablaMovimientos.EnableControls; // Establece en el combox el almacen correspondiente al codigo a buscar cbxAlmacen.ItemIndex := cbxAlmacen.Items.IndexOf(FListaCodigosAlmacen.Values[CodigoAlmacen]); except on E : EIBError do TratarExcepcion(E); on E : Exception do TratarExcepcion(E); end; end; procedure TfrHistoricoMovimientos.cbxAlmacenChange(Sender: TObject); begin CodigoAlmacen := FListaAlmacenesCodigo.Values[cbxAlmacen.Text]; end; procedure TfrHistoricoMovimientos.FreeContenido; begin if (Contenido is TRdxFrameHistoricoMovimientos) then CodigoMovimiento := (Contenido as TRdxFrameHistoricoMovimientos).CodigoMovimiento; inherited; end; procedure TfrHistoricoMovimientos.bBuscarClick(Sender: TObject); begin CodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString; Contenido := TfrBuscarMovimiento.Create(Self); Contenido.Entidad := Self.Entidad; end; procedure TfrHistoricoMovimientos.bEliminarClick(Sender: TObject); begin CodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString; Contenido := TfrHistoricoMovimiento.Create(Self); Contenido.Entidad := Self.Entidad; Contenido.Modo := Eliminar; end; procedure TfrHistoricoMovimientos.bConsultarClick(Sender: TObject); begin CodigoMovimiento := TablaMovimientos.FieldByName('CODIGO').AsString; Contenido := TfrHistoricoMovimiento.Create(Self); Contenido.Entidad := Self.Entidad; Contenido.Modo := Consultar; end; procedure TfrHistoricoMovimientos.bListarClick(Sender: TObject); begin Contenido := TfrListadoHistoricoMovimientos.Create(Self); Contenido.Entidad := Self.Entidad; end; procedure TfrHistoricoMovimientos.BuscarMovimiento; begin with TablaMovimientos do begin DisableControls; Close; Open; ActualizarBotones; EnableControls; end; TablaMovimientos.Locate('CODIGO',CodigoMovimiento,[]); end; procedure TfrHistoricoMovimientos.VerModal; begin if (ContenidoModal is TfrListadoHistoricoMovimientos) then (ContenidoModal as TfrListadoHistoricoMovimientos).CodigoAlmacen := CodigoAlmacen; inherited; end; procedure TfrHistoricoMovimientos.ActualizarBotones; begin if BaseDatos.IsReadOnly then begin bConsultar.Enabled := True; bEliminar.Enabled := False; bBuscar.Enabled := True; bListar.Enabled := True; Exit; end; if TablaMovimientos.RecordCount= 0 then begin bConsultar.Enabled := False; bEliminar.Enabled := False; bBuscar.Enabled := False; bListar.Enabled := False; end else begin bConsultar.Enabled := True; bEliminar.Enabled := True; bBuscar.Enabled := True; bListar.Enabled := True; end; end; procedure TfrHistoricoMovimientos.gridMovimientosRefreshButton( Sender: TObject); begin //Porque no se va ha cambiar de almacen ya que es solo refresco BuscarMovimiento; end; procedure TfrHistoricoMovimientos.SetContenido(NuevoFrame: TRdxFrame); begin inherited; if (Contenido is TfrListadoHistoricoMovimientos) then begin (Contenido as TfrListadoHistoricoMovimientos).Entidad := Entidad; (Contenido as TfrListadoHistoricoMovimientos).CodigoAlmacen := CodigoAlmacen; end; end; function TfrHistoricoMovimientos.CambiarEntidad(EntidadAnterior, Entidad: TRdxEntidad): Boolean; begin if not inherited CambiarEntidad(EntidadAnterior, Entidad) then Exit; ConfigurarFrame(Self, Self.Entidad); end; end.