Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Filtrar Tabla con datos de otra Tabla (https://www.clubdelphi.com/foros/showthread.php?t=71954)

Lenny 22-01-2011 18:51:13

Lo que necesito...
 
Gracias por orientarme...

Necesito que recorra todos los registros de la TABLA2 (Previamente Filtrados segun formulacion) y guarde estos valores en una variable, para luego con estos valores filtrar la TABLA3 (donde se encuentran todas las materias primas) y asi ambas muestrn el mismo contenido, para que??? TABLA2 tiene lo que se necesita y las cantidades, TABLA3 tiene todas las materias primas y el STOCK disponible...
Eso es lo que necesito... cualquier otra informacion que encesites estare atento... gracias...

Sorry, me olvidava, solo necesito guarde el COD_INTERNO, el codigo de la materia prima que se necesita para crear el producto y con esto filtrar la TABLA3...

Caral 22-01-2011 19:05:52

Hola
Pregunto:
Lo que necesitas es VER los registros de la tabla 2 y de la tabla 3 para saber si hay repetidos VISUALMENTE o que muestre solo los repetidos?.
No entiendo para que recorrer la tabla.
Saludos

Lenny 22-01-2011 19:13:41

Cita:

Empezado por Caral (Mensaje 388367)
Hola
Pregunto:
Lo que necesitas es VER los registros de la tabla 2 y de la tabla 3 para saber si hay repetidos VISUALMENTE o que muestre solo los repetidos?.
No entiendo para que recorrer la tabla.
Saludos

Necesito que la TABLA3 muester solo los repetidos, los que tenga la TABLA2...
esop...

Caral 22-01-2011 19:36:45

Hola
Para eso necesitamos filtrar la tabla 3, no la tabla 2.
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
Filtro: String;
begin
ZTable3.Filtered := False;
while not ZTable3.Eof do  begin
Filtro := ' COD_INTERNO <> ' + ZTable2.FieldByName('COD_INTERNO').ASstring;
ZTable3.Filter := Filtro;
ZTable3.Filtered := True;
ZTable3.Next;
end
else
ZTable3.Filtered := False;
end;
end;
Aqui se indica que haga un recorrido de la tabla 3 y si el dato (COD_INTERNO) es diferente a la tabla 2 entonces sigue el recorrido.
Por supuesto la tabla 2 tiene que estar activa, abierta, para hacer la comparacion.
Pruebalo, a ver que pasa.
Saludos

Lenny 22-01-2011 20:49:03

aun no funciona...
 
Se queda pegado, como si recorriera los registros una y otra vez sin hacer nada... y, pecando de ignorante... ¿A que te refiers con que la TABLA2 deve estar abierta, cativa??? algo como ZTABLE3.Open???

Caral 22-01-2011 20:52:28

Hola
Si, ztable2.open y ztable3.open tambien, abiertas.

Prueba 2:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
Filtro: String;
begin
ZTable3.Filtered := False;
Filtro := ' COD_INTERNO <> ' + ZTable2.FieldByName('COD_INTERNO').ASstring;
ZTable3.Filter := Filtro;
ZTable3.Filtered := True;
end
else
ZTable3.Filtered := False;
end;
end;
Si no seria bueno por sql.
Saludos

Lenny 22-01-2011 21:42:57

Pregunta, e usado los dos codigos anteriores, pero el "else" lanza error, lo e sacado... esta bien??? tiene alguna fucnion en especial???

Caral 22-01-2011 21:46:43

Hola
Pues deberia de hacer la funcion de que si no ejecuta el filtro entonces no lo abre.
Verifica los punto y coma, tal vez por ahi esta el error.
Saludos

Lenny 22-01-2011 22:31:19

Aun no funciona...
 
:( Nada estimado... no hay caso... ya no se que mas hacer... busco y busco y no encuentro donde esta el error... Seguire buscando, ojala encuentre la solucion... muchisimas gracias por la ayuda!!!

PD: Si tiene mas sugerencias bienvenidas sean igual...

Aleca 22-01-2011 22:35:53

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Filtro: String;
begin
  ZTable2.First; //Se podria evitar
  if not ZTable2.Eof then //Tengo al menos un dato.
  begin
    Filtro := 'COD_INTERNO = ' + chr(39) + ZTable2.FieldByName('COD_INTERNO').ASstring + chr(39);
    ZTbable2.Next;
    while not ZTable2.Eof do
    begin
       Filtro := Filtro + ' or COD_INTERNO = ' + chr(39) + ZTable2.FieldByName('COD_INTERNO').ASstring + chr(39);
       ZTable2.Next
    end;
    ZTable1.filter := Filtro;
    ZTable1.Filtered := True;
  end;
end;
ahora debería andar. :)

Lenny 22-01-2011 22:45:10

Ahora Si Funciona!!!
 
MIL GRACIAS ALECA!!! AHORA SI FUNCIONA!!!
Mil gracias ALECA, CHRIS y CARAL, llevo tratando de solcuionar esto 3 dias... estoy muy agradesido de su paciencia y conocimientos...

Aleca 22-01-2011 22:47:25

Cita:

Empezado por Lenny (Mensaje 388409)
MIL GRACIAS ALECA!!! AHORA SI FUNCIONA!!!
Mil gracias ALECA, CHRIS y CARAL, llevo tratando de solcuionar esto 3 dias... estoy muy agradesido de su paciencia y conocimientos...

de nada :)


La franja horaria es GMT +2. Ahora son las 16:01:13.

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