Busqueda incremental campo CUIT, formato text 99-9999999-9

53 views
Skip to first unread message

dar...@gmail.com

unread,
Dec 5, 2025, 10:26:04 AM (10 days ago) Dec 5
to Comunidad de Visual Foxpro en Español
tengo este codigo que no consigo que refresque el grid, he probado distintos cambios, alguna idea?

LOCAL lc, lnRecno

* Normalizo para comparar
lc = STRTRAN(cuit, "-", "")

* Guardo el registro actual
lnRecno = RECNO()

* Comparación corregida (siempre sin guiones)
IF STRTRAN(cuit,"-","") >= lc

    IF NOT BOF()
        SKIP -1
    ENDIF

    * Si nos pasamos, volver al registro original
    IF STRTRAN(cuit,"-","") < lc
        IF lnRecno <= RECCOUNT()
            GO lnRecno
        ELSE
            GO BOTTOM
        ENDIF
        RETURN
    ENDIF

    * Búsqueda con índice
    IF NOT EMPTY(ORDER())
        SEEK lc
    ELSE
        GO TOP
        LOCATE REST FOR ;
            STRTRAN(cuit,"-","") = lc ;
            WHILE STRTRAN(cuit,"-","") <= lc ;
            NOOPTIMIZE
    ENDIF

ENDIF

* Si el registro cambió, ajustar foco
IF lnRecno # RECNO()
LOCAL lcSource
DOEVENTS
lcSource = THISFORM.Grid1.RecordSource
THISFORM.Grid1.RecordSource = ""
THISFORM.Grid1.RecordSource = lcSource
ENDIF

NODEFAULT
RETURN

integral

unread,
Dec 5, 2025, 10:44:10 AM (10 days ago) Dec 5
to Comunidad de Visual Foxpro en Español
Que tal Colega

Buenos dias

Seguir los siguientes pasos para actualizar el Grid

ACTUALIZAR_GRID_DESPUES_DEL_INSERT (1).jpg

Zarlu

unread,
Dec 5, 2025, 10:45:36 AM (10 days ago) Dec 5
to Comunidad de Visual Foxpro en Español
Buenos días  dardapu!

No veo ningún refresh al GRID. 
Y también prueba dándole el foco

Refrescar implica que se ubique en el registro deseado?
Creo que tomar el RECNO() no es lo ideal. Sería mejor con el ID del registro 

Suerte
zarlu
Chetumal, Quintana Roo, México
Reply all
Reply to author
Forward
0 new messages