Navegación en registros
Pues nuevamente acudo a ti para ver si me puedes ayudar con un problema que no me deja avanzar...
Tengo una pantalla principal en la que muestro en un grid unos registros (a los que llamo paquetes), y el botón VER, que al presionarlo abre la pantalla "Ver Paquetes" y muestra los datos completos del paquete que fue seleccionado. En la pantalla "Ver Paquetes" tengo 4 botones: inicio, atrás, siguiente, ultimo; de manera que me pueda desplazar por los registros según se requiera.
El problema está en que cuando termina de recorrer los registros no valida si llega al final o al inicio de los registros, pero foxpro si me manda el mensaje: "El registro está fuera del intervalo".
Este código tengo en el botón "siguiente":
varvali=thisform.lblPosi.caption
nvavar=(VAL(varvali)+ 1)
GOTO nvavar in paquetes
IF NOT EOF()
thisform.lbltxtVEstatusActual.caption=paquetes.estatus
thisform.txtVAlmacenOrigen.value=paquetes.almacenorigen
thisform.lblPosi.caption=STR(nvavar)
ELSE
MessageBox("Terminaron los registros.")
thisform.btnVSiguiente.enabled=.f.
ENDIF
Este código tengo en el botón "atras":
varvali=thisform.lblPosi.caption
nvavar=(VAL(varvali)- 1)
GOTO nvavar in paquetes
IF NOT BOF()
thisform.lbltxtVEstatusActual.caption=paquetes.estatus
thisform.txtVAlmacenOrigen.value=paquetes.almacenorigen
thisform.lblPosi.caption=STR(nvavar)
ELSE
MessageBox("Inicio de registros.")
thisform.btnVAnterior.enabled=.f.
Endif
Te comento que uso GOTO porque cuando usaba SKIP no funcionaba como yo quería. Me podrás orientar en como validar para que GOTO no siga buscando el registro siguiente cuando ya legó al inicio o al final
Tengo una pantalla principal en la que muestro en un grid unos registros (a los que llamo paquetes), y el botón VER, que al presionarlo abre la pantalla "Ver Paquetes" y muestra los datos completos del paquete que fue seleccionado. En la pantalla "Ver Paquetes" tengo 4 botones: inicio, atrás, siguiente, ultimo; de manera que me pueda desplazar por los registros según se requiera.
El problema está en que cuando termina de recorrer los registros no valida si llega al final o al inicio de los registros, pero foxpro si me manda el mensaje: "El registro está fuera del intervalo".
Este código tengo en el botón "siguiente":
varvali=thisform.lblPosi.caption
nvavar=(VAL(varvali)+ 1)
GOTO nvavar in paquetes
IF NOT EOF()
thisform.lbltxtVEstatusActual.caption=paquetes.estatus
thisform.txtVAlmacenOrigen.value=paquetes.almacenorigen
thisform.lblPosi.caption=STR(nvavar)
ELSE
MessageBox("Terminaron los registros.")
thisform.btnVSiguiente.enabled=.f.
ENDIF
Este código tengo en el botón "atras":
varvali=thisform.lblPosi.caption
nvavar=(VAL(varvali)- 1)
GOTO nvavar in paquetes
IF NOT BOF()
thisform.lbltxtVEstatusActual.caption=paquetes.estatus
thisform.txtVAlmacenOrigen.value=paquetes.almacenorigen
thisform.lblPosi.caption=STR(nvavar)
ELSE
MessageBox("Inicio de registros.")
thisform.btnVAnterior.enabled=.f.
Endif
Te comento que uso GOTO porque cuando usaba SKIP no funcionaba como yo quería. Me podrás orientar en como validar para que GOTO no siga buscando el registro siguiente cuando ya legó al inicio o al final
Respuesta de tigrefox
1