Te envio el programa y tendo el siguiente problema
Defino una ventana principal en donde coloco los botones de la ventana
Cuando llaman al boton clientes, muestro del fichero de clientes
Tendo un boton de busqueda para realizar un filtro sobre el fichero. El problema que me ocurre es que cuando el programa vuelve hacia atras no me refresca la lista con los clientes que yo he seleccionado sino que la lista sigue igual. Muevo la lista con el raton y automaticamente me refresca los clientes.
*************************************************************
* DEFINE FONT oFont NAME "Arial" SIZE 0, -10
#include "FWCE.ch"
function Main()
local oWnd, oBmp
* MsgInfo(SerialNumber()) * Numero de serie del documento para que no se copia el software de la PALM
ctext = space(20)
Config()
abrir_ficheros()
DEFINE BITMAP oBmp FILE CurDir() + "\bmp\inicio.bmp"
DEFINE WINDOW oWnd TITLE "MJCC"
@ 25, 20 BTNBMP FILE CurDir() + "\bmp\cliente.bmp" SIZE 60, 60 ACTION BROWSE_CLIENTES(oWnd,"cliente",0)
@ 25, 90 BTNBMP FILE CurDir() + "\bmp\articulo.bmp" SIZE 60, 60
@ 25, 160 BTNBMP FILE CurDir() + "\bmp\agenda.bmp" SIZE 60, 60
@ 96, 20 BTNBMP FILE CurDir() + "\bmp\planning.bmp" SIZE 60, 60
@ 96, 90 BTNBMP FILE CurDir() + "\bmp\albav.bmp" SIZE 60, 60
@ 96, 160 BTNBMP FILE CurDir() + "\bmp\pedido.bmp" SIZE 60, 60
@ 171, 20 BTNBMP FILE CurDir() + "\bmp\salir.bmp" SIZE 60, 60
@ 171, 90 BTNBMP FILE CurDir() + "\bmp\salir.bmp" SIZE 60, 60 ACTION indexa_ficheros()
@ 171, 160 BTNBMP FILE CurDir() + "\bmp\salir.bmp" SIZE 60, 60 ACTION IF( MsgYesNo( '¿ Salir del sistema ?', "Gestion" ), oWnd:End(), )
ACTIVATE WINDOW oWnd ;
ON PAINT oWnd:SayBitmap( 0, 0, oBmp ) ;
ON CLICK MsgInfo("MJCC" + CHR(13) + "Bembibre" + chr(13) +;
"La Coruña"+ chr(13)+;
"Telefono 902234568", "Gestión")
DbCloseAll()
oBmp:End()
return 0
*************************************************************************
* Muestra un Browser de la ficha del cliente para seleccionar un cliente
**************************************************************************
FUNCTION browse_clientes(oWnd,sel_dbf,estado)
SELECT (sel_dbf)
SET FILTER TO
SET ORDER TO 1
DEFINE BITMAP oBmp FILE CurDir() + "\bmp\menus.bmp"
DEFINE DIALOG oDlg TITLE 'Gestion de clientes' SIZE 230,240 OF oWnd
@ 1,0 LISTBOX oBrw FIELDS nombrec,telefono COLSIZES 135,13 HEADERS "Nombre Comercial","Teléfono" SIZE 116,114
*ON DBLCLICK Eligefichacli();
* Botones superiores de acceso al sistema
@ 0, 0 BTNBMP FILE CurDir() + "\bmp\nuevo.bmp" SIZE 18, 15
@ 0, 18 BTNBMP FILE CurDir() + "\bmp\buscar.bmp" SIZE 18, 15 ACTION buscar_columna(odlg,"CLIENTE",oWnd)
@ 0, 36 BTNBMP FILE CurDir() + "\bmp\imprimir.bmp" SIZE 18, 15
@ 0, 54 BTNBMP FILE CurDir() + "\bmp\delete.bmp" SIZE 18, 15
@ 0, 98 BTNBMP FILE CurDir() + "\bmp\cerrar.bmp" SIZE 18, 15 ACTION odlg:End()
ACTIVATE DIALOG oDlg CENTERED ON PAINT odlg:SayBitmap( 0, 0, oBmp )
RETURN 0
**************************************************************************
* Pantalla de busqueda de datos sea de clientes o de proveedores
**************************************************************************
FUNCTION buscar_columna(odlg,dbf_buscar,oWnd)
DEFINE DIALOG ofind TITLE 'Buscar nombre comercial'SIZE 220,22 OF odlg
@ 0, 0 GET cText SIZE 98, 12
@ 0, 98 BTNBMP FILE CurDir() + "\bmp\bf2.bmp" SIZE 14, 12 ;
ACTION(iif(.NOT. EMPTY(ctext),buscar(ctext,dbf_buscar,ofind,odlg,oWnd),msginfo("Debe teclear un valor","Gestión")))
ACTIVATE DIALOG ofind CENTERED ON PAINT ofind:SayBitmap( 0, 0, oBmp )
* Refresco de pantalla
odlg:refresh()
RETURN 0
*************************************************************************
* Busqueda de datos en un fichero por nombre
**************************************************************************
FUNCTION buscar(ctext,dbf_buscar,ofind,odlg,oWnd)
IF UPPER(ALLTRIM(dbf_buscar)) = "CLIENTE"
SELECT cliente
ctext = UPPER(ALLTRIM(ctext))
SET FILTER TO ctext$cliente->nombrec
GO TOP
ofind:end()
ENDIF
RETURN 0
*************************************************************************
* Indexa los ficheros de la aplicacion por los campos que a mi me interesan
**************************************************************************
Function indexa_ficheros ()
Request DbfCdx
Request DbfFpt
RddSetDefault ('DbfCdx')
Request Hb_Lang_PLWIN
Request Hb_CodePage_PLWIN
* Clientes
Index On nombrec Tag inombrec TO ( CurDir() + "\dat\cliente.cdx" )
Index On codigo Tag icodigo TO ( CurDir() + "\dat\cliente.cdx" )
Return 0
**********************************************************
* Funcion de inicio del sistema para gestionar los SETS
**********************************************************
STATIC FUNCTION Config()
HB_LANGSELECT( "ESWIN" )
SET DELETED ON
SET DATE TO ITALIAN
SET SOFTSEEK ON
SET CENTURY ON
SET EPOCH TO 2000
Hb_LangSelect ('PL')
Hb_SetCodePage ('PLWIN')
RETU 0
*********************************************************
* Abrir ficheros de datos
**********************************************************
FUNCTION abrir_ficheros
IF .NOT. USED("CLIENTE")
USE ( CurDir() + "\dat\cliente.dbf" ) NEW
ENDIF
* Fichero temporal de datos de clientes
*DbCreate(CurDir() + "\tmp\result.dbf",{{ "codigo", "n", 10, 0 },{ "nombrec", "c", 45, 0 },{ "telefono", "c", 20, 0 }})
*USE ( CurDir() + "\tmp\result.dbf" ) NEW
*Index On nombrec Tag inombrec TO ( CurDir() + "\tmp\result.cdx" )
*Index On nombrec Tag icodigo TO ( CurDir() + "\tmp\result.cdx" )
RETURN 0