Error al borra la ultima posición de un browse

Post Reply
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Error al borra la ultima posición de un browse

Post by Elias Torres »

Antonio, se me ha dado un caso un poco extraño,te cuento...

Yo tengo este trozo de código
.....

DEFINE dialog odlg8 resource "Menu_clientes"

redefine LISTBOX oBrw;
FIELDS tabla_ventas->nombre,tabla_ventas->fecha;
HEADERS "Nombre","Fecha" ID 300 OF oDlg8

ACTIVATE dialog odlg8
.......


Esto es un simple listbox en el que cada linea es un registro de una tabla. El problema que he visto es que, supongamos que en el listbox hay 3 lineas correspondientes a 3 registros distintos de la tabla_venta. Si se borra el primero o el segundo al refrescar el grid todo es correcto. En cambio si en vez de borrar el primero o el segundo borro directamente el ultimo no refresca bien el listbox. Solo ocurre cuando en el listbox tienes mas de una linea y quieres borrar la ultima solamente... Da la sensación de que no gestiona bien el final de la tabla...nose.



Si tienes alguna solución para evitar este problema te lo agradecería. Este error no influye para nada en la ejecución de la aplicación solo que a simple vista queda mal ya que no repinta bien el listbox...


Saludos

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elias,

Prueba a usar SET DELETED ON
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Antonio, ya uso el set deleted on... Creo que no es problema de mi aplicación puesto que para los demas casos borra y repinta correctamente el listbox. Pienso que pueda ser que la clase listbox no gestiona bien este tema de repintado cuando se da el caso que te he comentado. Me gustaría que lo probaras, si es posible, para que me confirmes si es algun tipo de problema de la clase o si por el contrario soy yo el que no lo está haciendo bien. Aunque como ya te he dicho para los demas casos funciona correctamente...


Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Elías,

Vamos a probarlo en seguida,

Has probado a hacer oBrowse:Refresh() despues de borrar el registro para que se repinte el browse ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Antonio, efectivamente le hago un refresh() y funciona siempre menos en el caso que te comento....


Saludos.

Elías Torres.
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Prueba con el siguiente código.

Code: Select all

    IF !(cAlias)->(Eof()) //aqui el alias que uses
         oBrw:GoUp()
    ENDIF
    oBrw:Refresh()
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Elias Torres
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Post by Elias Torres »

Gracias Biel!!!

Ahora si refresca correctamente para todos _.....

Saludos.

Elías Torres.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Gracias Biel :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Biel EA6DD
Posts: 680
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca
Contact:

Post by Biel EA6DD »

Nada que no se puede pagar con una caña(CruzCampo). :wink:
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
Post Reply