{ =============================================================================== 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: 10-10-2004 =============================================================================== Modificaciones: Fecha Comentarios --------------------------------------------------------------------------- 10-10-2004 Se ha cambiado el metodo RecogerDatos a virtual con el fin de poder heredarlo y sobre escribirlo =============================================================================== } unit BuscarArticulo; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, IBQuery, StdCtrls, DB, RdxBotones, RdxBarras, RdxComboBox, RdxCampos, RdxTitulos, RdxPaneles, Tipos, Mensajes, RdxFrame, RdxDBFrame, RdxFrameArticulos; type TfrBuscarArticulo = class(TRdxFrameArticulos) brDoble: TRdxBarraInferior; bBuscar: TRdxBoton; bCerrar: TRdxBoton; pnlPanel: TRdxPanel; cDatos: TRdxCabecera; eCodigo: TLabel; eFamilia: TLabel; eDescripcion: TLabel; Codigo: TRdxEdit; Descripcion: TRdxEdit; cbxFamilia: TRdxComboBox; procedure bCerrarClick(Sender: TObject); procedure bBuscarClick(Sender: TObject); protected procedure RecogerDatos; virtual; procedure BuscarArticulo; override; function CloseFrame : boolean; override; public constructor Create (AOwner : TComponent); override; published property TablaArticulos; property CodigoArticulo; end; var frBuscarArticulo: TfrBuscarArticulo; Campos : String; Valores : Variant; Contador : Integer; implementation {$R *.DFM} uses BaseDatos, Articulos, TablaFamilias, Configuracion, Literales; constructor TfrBuscarArticulo.Create (AOwner : TComponent); begin if not (AOwner is TRdxFrameArticulos) then exit; inherited Create(AOwner); Entidad := entArticulo; ConfigurarFrame(Self, Self.Entidad); Contador := -1; Campos := ''; Valores := VarArrayOf([null, null, null]); cbxFamilia.Items := dmTablaFamilias.darFamilias; TablaArticulos := (AOwner as TRdxFrameArticulos).TablaArticulos; with TablaArticulos do begin Codigo.MaxLength := FieldByName('CODIGO').Size; Descripcion.MaxLength := FieldByName('DESCRIPCION').Size; end; if TablaArticulos.FieldByName('CODIGO').AsString='' then; end; procedure TfrBuscarArticulo.bCerrarClick(Sender: TObject); begin inherited; CloseFrame; end; procedure TfrBuscarArticulo.RecogerDatos; begin Campos := ''; Contador := -1; if Length(Trim(Codigo.Text)) > 0 then begin Contador := Contador + 1; Campos := Campos + 'CODIGO'; Valores[Contador] := Trim(Codigo.Text); end; if Length(Trim(Descripcion.Text)) > 0 then begin Contador := Contador + 1; if Contador > 0 then Campos := Campos + ';'; Campos := Campos + 'DESCRIPCION'; Valores[Contador] := Trim(Descripcion.Text); end; if Length(Trim(cbxFamilia.Text)) > 0 then begin Contador := Contador + 1; if Contador > 0 then Campos := Campos + ';'; Campos := Campos + 'FAMILIA'; Valores[Contador] := Trim(cbxFamilia.Text); end; end; procedure TfrBuscarArticulo.bBuscarClick(Sender: TObject); begin RecogerDatos; if Contador <> -1 then BuscarArticulo else VerMensaje(msgNoParametros); end; procedure TfrBuscarArticulo.BuscarArticulo; var Respuesta : integer; Resultado : Boolean; begin if Contador <> -1 then begin TablaArticulos.DisableControls; if Contador = 0 then Resultado := TablaArticulos.LocateNext(Campos, Valores[Contador], [loCaseInsensitive, loPartialKey]) else Resultado := TablaArticulos.LocateNext(Campos, Valores, [loCaseInsensitive, loPartialKey]); if (Resultado = false) then begin Respuesta := VerMensajePregunta(msgIrInicio); case Respuesta of IDYES: TablaArticulos.First; end; end; TablaArticulos.EnableControls; end; end; function TfrBuscarArticulo.CloseFrame: boolean; begin FCodigoArticulo := TablaArticulos.FieldByName('CODIGO').AsString; Result := inherited CloseFrame; end; end.