Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-01-2011
gri gri is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 10
Poder: 0
gri Va por buen camino
while anidado para leer una tabla

Hola necesito leer una tabla y encontrar los productos que se llaman igual y que tienen fechas iguales y sumar las cantidades de estos productos , yenviar sus datos en otra tabla.
con el codigo que tengo lo hace una vez(los datos correctos) y lo escribe en la otra tabla, pero necesito que lo haga otra vez.

utilice 2 while uno dentro de otro. pero el de adentro llega al final, y como es el mismo no puedo regresar al primer while y necesito regresar al primer while.
el codigo es mas o menos asi:
(Table2 es donde revisa y obtiene los datos y table1 debe escribirlos despues con todo y calculo)

Código Delphi [-]
while Not Table2.Eof do
begin
  Cant:=0;
  Table2.Edit;
    DataSource2.DataSet.Edit;
    a:=Table2.FieldValues['FechaMenu'];
    b:=Table2.FieldValues['Dia'];
    c:=Table2.FieldValues['Nombre'];
    d:=Table2.FieldValues['Cantidad'];
    e:=Table2.FieldValues['Unidad'];
    f:=Table2.FieldValues['Clasificacion'];
    table2.First;//para comparar las variables con cada registro de la tabla
    while Not table2.Eof  do
    begin
    DataSource2.DataSet.Edit;
      if (a=Table2.FieldValues['FechaMenu'])and (c=Table2.FieldValues['Nombre']) then
      begin
      cant:= cant + Table2.FieldValues['Cantidad'];
      end;
      Table2.Edit;
      Table2.Next;
    end; {fin del while 2}

    if not(Table1.Locate('Descripcion',c, [])) then
      begin
      table1.Append;
      Table1.Edit;
      Table2.Edit;
      Table1.FieldValues['Proveedor']:=f;
      Table1.FieldValues['Descripcion']:=c;
      Table1.FieldValues['Unidad']:=e;
      Table1.FieldValues['CantidadP']:=cant;
      Table1.FieldValues['FechaE']:=a;
      //Table2.First;// probando para ver si lo hace 2 veces
      end;
    Table1.Edit;
    Table1.Post;
   Table2.Next;//AKI YA NO PUEDE LLEGAR POR QUE YA LLEGO AL EOF DE MI TABLE 2
  //end;{fin del if que comprueba lo que tengo en la primera posicion es = a la fecha}
 end; {fin del while}

Ayudenme
Responder Con Cita
  #2  
Antiguo 21-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo.
Tomas los datos de la tabla1 y los quieres guardar en la tabla2 ?.
Si es asi por que editas las dos tablas?
Por que recorres con el while solo 1 de las dos?.
Como dije, seguro no entiendo la pregunta.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 21-01-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Además hay cosas extrañas en ese código, deberás expresarte mejor para que entendamos lo que quieres hacer.
Responder Con Cita
  #4  
Antiguo 21-01-2011
gri gri is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 10
Poder: 0
gri Va por buen camino
Hola

table2 recorro para obtener lo datos y calcular.(es otra tabla de mi BD)
table 1 es para llenar ya con los tatos calculados de mi table2.

SON TABLA DIFERENTES.

por que edito las dos tablas, la verdad mi makina esta loca lo hice por que sino de plano no hacia nada.

por que recorro una tabla x q no todo lo que obtengo quiero pasar en la otra tabla.
Responder Con Cita
  #5  
Antiguo 21-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
No entiendo.
Trata de explicarte algo mejor.
La verdad yo no entiendo, por lo menos viendo el codigo.
No te preocupes en exponer todo con detalle, no cobran por letra.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #6  
Antiguo 21-01-2011
gri gri is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 10
Poder: 0
gri Va por buen camino
me esfuerzo me esfuerzo, es q ya me llego la desesperacion, esoty con esto desde la semana pasada de verdad.
ok, voy a explicar la tabla que tengo Table2 (su nombre en mi BD es ingredientesdiarios.db) y es asi:
//esta es mi tabla llena
FechaMenu Dia Nombre Cantidad Unidad Clasificacion

1017012011 Lunes Pollo 20 K carnes
1017012011 Martes Avena 3 C Abarrotes
1017012011 jueves Pollo 35 K carnes
1017012011 Viernes Puerco 30 K carnes
1017012011 Viernes Avena 5 C carnes



la tabla que quiero llenar es Table1 (su nombre es pedidogral en mi BD) parra llenarla agarrando los datos de la tabla arriba si se fijan sus cantidades quiero sumar.

// asi debe quedar llenada

Proveedor Descripcion Unidad CantidadP CantidadS FechaE FechaS

carnes Pollo K 55 1017012011
Abarrotes Avena c 8 1017012011
carnes Puerco K 30 1017012011



me explique mejor??
Responder Con Cita
  #7  
Antiguo 21-01-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Entiendo.
Lo que me parece es que no puedes recorrer una tabla y sumar ciertos campos de esa manera.
Creo que lo optimo en esta situacion seria usar, por lo menos en el caso de la tabla 1, una sentencia sql y por lo tanto un query en vez de un table.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #8  
Antiguo 21-01-2011
gri gri is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 10
Poder: 0
gri Va por buen camino
Hola ya me di cuenta q no puedo por que ya lo intente de todas las formas q se me ocurre y namas no no kiere.

con consulta sql tambien tal vez lo he hecho mal, y como comente hace ratito, las ideas ya no me fluyen. ayudenme
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer un TXT e insertar en tabla de firebird ivantech Firebird e Interbase 13 01-09-2010 21:44:09
Cómo leer una imagen de una tabla en sql server... ronimaxh Varios 13 26-07-2010 17:40:46
Utilizar un DBGrid para leer de una tabla y escribir en otra taru MySQL 0 25-07-2006 18:31:06
Necesito crear un permiso para escribir pero no para leer federiconqn21 Conexión con bases de datos 5 07-07-2006 19:13:47


La franja horaria es GMT +2. Ahora son las 05:57:49.


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
Copyright 1996-2007 Club Delphi