Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Consulta con el evento Edit1Change (https://www.clubdelphi.com/foros/showthread.php?t=31419)

maravert 07-05-2006 19:21:32

Consulta con el evento Edit1Change
 
Hola a todos, Estoy manejando delphi7 y tablas paradox. Intento hacer una aplicación donde el usuario va a capturar unos pedidos. lo primero que hace es dar la clave del cliente, pero si no se sabe, como normalmente es, deberá de introducir su nombre (del ciente) en un Tedit y de manera automatica iran apareciendo (En un DBgrid) solo los nombres de los cleintes cuyo nombre va coincidiendo con la cadena que se introduce. Si por ejemplo en el Tedit se teclea PER, pues en el DbGrid se mostraran los nombres que inicien con PER y de alli el usuario selecciona un cliente.

Tengo el proceso, pero no me hace nada de esto. Les doy el codigo y espero que alguien me pueda ayudar en esto.

Gracias de antemano.




Código Delphi [-]unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, DB, DBTables, StdCtrls, Unit1;
type
TForm3 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label7: TLabel;
Button1: TButton;
Table2: TTable;
DBGrid2: TDBGrid;
DataSource2: TDataSource;
Query1: TQuery;
Table3: TTable;
DataSource3: TDataSource;
procedure Button2Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Button1Click(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit4;
{$R *.dfm}

procedure TForm3.Button2Click(Sender: TObject);
begin
tABLE1.Filtered := FALSE;
end;


procedure TForm3.Edit1Change(Sender: TObject);
begin
Query1.sql.clear;
Query1.SQL.Text:= 'SELECT * FROM Clie01 WHERE UPPER(Nombre) LIKE (UPPER(:Nombre))';
Query1.ParamByName('Nombre').Value := 'Edit1.Text';
query1.Open;
table1.Refresh;
end;

procedure TForm3.DBGrid1CellClick(Column: TColumn);
VAR
mclave, mnombre : string;
begin
mclave := (Table1.fieldByname ('cclie').asString);
mnombre := (Table1.fieldByname ('nombre').asString);
Label1.caption := mclave;
Label2.caption := mnombre;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
Form4.showmodal;
end;

procedure TForm3.FormPaint(Sender: TObject);
begin
Label1.caption := mclave;
Label2.caption := mnombre;
end;

procedure TForm3.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key = VK_RETURN) then begin
if not Table1.FindKey([edit1.text]) then
Messagebox (Handle, 'no se encontro', 'Mensaje', MB_OK)
else
begin
mclave := (Table1.fieldByname ('cclie').asString);
mnombre := (Table1.fieldBYname ('nombre').asString);
Label1.caption := mclave;
Label2.caption := mnombre;
end
end;
end;
end.

Thales 07-05-2006 19:58:59

Prueba a modificar el evento OnChange del Edit1 de esta manera:

Código Delphi [-]
procedure TForm1.Edit1Change(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text:= 'SELECT * FROM Clie01 WHERE UPPER(Nombre) LIKE UPPER(:Nombre)';
  Query1.ParamByName('Nombre').Value := Edit1.Text + '%';
  query1.Open;
end;

Un saludo

maravert 08-05-2006 18:39:05

Gracias portu respuesta, voy aprobar.

Estoy para servirte

Alejandro

vtdeleon 08-05-2006 18:49:29

Saludos
maravert, trata de utilizar los TAG's para mostrar codigos. Te invito a que le des un repaso a Etiquetas vB:=Delphi-SQL


La franja horaria es GMT +2. Ahora son las 13:00:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi