checa esto:
folio=NewFolio
que es el filtro que usas para las tablas de detalle de cada papeleta (notas)
Al usar la primera papeleta supongamos que newFolio es igual a 1, ok?, entonces el grid solo mostrara las notas del folio 1, hasta aqui ok. Pero que pasa cuando abrimos una nueva papeleta, NewFolio ahora vale 2, por ejemplo, y el de esta nueva ventana muestra solo las papeletas del folio 2. Todo bien hasta aqui...ahora volvamos a la primera papeleta...
Sorpresa! Como la tabla filtra por NewFolio que en este momento vale 2, adivina que notas te muestra e inserta?? las de la última papeleta!!!
Solución:
Quick & Dirty:
folio=Caption
(veo que usas caption para guardar el folio)
MAs Decente:
Crea una propiedad que llamaremos Folio para la frmNew y un método como esto:
Código Delphi
[-]
Procedure frmNew.AsignaFolio(unFolio:Integer);
Begin
Folio := unFolio; Caption := Format('Papeleta num %d',[NewFolio]); end;
Tu código para crear las notas quedaria así:
Código Delphi
[-]
frmNew.tblDetalles.Insert;
frmNew.tblDetallesFOLIO.AsINTEGER:=Folio; frmNew.tblDetallesOPERADOR.Value:=Operador;
frmNew.tblDetallesNOTA.AsString:=NotasMemo.Lines.Text;
frmNew.tblDetallesHORA.Value:=Now;
frmNew.tblDetallesDIA.Value:=Now;
frmNew.tblDetalles.Post;
En tu form principal harias esto:
Código Delphi
[-]
frmNew:=TfrmNew.Create(Self);
frmNew.AsignaFolio(NewFolio); frmNew.Show;
Con esto debe funcionar, ahora cuando creas una papeleta ésta guarda su propio folio devuelto por NewFolio y filtro de la tabla muestra y añade solo notas correspondientes.
Ojala te funcione