AYUDA POR FAVOR. TODAVIA ESTOY APRENDIENTO

Post Reply
mjcc
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

AYUDA POR FAVOR. TODAVIA ESTOY APRENDIENTO

Post by mjcc »

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

Post by Antonio Linares »

Manuel,

Haz un ZIP con todos los ficheros de tu aplicación (PRGs, DBFs, etc) y lo alojas en www.hyperupload.com y publica aqui el link de descarga que se te proporciona en ese sitio. Gracias.
regards, saludos

Antonio Linares
www.fivetechsoft.com
mjcc
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Gracias

Post by mjcc »

http://hyperupload.com/download/0121804 ... k.zip.html
Lo haria con el conversor que teneis de borlan pero me cuesta mucho entenderlo.

muchisimas gracias.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Manuel,

El programa está quedando muy bien :)

Lo que te falta es repintar el browse haciendo oBrw:Refresh() despues de hacer la búsqueda.

Como estás haciendo un SET FILTER, preferiblemente haz un oBrw:GoTop() tambien ó en vez del oBrw:Refresh()
regards, saludos

Antonio Linares
www.fivetechsoft.com
mjcc
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

OK muchas gracias

Post by mjcc »

Dime algo sobre como puedo enviar los datos que generan los comerciales desde la Pokect al ordenador y viceversa, recuerda que todos los clientes hay que empezar pensando que son unos burros y practicamente tienes que hacer que solo pulsado un boton realice el proceso.

Gracias
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post by josevalle »

Hola:

Si los clientes pasan por la empresa puedes usar Activesync.

Si no los puedes enviar por email. Pero esto no se si éstá implementado.
Jose Valle
Bilbao
Spain
mjcc
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Como puedo recoger automaticamente los datos de la pokect

Post by mjcc »

Como puedo recoger automaticamente los datos de la pokect de la carpeta de la SD CAR y colocarlos automaticamente en el disco duro para su reproceso y viceversa, ya que despues tengo que volver a copiar a la pokect los clientes nuevos.

gracias.
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post by josevalle »

Sacando la sd de la pda y poniendola en el pc?
Jose Valle
Bilbao
Spain
mjcc
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

No tengo ni idea de lo que me dices

Post by mjcc »

Me lo puedes explicar por favor.
gracias.
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post by josevalle »

Yo tambien soy novato con las pda, solo he hecho una aplicación y muy simple.

De las 3 pda que he usado, en la Hp y en la Airys se puede sacar la tarjeta Sd y ponerla en el pc. Si el pc no tiene lector de tarjetas puedes ponerle uno, creo que son muy baratos.

La pda Symbol no tiene ( o no se puede sacar ) la Sd. Pero se pone en una cuna y se pueden copiar archivos de la pda al pc. Hay un mensaje en el foro sobre "Total Commander" pero yo los copio con copiar y pegar. La que está en el Pc sabe hacer estas cosas.
Jose Valle
Bilbao
Spain
mjcc
Posts: 139
Joined: Fri Apr 07, 2006 9:16 pm

Gracias por todo

Post by mjcc »

Gracias por todo.
User avatar
pymsoft
Posts: 383
Joined: Tue Oct 11, 2005 1:01 pm
Location: Savona - Italia
Contact:

Post by pymsoft »

Para mjcc:

Lei en el foro ingles de la utilidad cecopy para copiar datos del pc al pocket y viceversa


http://www.microsoft.com/downloads/deta ... laylang=en


espero te sirva, porque yo tambien pensaba ya a esta altura copiar los datos sacando la SD cada vez del pocket.

saludos
Pedro Gonzalez
User avatar
luis.santeliz
Posts: 47
Joined: Mon May 29, 2006 9:04 pm

Post by luis.santeliz »

:o Puedes tambien trabajar con ftp aqui te pongo un ejemplillo bien chulo que hice, tomado como base el que da fw en la carpeta sample:


Code: Select all

// FTP sample developed by Enrico Maria Giordano
// interfaz grafica: Luis Santeliz <luissanteliz@cantv.net>
// 20/8/2006

#include "Fwce.ch" 

// 
// File attributes 
// 

#define FILE_ATTRIBUTE_READONLY  1 
#define FILE_ATTRIBUTE_HIDDEN    2 
#define FILE_ATTRIBUTE_SYSTEM    4 
#define FILE_ATTRIBUTE_DIRECTORY 16 
#define FILE_ATTRIBUTE_ARCHIVE   32 
#define FILE_ATTRIBUTE_NORMAL    128 
#define FILE_ATTRIBUTE_TEMPORARY 256 


// 
// access types for InternetOpen() 
// 

#define INTERNET_OPEN_TYPE_PRECONFIG                    0   // use registry configuration 
#define INTERNET_OPEN_TYPE_DIRECT                       1   // direct to net 
#define INTERNET_OPEN_TYPE_PROXY                        3   // via named proxy 
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  4   // prevent using java/script/INS 


// 
// manifests 
// 

#define INTERNET_INVALID_PORT_NUMBER    0           // use the protocol-specific default 

#define INTERNET_DEFAULT_FTP_PORT       21          // default for FTP servers 
#define INTERNET_DEFAULT_GOPHER_PORT    70          //    "     " gopher " 
#define INTERNET_DEFAULT_HTTP_PORT      80          //    "     " HTTP   " 
#define INTERNET_DEFAULT_HTTPS_PORT     443         //    "     " HTTPS  " 
#define INTERNET_DEFAULT_SOCKS_PORT     1080        // default for SOCKS firewall servers. 


// 
// service types for InternetConnect() 
// 

#define INTERNET_SERVICE_FTP     1 
#define INTERNET_SERVICE_GOPHER  2 
#define INTERNET_SERVICE_HTTP    3 


// 
// flags for FTP 
// 

#define INTERNET_FLAG_TRANSFER_ASCII  1 
#define INTERNET_FLAG_TRANSFER_BINARY 2 


FUNCTION MAIN() 
    LOCAL oWnd
    PUBLIC server:="192.168.2.1"+space(15)
    PUBLIC user:="luissanteliz"+space(15)
    PUBLIC pass:=""+space(15)
    PUBLIC loc_archivo:=curdir()+"\uno.dat"+space(15)
    PUBLIC rem_archivo:="uno.dat"+space(40)
    PUBLIC lSobreescribir:=.T.
    PUBLIC lBinary:=.T.
    DEFINE WINDOW oWND TITLE "Prueba FTP"
    #DEFINE margen_derecho                 5
    #DEFINE largo_say                     100
    #DEFINE largo_get                     130
    #DEFINE ancho                          20
    #DEFINE separacion_entre_lineas       ancho+10
/*
// SERVIDOR:
*/	
    #DEFINE oSay1 oWND:aControls[1]
    @10,margen_derecho SAY "Servidor: " SIZE largo_say, ancho PIXEL OF oWND
    @ oSay1:ntop, oSay1:nRight+1 GET server SIZE largo_get, ancho PIXEL OF oWnd
/*
// USER:
*/
    #DEFINE oSay2 oWnd:aControls[3]
    @ oSay1:nTop+separacion_entre_lineas, margen_derecho SAY "User:" SIZE largo_say, ancho PIXEL OF oWnd
    @ oSay2:nTop, oSay2:nRight+1 GET user SIZE largo_get,ancho PIXEL OF oWnd
/*
// PASS:
*/
    #DEFINE oSay3 oWnd:aControls[5]
    @ oSay2:nTop+separacion_entre_lineas,  margen_derecho SAY "Password:" SIZE largo_say, ancho PIXEL OF oWnd
    @ oSay3:nTop, oSay3:nRight+1 GET pass SIZE largo_get,ancho PIXEL OF oWnd
/*
// ARCHIVO LOCAL:
*/
    #DEFINE oSay4 oWnd:aControls[7]
    @ oSay3:nTop+separacion_entre_lineas,  margen_derecho SAY "Archivo local:" SIZE largo_say, ancho PIXEL OF oWnd
    @ oSay4:nTop, oSay4:nRight+1 GET loc_archivo SIZE largo_get,ancho PIXEL OF oWnd
/*
// ARCHIVO REMOTO:
*/
    #DEFINE oSay5 oWnd:aControls[9]
    @ oSay4:nTop+separacion_entre_lineas,  margen_derecho SAY "Archivo Remoto:" SIZE largo_say, ancho PIXEL OF oWnd
    @ oSay5:nTop, oSay5:nRight+1 GET rem_archivo SIZE largo_get,ancho PIXEL OF oWnd
/*
// ENVIAR
*/
    #DEFINE oButton1 oWnd:aControls[11]
    @ oSay5:nTop+separacion_entre_lineas, margen_derecho+10 BUTTON "Enviar" SIZE 50, ancho  PIXEL ACTION msginfo(enviar()) OF oWnd
/*
// TRAER
*/
    #DEFINE oButton2 oWnd:aControls[12]
    @ oButton1:nTop, oButton1:nRight+20 BUTTON "Traer" SIZE 50, ancho  PIXEL ACTION msginfo(traer()) OF oWnd
/*
// SOBREESCRIBIR
*/
    #DEFINE oChk1 oWnd:aControls[13]
    @ oButton1:nTop+separacion_entre_lineas, margen_derecho CHECKBOX lSobreescribir PROMPT "Sobreescribir" SIZE 150, ancho  PIXEL OF oWnd
/*
// BINARY
*/
    #DEFINE oChk2 oWnd:aControls[14]
    @ oChk1:nTop+separacion_entre_lineas, margen_derecho CHECKBOX lBinary PROMPT "Transferencia Binaria" SIZE 150, ancho  PIXEL OF oWnd

   ACTIVATE WINDOW oWND
RETURN NIL

FUNCTION Enviar()
    LOCAL nRet
    LOCAL hInternet, hConnect 
    hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 ) 
    hConnect = INTERNETCONNECT(hInternet, rtrim(server), INTERNET_INVALID_PORT_NUMBER, rtrim(user), rtrim(pass), INTERNET_SERVICE_FTP, 0, 0 ) 
    IF FTPPUTFILE( hConnect, rtrim(loc_archivo), rtrim(rem_archivo),iif(lBinary,INTERNET_FLAG_TRANSFER_BINARY,INTERNET_FLAG_TRANSFER_ASCII), 0 ) 
       nRet:=0
    ELSE
       nRet:=GetLAstError()
    ENDIF
    INTERNETCLOSEHANDLE( hConnect ) 
    INTERNETCLOSEHANDLE( hInternet ) 
RETURN nRet

FUNCTION Traer()
    LOCAL nRet
    LOCAL hInternet, hConnect 
    hInternet = INTERNETOPEN( "Anystring", INTERNET_OPEN_TYPE_DIRECT, 0, 0, 0 ) 
    hConnect = INTERNETCONNECT(hInternet, rtrim(server), INTERNET_INVALID_PORT_NUMBER, rtrim(user), rtrim(pass), INTERNET_SERVICE_FTP, 0, 0 ) 
    IF FTPGETFILE( hConnect, rtrim(rem_archivo), rtrim(loc_archivo), IIF( lSobreescribir,0,1), FILE_ATTRIBUTE_ARCHIVE, 0, 0 ) 
       nRet:=0
    ELSE
       nRet:=GetLAstError()
    ENDIF
    INTERNETCLOSEHANDLE( hConnect ) 
    INTERNETCLOSEHANDLE( hInternet ) 
RETURN nRet

#pragma BEGINDUMP 

#include "windows.h" 
#include "wininet.h" 
#include "hbapi.h" 


LPWSTR AnsiToWide( LPSTR ); 


HB_FUNC( INTERNETOPEN ) 
{ 
    LPWSTR cAgent = AnsiToWide( hb_parc( 1 ) ); 
    LPWSTR cProxyName = AnsiToWide( hb_parc( 3 ) ); 
    LPWSTR cProxyBypass = AnsiToWide( hb_parc( 4 ) ); 
    HINTERNET hInternet = InternetOpen( cAgent, hb_parnl( 2 ), cProxyName, cProxyBypass, hb_parnl( 5 ) ); 
    hb_xfree( cAgent ); 
    hb_xfree( cProxyName ); 
    hb_xfree( cProxyBypass ); 
    hb_retnl( ( LONG ) hInternet ); 
} 

HB_FUNC( INTERNETCLOSEHANDLE ) 
{ 
    hb_retl( InternetCloseHandle( ( HINTERNET ) hb_parnl( 1 ) ) ); 
} 

HB_FUNC( INTERNETCONNECT ) 
{ 
    LPWSTR cServerName = AnsiToWide( hb_parc( 2 ) ); 
    LPWSTR cUserName = AnsiToWide( hb_parc( 4 ) ); 
    LPWSTR cPassword = AnsiToWide( hb_parc( 5 ) ); 
    HINTERNET hInternet = InternetConnect( ( HINTERNET ) hb_parnl( 1 ), cServerName, ( INTERNET_PORT ) hb_parnl( 3 ), cUserName, cPassword, hb_parnl( 6 ), hb_parnl( 7 ), hb_parnl( 8 ) ); 
    hb_xfree( cServerName ); 
    hb_xfree( cUserName ); 
    hb_xfree( cPassword ); 
    hb_retnl( ( LONG ) hInternet ); 
} 

HB_FUNC( FTPGETFILE ) 
{ 
    LPWSTR cRemoteFile = AnsiToWide( hb_parc( 2 ) ); 
    LPWSTR cNewFile = AnsiToWide( hb_parc( 3 ) ); 
    hb_retl( FtpGetFile( ( HINTERNET ) hb_parnl( 1 ), cRemoteFile, cNewFile, hb_parl( 4 ), hb_parnl( 5 ), hb_parnl( 6 ), hb_parnl( 7 ) ) ); 
    hb_xfree( cRemoteFile ); 
    hb_xfree( cNewFile ); 
} 

HB_FUNC( FTPPUTFILE ) 
{ 
    LPWSTR cLocalFile = AnsiToWide( hb_parc( 2 ) ); 
    LPWSTR cNewRemoteFile = AnsiToWide( hb_parc( 3 ) ); 
    hb_retl( FtpPutFile( ( HINTERNET ) hb_parnl( 1 ), cLocalFile, cNewRemoteFile, hb_parnl( 4 ), hb_parnl( 5 ) ) ); 
    hb_xfree( cLocalFile ); 
    hb_xfree( cNewRemoteFile ); 
} 

#pragma ENDDUMP
Luis Santeliz
Móvil SoftWare, C.A.
---------------------------------------------
MySQL DBA,
MySQL Server Performance Tunning,
DPxBase, FiveWin, Java,
Linux Redhat, Windows

Caracas Venezuela
luissanteliz@cantv.net
Post Reply