Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   hacer una tabla de pedidos (https://www.clubdelphi.com/foros/showthread.php?t=71943)

sergioperez 19-01-2011 20:44:21

hacer una tabla de pedidos
 
Hola necesito hacer una tabla de pedidos a partir de otra ingredientesdiarios.
les voy a poner la tabla que tengo hecho y la que quiero hacer.
La tabla que tengo hecho es ingredientesdiarios.db (en mi formulario se llama Table2) y tiene los siguientes campos:

FechaMenu Dia Nombre Cantidad Unidad Clasificacion
1017012011 Lunes Pollo 20 k Carnes
1017012011 Martes Azucar 10 k Abarrotes
1017012011 Martes Pollo 10 k Carnes
1017012011 Miercoles Avena 3 C Abarrotes
1017012011 Miercoles Azucar 10 k Abarrotes
170121012011 Viernes Pollo 25 k Carnes


y la tabla que quiero llenar o hacer apartir de esto es pedido (en mi formulario es Table1):

Proveedor Descripcion Unidad CantidadP CantidadS FechaE FechaS
Carnes Pollo k 30 1017012011
Abarrotes Azucar k 20 1017012011
Abarrotes Avena C 3 1017012011

segun yo lo para lograr hacerlo hice un codigo, pero ya lo cheque poco a poco y el error esta en que en el segundo while mi table2 llega al final y ya no puede regresar al primer while, chequen mi codigo por favor es este:



Código Delphi [-]
var
a, b, c, d, e, f:String;
cant: Integer;
begin
{si lo q se captura ya esta guardado en pedido no debe hacer nada}
if (Table1.Locate('FechaE', Edit1.Text, [])) then
begin
ShowMessage('Ya existe el pedido de esa fecha');
end
else
{si lo q se captura no se ha pedido}
begin
ShowMessage('espera unos segundos');
   Table2.First;
   table2.Edit;
  While Not Table2.Eof do
  begin
    Cant:=0;
    Table2.Edit;
    DataSource2.DataSet.Edit;
    begin
    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;
    LABEL6.Caption:=a+c;
    while Not table2.Eof  do
    begin
    showmessage('segundo while');
    DataSource2.DataSet.Edit;
      if (a=Table2.FieldValues['FechaMenu'])and (c=Table2.FieldValues['Nombre']) then
      begin
      showmessage('probando en el if');
      cant:= cant + Table2.FieldValues['Cantidad'];
      end;
      Table2.Next;
    end; {fin del while 2}
    if not(Table1.Locate('Descripcion',c, [])) then
      begin
      table1.Append;
      Table1.Edit;
      Table1.FieldValues['Proveedor']:=f;
      Table1.FieldValues['Descripcion']:=c;
      Table1.FieldValues['Unidad']:=e;
      Table1.FieldValues['CantidadP']:=cant;
      Table1.FieldValues['FechaE']:=a;
      end;
    Table1.Post;
    Table2.Next;
  //end;{fin del if que comprueba lo que tengo en la primera posicion es = a la fecha}
  end; {fin del while}
Table2.Post;
end;{fin del else}
end; {fin del metodo del boton}
espero me hayan entendido y me ayuden por favor.

sergioperez 19-01-2011 20:50:26

hacer una tabla de pedidos
 
Hola necesito hacer una tabla de pedidos a partir de otra ingredientesdiarios.
les voy a poner la tabla que tengo hecho y la que quiero hacer.
La tabla que tengo hecho es ingredientesdiarios.db (en mi formulario se llama Table2) y tiene los siguientes campos:

FechaMenu Dia Nombre Cantidad Unidad Clasificacion
1017012011 Lunes Pollo 20 k Carnes
1017012011 Martes Azucar 10 k Abarrotes
1017012011 Martes Pollo 10 k Carnes
1017012011 Miercoles Avena 3 C Abarrotes
1017012011 Miercoles Azucar 10 k Abarrotes
170121012011 Viernes Pollo 25 k Carnes


y la tabla que quiero llenar o hacer apartir de esto es pedido (en mi formulario es Table1):

Proveedor Descripcion Unidad CantidadP CantidadS FechaE FechaS
Carnes Pollo k 30 1017012011
Abarrotes Azucar k 20 1017012011
Abarrotes Avena C 3 1017012011

segun yo lo para lograr hacerlo hice un codigo, pero ya lo cheque poco a poco y el error esta en que en el segundo while mi table2 llega al final y ya no puede regresar al primer while, chequen mi codigo por favor es este:



Código Delphi [-]var a, b, c, d, e, f:String; cant: Integer; begin {si lo q se captura ya esta guardado en pedido no debe hacer nada} if (Table1.Locate('FechaE', Edit1.Text, [])) then begin ShowMessage('Ya existe el pedido de esa fecha'); end else {si lo q se captura no se ha pedido} begin ShowMessage('espera unos segundos'); Table2.First; table2.Edit; While Not Table2.Eof do begin Cant:=0; Table2.Edit; DataSource2.DataSet.Edit; begin 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; LABEL6.Caption:=a+c; while Not table2.Eof do begin showmessage('segundo while'); DataSource2.DataSet.Edit; if (a=Table2.FieldValues['FechaMenu'])and (c=Table2.FieldValues['Nombre']) then begin showmessage('probando en el if'); cant:= cant + Table2.FieldValues['Cantidad']; end; Table2.Next; end; {fin del while 2} if not(Table1.Locate('Descripcion',c, [])) then begin table1.Append; Table1.Edit; Table1.FieldValues['Proveedor']:=f; Table1.FieldValues['Descripcion']:=c; Table1.FieldValues['Unidad']:=e; Table1.FieldValues['CantidadP']:=cant; Table1.FieldValues['FechaE']:=a; end; Table1.Post; Table2.Next; //end;{fin del if que comprueba lo que tengo en la primera posicion es = a la fecha} end; {fin del while} Table2.Post; end;{fin del else} end; {fin del metodo del boton}

espero me hayan entendido y me ayuden por favor.

Aleca 19-01-2011 21:09:33

no se entiende nada :confused:.

BlueSteel 19-01-2011 21:14:22

El duplicar un hilo no ayudará a que te respondan más rápido..

Favor lee la guia de estilo

Salu2:p:D

Casimiro Noteví 19-01-2011 22:24:41

Hola, sergioperez, bienvenido a clubdelphi, por favor, lee nuestra guía de estilo, son una serie de normás básicas, entre ellas está el no repetir hilos. Gracias por tu colaboración.

Aleca 20-01-2011 00:35:20

:mad: anulado no se que paso, lo vuelvo a poner

Aleca 20-01-2011 01:03:20

:confused::confused::confused:
Para que haces un edit de la tabla2 si solo tenes que llenar la tabla1.

ppalmamichi 20-01-2011 01:59:38

podrias ser mas explicito?, no es necesario poner en modo de edicion una tablas si solo vas a leer datos, ni tampo es necesario utilizar variables si puedes usar los campos del dataset directamente.

sergioperez 20-01-2011 18:13:46

hola disculpen por repetir los hilos, es que soy nuevo en el foro y no se como se trabaja en el foro, pero ya se como solucionar el problema, necesito controlar los indices de los renglones de mi tabla(no las columnas).
pero no se como o en donde se guardan los indices de los renglones.

sergioperez 20-01-2011 18:18:13

Bueno El Problema Esta Es Que No Se Como Sumar Los Productos Iguales De Mi Tabla Ya Que Los Manejo Por Fechas Y Pues Si No Es Esa Fecha No Me Lo Debe Sumar Todo Esto Me Lo Debe Poner En Una Tabla Diferente En Donde Voya Realisar Los Pedidos Por Prooverdor
Gracias Por Su Ayuda


La franja horaria es GMT +2. Ahora son las 13:32:37.

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