Error al borra la ultima posición de un browse

Error al borra la ultima posición de un browse

Postby Elias Torres » Wed Apr 18, 2007 4:03 pm

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.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Wed Apr 18, 2007 6:09 pm

Elias,

Prueba a usar SET DELETED ON
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Elias Torres » Thu Apr 19, 2007 8:10 am

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.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Thu Apr 19, 2007 9:36 am

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
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Elias Torres » Thu Apr 19, 2007 10:32 am

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


Saludos.

Elías Torres.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Biel EA6DD » Thu Apr 19, 2007 10:59 am

Prueba con el siguiente código.
Code: Select all  Expand view  RUN
    IF !(cAlias)->(Eof()) //aqui el alias que uses
         oBrw:GoUp()
    ENDIF
    oBrw:Refresh()
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Postby Elias Torres » Thu Apr 19, 2007 11:27 am

Gracias Biel!!!

Ahora si refresca correctamente para todos los casos.....

Saludos.

Elías Torres.
Elias Torres
 
Posts: 233
Joined: Wed Aug 09, 2006 3:07 pm

Postby Antonio Linares » Thu Apr 19, 2007 11:44 am

Gracias Biel :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Biel EA6DD » Thu Apr 19, 2007 5:35 pm

Nada que no se puede pagar con una caña(CruzCampo). :wink:
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca


Return to FiveWin para Pocket PC

Who is online

Users browsing this forum: No registered users and 1 guest