Borrar ultimo registro en TCBrowse

Post Reply
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Borrar ultimo registro en TCBrowse

Post by miarcod »

Hola, seguro que es una tontería pero no consiguo programarlo

Lo que me pasa es que al borrar el último registro de un browse, el pintado de los registros que se muestran en la pantalla no lo hace bien, esto solo sucede si el browse no esta completo.

El codigo que utilizo es este

Code: Select all

#include "FiveWin.ch"
#include "TcBrowse.ch"

#define FICHERO    "PRUEBA.DBF"
#define INDICE     "PRUEBA.CDX"

//-----------------------------------------------------------------------//
function Prueba()
FIELD NOMBRE
Local oDlg, oBrw, oDbf, oCol
CrearDbf()

SELECT PRUEBA
DATABASE oDbf

DEFINE DIALOG oDlg FROM 0,0 TO 500,400 PIXEL
@ 10,10  BROWSE oBrw PIXEL SIZE 160,240 OF oDlg ;
         ON DBLCLICK Borrar(oDbf, oBrw)

oDbf:GoTop()
oBrw:SetoDbf( oDbf )
oBrw:cAlias := ""		// PARA QUE NO DE ERROR

ADD COLUMN TO BROWSE oBrw  DATA oBrw:oDbf:NOMBRE;
     HEADER "Nombre"
ACTIVATE DIALOG oDlg CENTER
return nil

//-----------------------------------------------------------------------//
STATIC FUNCTION CrearDbf()
FIELD NOMBRE
Local aDbf, i, n

aDbf     := {}
AADD( aDbf, { "NOMBRE", "C", 40, 0 } )
DBCREATE( FICHERO, aDbf)
dbcloseall()
use PRUEBA
pack
INDEX ON NOMBRE TAG "PRUEBAS1" TO (INDICE)
n := 20
MsgGet("Registros", "Cuantos agregamos?", @n)
for i = 1 to n
   APPEND BLANK
   REPLACE NOMBRE WITH  "ZONA" + ALLTRIM(STR(i))
next i
RETURN NIL

//-----------------------------------------------------------------------//
STATIC FUNCTION Borrar(oDbf, oBrw)
If MsgYesNo("Borrar registro")
   oDbf:Delete()
   oBrw:Refresh()
EndIf
return nil
Para borrar el registro se usa doble click

Gracias
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Post by miarcod »

¿Es que no tiene solución?
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

No tiene solucion, mas que la chapucera, que consiste en hacer un :

oBrw:Gotop()
oBrw:GoBottom()

antes el oBrw:Refresh()

para evitar que se "descuadre" el repintado

Ese es un bug que tienen TODOS los browses de FW
Saludos
R.F.
miarcod
Posts: 172
Joined: Tue Oct 11, 2005 2:17 pm

Post by miarcod »

Gracias voy a probar

Un saludo
Post Reply