{ =============================================================================== 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.1 Fecha versión actual: 07-04-2002 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 07-04-2002 Se ha adaptado a una unica transacción. =============================================================================== } unit LocalizarArticulo; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, RDXFRAME, StdCtrls, RdxComboBox, RdxBotones, RdxCampos, ExtCtrls, Tipos, RdxBarras, RdxTitulos, IBCustomDataSet, IB, Grids, DBGrids, RdxMemo, RdxPaneles, RdxFrameArticulos, Db, RXDBCtrl, Mensajes, dxCntner, dxTL, dxDBCtrl, dxDBGrid; type TfrLocalizarArticulo = class(TRdxFrameArticulos) RdxScrollPanel1: TRdxScrollPanel; pnlDatos: TRdxPanel; cDatos: TRdxCabecera; eCodigo: TLabel; Codigo: TRdxDBEdit; eUnidades: TLabel; cbxUnidadesMedida: TRdxDBComboBox; eHastaArticulo: TLabel; Descripcion: TRdxDBEdit; eObservaciones: TLabel; cbxFamilia: TRdxDBComboBox; eFamilia: TLabel; ePrecioEuros: TLabel; Precio: TRdxDBEdit; pnlAlmacenes: TRdxPanel; cListado: TRdxCabecera; pnlGridAlmacenes: TRdxPanel; pnlGrid: TPanel; dsArticulo: TDataSource; brSimple: TRdxBarraInferior; bAceptarSimple: TRdxBoton; Titulo: TRdxPanelTituloOperacion; dsAlmacenes: TDataSource; Observaciones: TRdxDBMemo; gridAlmacenes: TdxDBGrid; procedure bSalirClick(Sender: TObject); procedure CodigoButtonClick(Sender: TObject); protected TablaAlmacenes : TIBDataSet; procedure FreeContenido; override; procedure BuscarArticulo; override; public constructor Create (AOwner : TComponent); override; destructor Destroy; override; published property TablaArticulos; property CodigoArticulo; end; var frLocalizarArticulo: TfrLocalizarArticulo; implementation uses BaseDatos, TablaArticulos, Articulos, TablaAlmacenes, Excepciones, Configuracion, RdxEmpresaActiva; {$R *.DFM} constructor TfrLocalizarArticulo.Create(AOwner : TComponent); begin inherited Create(AOwner); Entidad := entArticulo; ConfigurarFrame(Self, Self.Entidad); BaseDatos := dmBaseDatos.BD; Transaccion := dmBaseDatos.Transaccion; TablaArticulos := TIBDataSet.Create(Self); dsArticulo.DataSet := TablaArticulos; TablaAlmacenes := TIBDataSet.Create(Self); dsAlmacenes.DataSet := TablaAlmacenes; with TablaArticulos do begin Database := BaseDatos; Transaction := Transaccion; SelectSQL.Assign(dmTablaArticulos.sqlConsultar); RefreshSQL.Assign(dmTablaArticulos.sqlConsultar); end; with TablaAlmacenes do begin Database := BaseDatos; Transaction := Transaccion; SelectSQL.Assign(dmTablaAlmacenes.sqlLocalizarGrid); end; dmTablaAlmacenes.InicializarGridLocalizar(gridAlmacenes); // gridAlmacenes.AutoWidth := awWidestValueTitle; end; procedure TfrLocalizarArticulo.bSalirClick(Sender: TObject); begin try Rollback; CloseFrame; except on E : EIBError do TratarExcepcion(E); on E : Exception do TratarExcepcion(E); end; end; procedure TfrLocalizarArticulo.BuscarArticulo; begin if Transaccion = NIL then exit; try TablaArticulos.Close; TablaAlmacenes.Close; // Buscar la fila a tratar si es necesario if not VarIsNull(CodigoArticulo) then begin TablaArticulos.ParamByName('CODIGO').AsString := CodigoArticulo; TablaAlmacenes.ParamByName('CODIGOARTICULO').AsString := CodigoArticulo; TablaAlmacenes.ParamByName('CODIGOEMPRESA').AsInteger := EmpresaActiva.Codigo; end; TablaArticulos.Prepare; TablaAlmacenes.Prepare; TablaArticulos.Open; dmTablaArticulos.InicializarTablaArticulos(@TablaArticulos); TablaAlmacenes.Open; except on E : EIBError do begin VerMensaje(E.Message); end; on E : EDatabaseError do begin VerMensaje(E.Message); end; end; end; procedure TfrLocalizarArticulo.CodigoButtonClick(Sender: TObject); begin ContenidoModal := TfrArticulos.Create(Self); end; destructor TfrLocalizarArticulo.Destroy; begin TablaArticulos.Close; TablaArticulos.UnPrepare; TablaArticulos.Free; inherited; end; procedure TfrLocalizarArticulo.FreeContenido; begin if (ContenidoModal is TRdxFrameArticulos) then CodigoArticulo := (ContenidoModal as TRdxFrameArticulos).CodigoArticulo; inherited FreeContenido; end; end.