FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Pocket PC Ayuda para generar un archivo de texto, inv fisico
Posts: 13
Joined: Wed Apr 09, 2008 04:46 PM
Ayuda para generar un archivo de texto, inv fisico
Posted: Fri Apr 18, 2008 04:31 PM

Hola

Es mi primer programa, estoy inciandome en la programacion de FWPPC, he visto varios de los ejemplos que ponen pero la verdad no entiendo mucho, he hecho algunas pruebas y funcionan perfectamente, pero al integrarlas a mi programa no funciona, lo que yo necesito es un sencillo programa para capturar 2 campos, codigo y cantidad en un ciclo N, cuando el usuario decida salirse y si es necesairo poder continuar con esa captura, esto para tomar informacion de un inventario fisico y con esta informacion generar un archivo de texto de una linea por cada codigo y cantidad que se capture, el codigo se captura atraves del colector que esta integrado en la pocket pc.

Ya me pide los datos, solo que no quita el dato anterior y quise meterlo a un ciclo pero ahi ya no funciono y me falta guarlo en el archivo de texto.

Me podrian orientar por favor?

include "FWCE.ch"

//----------------------------------------------------------------------------//

function Main()

local oWnd

LOCAL cVar1 := SPACE( 20 ) 
LOCAL cVar2 := SPACE( 20 )

DEFINE WINDOW oWnd TITLE "Captura Inventarios"

Do While lOk
MiFuncionDeMedir()

@ 1, 1 SAY "Codigo:"; 
       SIZE 70, 20

@ 1, 10 GET cVar1; 
        SIZE 140, 20

@ 5, 1 SAY "Cantidad:"; 
       SIZE 70, 20

@ 5.7, 10 GET cVar2; 
        SIZE 140, 20

 SysRefresh()

Enddo

ACTIVATE WINDOW oWnd ;
ON CLICK MsgInfo( "Click!" ) ;
VALID MsgYesNo( "Want to End ?" )

return nil

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Ayuda para generar un archivo de texto, inv fisico
Posted: Fri Apr 18, 2008 09:18 PM
Lupita,

Hazlo as铆:
#include "FWCE.ch" 

//----------------------------------------------------------------------------// 

function Main() 

   local oWnd, oGet1, oGet2 
   LOCAL cVar1 := SPACE( 20 ) 
   LOCAL cVar2 := SPACE( 20 ) 

   DEFINE WINDOW oWnd TITLE "Captura Inventarios" 

   // MiFuncionDeMedir() 

   @ 1, 1 SAY "Codigo:"; 
      SIZE 70, 20 

   @ 1, 10 GET oGet1 VAR cVar1; 
      SIZE 140, 20 

   @ 5, 1 SAY "Cantidad:"; 
      SIZE 70, 20 

   @ 5.7, 10 GET oGet2 VAR cVar2; 
      SIZE 140, 20 

   @ 7, 2 BUTTON "Nuevo" SIZE 80, 20 ;
      ACTION ( cVar1 := Space( 20 ), cVar2 := Space( 20 ),;
               oGet1:Refresh(), oGet2:Refresh(), /* MiFuncionDeMedir(), */ oGet1:SetFocus() )  

   @ 9, 2 BUTTON "Salir" SIZE 80, 20 ACTION oWnd:End()
 
   ACTIVATE WINDOW oWnd ; 
      VALID MsgYesNo( "驴 Quiere terminar ?" ) 

return nil

Al pulsar el bot贸n "Nuevo" volver铆a a hacer una nueva medici贸n
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 13
Joined: Wed Apr 09, 2008 04:46 PM
Ayuda para generar un archivo de texto, inv fisico
Posted: Fri Apr 18, 2008 11:04 PM

Antonio muchas gracias, ya puedo capturar codigo y cantidad.

Le agregue la linea FWrite(curdir()+"\archivo.txt",cVar1,cVar2) para que me guardara cada registro en un archivo txt, si logre que lo generara, pero lo genera en blanco no agrega la informacion de la variable, probe on cVar1 y con oGet1, y ninguna lo guarda.

Existe algun manual donde pueda ver porque hay que definir cVar1 y oGet1, es decir que explique las instrucciones que incluyen en los ejemplos, baje el manual que viene en la pagina, pero muchas de las cosas que vienen en los ejemplos del foro, no las explica ese manual.

Aqui envio como quedo el programa.

include "FWCE.ch"

//----------------------------------------------------------------------------//

function Main()

local oWnd, oGet1, oGet2
LOCAL cVar1 := SPACE( 20 )
LOCAL cVar2 := SPACE( 20 )

DEFINE WINDOW oWnd TITLE "Captura Inventarios"

// MiFuncionDeMedir()

@ 1, 1 SAY "Codigo:";
SIZE 70, 20

@ 1, 10 GET oGet1 VAR cVar1;
SIZE 140, 20

@ 5, 1 SAY "Cantidad:";
SIZE 70, 20

@ 5.7, 10 GET oGet2 VAR cVar2;
SIZE 140, 20

@ 7, 2 BUTTON "Nuevo" SIZE 80, 20 ;
ACTION ( cVar1 := Space( 20 ), cVar2 := Space( 20 ),;
oGet1:Refresh(), oGet2:Refresh(), / MiFuncionDeMedir(), / oGet1:SetFocus() )

FWrite(curdir()+"\archivo.txt",cVar1,cVar2)

@ 9, 2 BUTTON "Salir" SIZE 80, 20 ACTION oWnd:End()

ACTIVATE WINDOW oWnd ;
VALID MsgYesNo( "驴 Quiere terminar ?" )

return nil

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Ayuda para generar un archivo de texto, inv fisico
Posted: Fri Apr 18, 2008 11:29 PM
Lupita,

Hazlo de esta forma:
#include "FWCE.ch" 

//----------------------------------------------------------------------------// 

function Main() 

   local oWnd, oGet1, oGet2 
   LOCAL cVar1 := SPACE( 20 ) 
   LOCAL cVar2 := SPACE( 20 )
   local hFile := FCreate( CurDir() + "\datos.txt" ) 

   DEFINE WINDOW oWnd TITLE "Captura Inventarios" 

   // MiFuncionDeMedir() 

   @ 1, 1 SAY "Codigo:"; 
      SIZE 70, 20 

   @ 1, 10 GET oGet1 VAR cVar1; 
      SIZE 140, 20 

   @ 5, 1 SAY "Cantidad:"; 
      SIZE 70, 20 

   @ 5.7, 10 GET oGet2 VAR cVar2; 
      SIZE 140, 20 

   @ 7, 2 BUTTON "Nuevo" SIZE 80, 20 ;
      ACTION ( FWrite( hFile, cVar1 + CRLF + cVar2 + CRLF ),;
               cVar1 := Space( 20 ), cVar2 := Space( 20 ),;
               oGet1:Refresh(), oGet2:Refresh(), /* MiFuncionDeMedir(), */;
               oGet1:SetFocus() )  

   @ 9, 2 BUTTON "Salir" SIZE 80, 20 ACTION oWnd:End()
 
   ACTIVATE WINDOW oWnd ; 
      VALID MsgYesNo( "驴 Quiere terminar ?" ) 

   FClose( hFile )

return nil

Tienes que darte tiempo para familiarizarte con el uso de los eventos. La ejecuci贸n de la aplicaci贸n en Windows no es "lineal" sino que las acciones ocurren en respuestas a los "eventos" (pulsar un bot贸n con el rat贸n, etc.)

Por otra parte si vienes de la programaci贸n en FoxPro, necesitar谩s algo de tiempo para familiarizarte con la programaci贸n con el lenguaje Clipper
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 13
Joined: Wed Apr 09, 2008 04:46 PM
Ayuda para generar un archivo de texto, inv fisico
Posted: Sat Apr 19, 2008 04:47 PM

Muchas gracias Antonio, ya voy entendiendo lo que mencionas de programar por eventos, hice una peque帽a modificacion a la instruccion ya que necesito el archivo en una sola linea separando los datos por una "," hasta ahi voy bien, ahora necesito definir que la cVar2 sea numerica con 2 decimales y que en el ascii elimine los espacios en blanco de la variable cVar1.
Que instrucciones se usan para eso?.

ACTION ( FWrite( hFile, cVar1 + "," + cVar2 + CRLF ),;
cVar1 := Space( 20 ), cVar2 := Space(20),;
oGet1:Refresh(), oGet2:Refresh(), / MiFuncionDeMedir(), /;
oGet1:SetFocus() )

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Ayuda para generar un archivo de texto, inv fisico
Posted: Sun Apr 20, 2008 06:23 PM
Lupita,

Aqui lo tienes:
#include "FWCE.ch" 

//----------------------------------------------------------------------------// 

function Main() 

   local oWnd, oGet1, oGet2 
   LOCAL cVar1 := SPACE( 20 ) 
   LOCAL nVar2 := 0.00
   local hFile := FCreate( CurDir() + "\datos.txt" ) 

   DEFINE WINDOW oWnd TITLE "Captura Inventarios" 

   // MiFuncionDeMedir() 

   @ 1, 1 SAY "Codigo:"; 
      SIZE 70, 20 

   @ 1, 10 GET oGet1 VAR cVar1; 
      SIZE 140, 20 

   @ 5, 1 SAY "Cantidad:"; 
      SIZE 70, 20 

   @ 5.7, 10 GET oGet2 VAR nVar2; 
      SIZE 140, 20 PICTURE "999.99"

   @ 7, 2 BUTTON "Nuevo" SIZE 80, 20 ;
      ACTION ( FWrite( hFile, AllTrim( cVar1 ) + CRLF + Str( nVar2, 6, 2 ) + CRLF ),;
               cVar1 := Space( 20 ), nVar2 := 0.00,;
               oGet1:Refresh(), oGet2:Refresh(), /* MiFuncionDeMedir(), */;
               oGet1:SetFocus() )  

   @ 9, 2 BUTTON "Salir" SIZE 80, 20 ACTION oWnd:End()
 
   ACTIVATE WINDOW oWnd ; 
      VALID MsgYesNo( "驴 Quiere terminar ?" ) 

   FClose( hFile )

return nil
regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion