Hola Stravinsky
Si copias este pequeño codigo y cambias los nombres de las tablas tendras un buscador de articulos completo:
Código Delphi
[-]
unit UFBuscaArticulos;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Buttons, DBCtrls, Grids, DBGrids, ExtCtrls, UDM1;
type
TFBuscaArticulo = class(TForm)
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
CBFiltro: TComboBox;
DBGrid1: TDBGrid;
Panel2: TPanel;
DBText1: TDBText;
DBText2: TDBText;
Label3: TLabel;
DBText3: TDBText;
Label4: TLabel;
Label7: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ATArticulos: TADOTable;
ATArticulosCodParte: TWideStringField;
ATArticulosDescripcion: TWideStringField;
ATArticulosCosto: TFloatField;
ATArticulosUltCosto: TFloatField;
ATArticulosPrecio1: TFloatField;
ATArticulosPrecio2: TFloatField;
ATArticulosPrecio3: TFloatField;
ATArticulosCategoria: TWideStringField;
ATArticulosSubCategoria: TWideStringField;
ATArticulosUbicacion: TWideStringField;
ATArticulosUnidad: TWideStringField;
ATArticulosDisponible: TFloatField;
ATArticulosEnProduccion: TFloatField;
ATArticulosNotas: TMemoField;
DSArticulos: TDataSource;
Label5: TLabel;
DBText4: TDBText;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
DBText5: TDBText;
DBText6: TDBText;
DBText7: TDBText;
ATArticulosPrecio4: TFloatField;
ATArticulosPrecio5: TFloatField;
ATArticulosPrecio6: TFloatField;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
DBText8: TDBText;
DBText9: TDBText;
DBText10: TDBText;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
private
public
Cod_Parte : String;
end;
var
FBuscaArticulo: TFBuscaArticulo;
implementation
{$R *.dfm}
procedure TFBuscaArticulo.FormCreate(Sender: TObject);
begin
ATArticulos.Open;
end;
procedure TFBuscaArticulo.FormDestroy(Sender: TObject);
begin
ATArticulos.Close;
end;
procedure TFBuscaArticulo.Edit1Change(Sender: TObject);
var Filtro : String;
begin
If (Edit1.Text <> '') then
begin
ATArticulos.Filtered := False;
If CBFiltro.Text = 'Código' then Filtro := 'CodParte Like '''+Edit1.Text + '*'''
else If CBFiltro.Text = 'Descripción' then Filtro := 'Descripcion Like '''+ Edit1.Text + '*'''
else If CBFiltro.Text = 'Categoría' then Filtro := 'Categoria Like '''+ Edit1.Text + '*''';
ATArticulos.Filter := Filtro;
ATArticulos.Filtered := True
end
else ATArticulos.Filtered := False;
end;
procedure TFBuscaArticulo.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
IF Key = VK_DOWN then
DbGrid1.SetFocus;
end;
procedure TFBuscaArticulo.BitBtn1Click(Sender: TObject);
begin
CodParte := ATArticulosCodParte.AsString;
Cod_Parte := ATArticulosCodParte.AsString;
Close;
end;
procedure TFBuscaArticulo.BitBtn2Click(Sender: TObject);
begin
CodParte := '';
Cod_Parte := '';
Close;
end;
procedure TFBuscaArticulo.DBGrid1DblClick(Sender: TObject);
begin
BitBtn1Click(DBGrid1);
end;
end.
Espero que con este pequeño ejemplo puedas hacer lo que quieres.
Saludos