Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Bucle para recorer una Base de Datos Access y que ignore un dato. (https://www.clubdelphi.com/foros/showthread.php?t=86682)

Edwardfeliz 16-09-2014 03:27:44

Bucle para recorer una Base de Datos Access y que ignore un dato.
 
Buenas noches a todos!
espero que la pasen bien.

tengo el siguiente inconveniente, si alguno sabe como resolverlo me ayudaria:
(La idea es que el bucle recorra la base de datos (Access) y me ponga en un RichEdit los productos su cantidad sea menor a los que yo le indique, ese dato esta en la tabla de configuraciones, el campo se llama "Reordenar" ).
lo hago de la siguiente forma:

Dentro de mi tabla llamada productos, tengo un campo que es el de la cantidad existente, le llamo "Existencia" (Campo numerico), y el otro campo esta en la tabla de configuraciones y le llamo "reordenar" esto es lo que tengo hasta ahora:

Código Delphi [-]
procedure Reordenarproductos(const Parareordenar: string; Qry: TADOQuery; RE: TRichEdit);
begin
  with Qry do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT Descripcion, Existencia FROM Productos');
    SQL.Add('WHERE Existencia <= :Reordenar');
    Parameters.ParamByName('Reordenar').Value := Parareordenar;
    Open;
    while not Eof do
    begin
    RE.SelAttributes.Color:= Clblack;
    RE.Lines.Add('------------');
    RE.SelAttributes.Color:= Clblack;
      RE.Lines.Add(Format('%s - %s',[FieldByName('Descripcion').AsString,
        FieldByName('Existencia').AsString]));
      Next;
    end;
  end;
end;

y la llamada:

Código Delphi [-]
begin
Adoquery1.Close;
Adoquery1.Open;
RE.SelAttributes.Color:= Clblack;
RE.Lines.Add('*Articulos Que Se Agotan*');
reordenarproductos(Fconfiguracion.DBEreordenar.Text, ADOQuery2, RE);
end;

todo bien hasta ahí, pero hay un tercer campo en la tabla productos que se llama SubLinea_Producto, en este campo almaceno la sub categoria del producto, por ejemplo: Accesorios, Conectores, Etc, yo quiero que el bucle verifique si el producto tiene en la sublinea_producto: "accesorio" y ignore este producto y sigua agregando los demas que no estan en esta categoria.

porque como ustedes saben, a veces hay accesorios que solo compramos uno y dos, y no quiero que aparescan.

Saludos!

ecfisa 16-09-2014 04:10:51

Hola EdwardFeliz.

A ver si te entendí... Fijate si te sirve de este modo:
Código SQL [-]
SELECT DESCRIPCION, EXISTENCIA
FROM PRODUCTOS
WHERE (IMPORTE <= :REORDENAR) AND (SUB_LINEA_PRODUCTO  <> 'accesorio')
   OR (SUB_LINEA_PRODUCTO IS NULL)

Saludos :)

Edwardfeliz 16-09-2014 04:26:18

Cita:

Empezado por ecfisa (Mensaje 481548)
Hola EdwardFeliz.

A ver si te entendí... Fijate si te sirve de este modo:
Código SQL [-]SELECT DESCRIPCION, EXISTENCIA FROM PRODUCTOS WHERE (IMPORTE <= :REORDENAR) AND (SUB_LINEA_PRODUCTO <> 'accesorio') OR (SUB_LINEA_PRODUCTO IS NULL)


Saludos :)

Saludos! (gracias por la respuesta ;) )

algo parecido, la idea es:
Código SQL [-]
SQL.Add('SELECT Descripcion, Existencia, Sublinea_producto FROM Productos');
SQL.Add('WHERE (Existencia <= :Reordenar) and (Sublinea_producto <> :excepcion)');
Parameters.ParamByName('excepcion').Value := laexcepcion;
Parameters.ParamByName('Reordenar').Value := Parareordenar;

ahi esta con solo una excepcion, pero si quiere agregar 3 en total?

Bye :p

ecfisa 16-09-2014 18:17:41

Hola Edwardfeliz.
Cita:

Empezado por Edwardfeliz (Mensaje 481550)
...
ahi esta con solo una excepcion, pero si quiere agregar 3 en total?

Código SQL [-]
... (SUBLINEA_PRODUCTO <> :EXCEPCION1) AND (OTRO_CAMPO1 <> :EXCEPCION2)
AND (OTRO_CAMPO2 <> :EXCEPCION3) ...

Saludos :)

Edwardfeliz 16-09-2014 20:48:43

Cita:

Empezado por ecfisa (Mensaje 481583)
Hola Edwardfeliz.


Código SQL [-]... (SUBLINEA_PRODUCTO <> :EXCEPCION1) AND (OTRO_CAMPO1 <> :EXCEPCION2) AND (OTRO_CAMPO2 <> :EXCEPCION3) ...


Saludos :)

.-. pense con la logica gramatical O.O, creía que no se pudia utilizar el and mas de una vez XD.

Todo resuelto, Gracias!
Saludos ;)


La franja horaria es GMT +2. Ahora son las 20:12:52.

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