Ver Mensaje Individual
  #9  
Antiguo 05-08-2005
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Reputación: 19
david duarte Va por buen camino
bueno, el problema no se porque se dio, el chiste es que lo puse en otra parte del codigo y ya no me marco el error.

mi proyecto hace lo siguiente:

son seguimiento de solicitudes (dar de alta una solcitud, y capturar los resultados de los analisis)

Primero: en cualquier computadora en donde corre el "programa cliente" doy de alta una solicitud(usuario) con el folio 1, entonces el analista que es el que va a capturar los resultados de los analisis, captura los resultados en la computadora que tiene asignada(en el laboratorio), abre la solicitud con ese folio y le muestra el numero de analisis que tiene que capturar y los captura.

p.e. el alta de la solicitud de analisis tiene 3 analisis iguales, para esto asigno un stringgrid donde muestra por medio de renglones el numero de analisis a capturar o realizar( cada renglon representa un analisis)

utilizo un stringgrid.cellselect para saber cual analisis va a capturar( esto es porque en la bd tengo tambien un registro por cada analisis), asigno el numero de renglon a una variable, y se supone que si le doy clic en el primer renglon de stringgrid, le capturo algunos resultados estos me los debe de guardar en el primer registro de la bd; si le dos clic en el segundo, me los debe de guardar en el 2o reg, y asi consecutivamente. y al mismo tiempo me los va mostrando en el stringgrid y me los muestra bien, hasta ahi todo va bien(supuestamente), pero cuando cierro la aplicacion y la vuelvo a abrir, me muestra los resultados de los analisis pero todos con los mismos resultados, a pesar de que yo nada mas capture uno, p.e. si son 4 analisis y yo capture el primero, en los demas registros me muestra los mismos datos que el primero.

siento que algo anda mal al posicionarme en el registro.

primero tengo un ciclo para buscar el analisis, cuando encuentro el analisis o registro, lo edito y despues hago las asignaciones pertinentes.

Pongo el ciclo for en el cual hago eso

for encontrar := 0 to modulotablas.resul_textil.RecordCount do
begin
if modulotablas.resul_textil.FieldByName('Labfolio').value = edit1.Text then
begin
inc(conta); //incremento el contador, contador siempre empieza en 0
if conta < strtoint (label3.Caption) then //label 3 es que tiene el renglon que le di clic
modulotablas.resul_textil.Next //si es menor paso al siguiente registro
else
Begin
if ((modulotablas.resul_textil.FieldByName('LabFolio').value = edit1.text) and (conta = strtoint(label3.Caption)))then
de lo contrario, si es el registro que quiero y el contador es igual a el renglon
//if conta = strtoint(label3.Caption) then
Begin
modulotablas.resul_textil.Edit; <----- se supone que aqui edito el registro actual, si no mal me equivoco
break;
end;

//break;
end;
end //if modulotablas.resul_textil.FieldByName('Labfolio').value = edit1.Text then
else
modulotablas.resul_textil.Next;
end; //for encontrar := 0 to modulotablas.resul_textil.RecordCount do


en estre otro ciclo que sigue a continuacion es donde hago la asignacion
en este caso en el stringgrrid2 guardo los valores que se modificaron

for cont :=0 to stringgrid2.RowCount-1 do
begin
if ((bandpos = 0) and (regnuevo = 'S')) then
Begin
if stringgrid2.Cells[2,cont] <> '' then <-----si contiene datos le asigno los resultados que se capturaron ----->
Begin
modulotablas.resul_textil.FieldByName(stringgrid2.cells[1,cont]).value := stringgrid2.Cells[2,cont];
modulotablas.resul_textil.ApplyUpdates(-1); <----- aplico applyudpate
end;
<----- si esta vacio, quiere decir que no capturaron ningun dato --->
end
else
Begin
if ((stringgrid2.Cells[2,cont] <> '') and (bandpos =0) and (regnuevo = 'N')) then
Begin
if (stringgrid2.Cells[2,cont] <> '') then
Begin
modulotablas.resul_textil.FieldByName(stringgrid2.Cells[1,conta]).value := stringgrid2.Cells[2,cont];
modulotablas.resul_textil.ApplyUpdates(-1);
modulotablas.resul_textil.Refresh;
end;
end; //if ((stringgrid2.Cells[2,conta] <> '') and (bandpos =0) and (regnuevo = 'N')) then
end;
end; //for conta :=0 to stringgrid2.RowCount-2 do


espero que hayan entendido y espero su respuesta, porque la verdad ya me quebrè el cerebro, pero no el encuentro el error

Gracias
Como te sientes hoy??
Responder Con Cita