HELPME A ACCESAR A UNA DBF

Moderator: Rathinagiri

Post Reply
LOUIS
Posts: 134
Joined: Tue Dec 11, 2012 9:05 pm

HELPME A ACCESAR A UNA DBF

Post by LOUIS » Tue Mar 04, 2014 7:05 am

Hola a todos:
Como soy principiante, estoy tratando de hacer un mix entre consola y gui, para que la pantalla gráfica de entrada, le dé un poco de realce al sistema ... he puesto un textbox name para que digite su nombre el usuario, pero al dar click en el boton para acceder, no sucede nada ... no sé que pasa ?
La compilación es perfecta, no da error al obtener el exe ...

Aquí os dejo el código, una ayudita plis ...

#include <hmg.ch>

REQUEST HB_GT_WIN_DEFAULT

FUNCTION MAIN
DEFINE WINDOW Form_Main;
AT 0,0 ;
WIDTH 100 HEIGHT 100 MAIN NOSHOW;
ON INIT ENTRADA_NORMAL()
END WINDOW
ACTIVATE WINDOW Form_Main
RETURN NIL

*-------------------------
Procedure ENTRADA_NORMAL()
// Console-Part
SETMODE (1,1)
CLEA
QUECLAVE=''
NOMBRE=SPACE(30)

// ENTRADA GRÁFICA
GUI_Function()

// The console-part will continue
IF QUECLAVE='OK'
SETMODE (43,132)
WAIT 'ENTRANDO CON EXITO !!!'
* DE AQUI DEBEN IR TODOS LOS PROCEDIMIENTOS
ENDIF

// Close the program
Form_Main.Release
Return

*-----------------------
Procedure GUI_Function()

DEFINE WINDOW Form_Modal;
AT 0,0 ;
WIDTH 800; && ANCHO
HEIGHT 600; && LARGO
TITLE "PANTALLA DE ACCESO AL SISTEMA";
ICON 'EYE.ICO' MODAL

@ 10,100 LABEL Label_1 WIDTH 500 HEIGHT 50 FONT "ARIAL" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR BLUE;
VALUE "DIGITE POR FAVOR SU ACCESO"

@ 100,100 IMAGE FOTO PICTURE "LOGO.jpg" WIDTH 500 HEIGHT 270

@ 400,200 LABEL Label_2 PARENT FORM_MODAL WIDTH 300 HEIGHT 50 FONT "ARIAL" SIZE 16 BOLD FONTCOLOR BLACK VALUE " L O G I N:"
@ 400,380 TEXTBOX NOMBRE WIDTH 150 HEIGHT 20

@ 450,200 LABEL Label_3 WIDTH 300 HEIGHT 50 FONT "ARIAL" SIZE 16 BOLD FONTCOLOR BLACK VALUE "P A S S W O R D:"
@ 450,380 TEXTBOX CLASE WIDTH 150 HEIGHT 20

@ 500,10 BUTTON Button_1 PARENT FORM_MODAL CAPTION "ACCESAR !" ONCLICK ACCESANDO()
END WINDOW
ACTIVATE WINDOW Form_Modal
Return

*-----------------------
Procedure ACCESANDO() <--- aquí se queda estática la pantalla y no hace nada

CLOS ALL
USE USERS
GOTO TOP
LOCA ALL FOR ALLTRIM(USUARIO)==ALLTRIM(NOMBRE)
IF FOUN() <--- es como que no encuentra el user
ACTION MsgInfo ("NOMBRE OK !") <--- porque no muestra el msgInfo
QUECLAVE='OK' <--- ni coge el ok para pasar a consola
ELSE
ACTION MsgInfo ("ERROR EN NOMBRE !")
ENDIF
CLOS ALL

RETURN

User avatar
esgici
Posts: 4363
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 246 times
Been thanked: 91 times
Contact:

Post by esgici » Tue Mar 04, 2014 12:35 pm

LOUIS (via Google) wrote: ...
a little help
plis...
Hola Louis

First : please properly indent and put your code between 'code' and '/code' tags by using "Code' button in the post write form. This required for easy read and easy understand your problem by your colleagues.
PostWriteToolBox.PNG
Code button in the post-write tool box
PostWriteToolBox.PNG (17.94 KiB) Viewed 1240 times
I made this to your code as example for a once time :

Code: Select all

#include <hmg.ch>

REQUEST HB_GT_WIN_DEFAULT

FUNCTION MAIN
   DEFINE WINDOW Form_Main;
      AT 0,0 ;
      WIDTH 100 HEIGHT 100 MAIN NOSHOW;
      ON INIT ENTRADA_NORMAL()
  END WINDOW
  ACTIVATE WINDOW Form_Main
RETURN NIL

*-------------------------

Procedure ENTRADA_NORMAL()
   // Console-Part
   SETMODE (1,1)
   CLEA
   QUECLAVE=''
   NOMBRE=SPACE(30)

   // ENTRADA GRÁFICA
   GUI_Function()

   // The console-part will continue
   IF QUECLAVE='OK'
      SETMODE (43,132)
      WAIT 'ENTRANDO CON EXITO !!!'
      * DE AQUI DEBEN IR TODOS LOS PROCEDIMIENTOS
   ENDIF

   // Close the program

   Form_Main.Release

Return

*-----------------------
Procedure GUI_Function()

   DEFINE WINDOW Form_Modal;
      AT 0,0 ;
      WIDTH 800; && ANCHO
      HEIGHT 600;	 && LARGO
      TITLE "PANTALLA DE ACCESO AL SISTEMA";
      ICON 'EYE.ICO' MODAL

      @ 10,100 LABEL Label_1 WIDTH 500 HEIGHT 50 FONT "ARIAL" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR BLUE;
        VALUE "DIGITE POR FAVOR SU ACCESO"

      @ 100,100 IMAGE FOTO PICTURE "LOGO.jpg" WIDTH 500 HEIGHT 270

      @ 400,200 LABEL Label_2 PARENT FORM_MODAL WIDTH 300 HEIGHT 50 FONT "ARIAL" SIZE 16 BOLD FONTCOLOR BLACK VALUE " L O G I N:"
      @ 400,380 TEXTBOX NOMBRE WIDTH 150 HEIGHT 20

      @ 450,200 LABEL Label_3 WIDTH 300 HEIGHT 50 FONT "ARIAL" SIZE 16 BOLD FONTCOLOR BLACK VALUE "P A S S W O R D:"
      @ 450,380 TEXTBOX CLASE WIDTH 150 HEIGHT 20

      @ 500,10 BUTTON Button_1 PARENT FORM_MODAL CAPTION "ACCESAR !" ONCLICK ACCESANDO()
   END WINDOW

   ACTIVATE WINDOW Form_Modal

Return

*-----------------------

Procedure ACCESANDO() <--- aquí se queda estática la pantalla y no hace nada

   CLOS ALL
   USE USERS
   GOTO TOP
   LOCA ALL FOR ALLTRIM(USUARIO)==ALLTRIM(NOMBRE)
   IF FOUN() <--- es como que no encuentra el user
      ACTION MsgInfo ("NOMBRE OK !") <--- porque no muestra el msgInfo
      QUECLAVE='OK' <--- ni coge el ok para pasar a consola
   ELSE
      ACTION MsgInfo ("ERROR EN NOMBRE !")
   ENDIF

   CLOS ALL

RETURN

Second : please add required additional files, .dbf, image, icon etc; at least as examples to your post.

Third : I guess your problem is in mixed mode ( consol + GUI ). Please look at past topics before asking help. "Search" and "Advanced Search" feature of forum will help you. As an example here we have a perfect sample for this.

And fourth and last : I must repeat my question :

Why concole / mixed mode ?

Please don't forget : the G in HMG means GUI :(

Happy HMG'ing :D
Viva INTERNATIONAL HMG :D

User avatar
danielmaximiliano
Posts: 2051
Joined: Fri Apr 09, 2010 4:53 pm
Location: Argentina
Has thanked: 89 times
Been thanked: 12 times
Contact:

Post by danielmaximiliano » Tue Mar 04, 2014 1:35 pm

Hola Louis :
dentro del foro hay ejemplos de pantallas Login como tambien en los ejemplos de HMG.3.2
tu error es
LOCA ALL FOR ALLTRIM( NOMBRE )
los Controles de HMG como el TextBox NOMBRE se referencian por la ventana que lo agrupa, en este caso Form_Modal y su Propiedad; en este caso Value
referenciando correctamente seria

Code: Select all

 Form_Modal.NOMBRE.Value

Code: Select all

Procedure ACCESANDO() //<--- aqui se queda esttica la pantalla y no hace nada

   CLOS ALL
   USE USERS
   GOTO TOP
   LOCA ALL FOR ALLTRIM( Form_Modal.NOMBRE.Value )
   IF FOUN()
	  ACTION MsgInfo ("NOMBRE OK !") 
	  QUECLAVE='OK' //<---  ok para pasar a consola
	  Form_Modal.Release
   ELSE
      ACTION MsgInfo ("ERROR EN NOMBRE !")
	  
   ENDIF

   CLOS ALL

RETURN
*´¨)
¸.·´¸.·*´¨) ¸.·*¨)
(¸.·´. (¸.·` *
.·`.HMG : It's magic !
(¸.·``··*

Saludos / Regards
DaNiElMaXiMiLiAnO

Whatsapp. : +54901169026142
Telegram Name : DaNiElMaXiMiLiAnO

Javier Tovar
Posts: 1274
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar » Tue Mar 04, 2014 4:31 pm

Hola LOUIS,

Aparte de lo que te comentaron los compañeros quisiera decirte que como un mal consejo (yo también soy principiante) a mi me ha resultado aprender de los ejemplos que vienen con HMG, y como es muy extenso los voy viendo poco a poco, de tal manera que hago mi propio ejemplo para saber si ya comprendí lo que hace cada uno de ellos. Después voy haciendo cosas un poco más complicadas de acuerdo a lo que voy dominando y creo yo me ha sido fácil. Todo es prueba y error. Y ya cuando no puedo les pregunto aquí en el Foro :D

Yo nunca he hecho un programa en Modo consola, solo GUI.

Saludos.

LOUIS
Posts: 134
Joined: Tue Dec 11, 2012 9:05 pm

Post by LOUIS » Tue Mar 04, 2014 10:48 pm

Gracias por sus respuestas.

Mr. Esgici

I'm amateur in HMG, although I have a complete system made in clipper. My problem is migrar all system to HMG, cause I afraid arrive no to end :oops: (sorry for my english)


Sr Javier Tovar

Tengo una confesión q haceros, soy programador empírico o auto didacta, no tengo estudios en programación, pero me encanta este mundo ... a las bravas empecé allá por 1988 viendo en los xt de esos tiempos, el foxplus y luego el foxpro, y digo viendo porque era curioso de lo que hacían los del dpto. de sistemas ... recuerdo que el primer programa que vi funcionar era de la hora de entrada y salida ... copie en un diskette el prg y lo imprimí, y con lo poco que sé de inglés, por ahí me defendí entendiendo la lógica del lenguaje procedural ... después conocí el clipper y me dijeron que era primo de fox, y empecé a adentrarme en ese mundo, más que todo porque la cia compró un programa hecho en clipper. Entonces llevo 25 años en esta forma de programar, miren que hice un xml en puro foxpro de dos, y os juro que estoy tratando de entender esta forma de programar, aunque se me hace bien duro :roll:


Y en cuanto al Sr. DanielMaximiliano, muchas gracias por su ayuda, funcionó muy bien; Ud encontró el error "de una" como se dice en mi país. 3time thanks :mrgreen:

Regards.

User avatar
esgici
Posts: 4363
Joined: Wed Jul 30, 2008 9:17 pm
DBs Used: DBF
Location: iskenderun / Turkiye
Has thanked: 246 times
Been thanked: 91 times
Contact:

Post by esgici » Wed Mar 05, 2014 1:17 am

LOUIS wrote: I'm amateur in HMG, although I have a complete system made in clipper. My problem is migrar all system to HMG, cause I afraid arrive no to end :oops:

This problem not only for you ;)

Sans doubt this is you to decide what mode you will use. I want only help you for a migration with minimum fatigue.

And my opinion is: continuing prehistoric ways ( CUI ) will not make an easy migration job.

My suggestion is :

Code: Select all

#include <hmg.ch>

FUNCTION MAIN
   DEFINE WINDOW Form_Main;
      AT 0,0 ;
      WIDTH 100 HEIGHT 100 MAIN ;
      ON INIT ENTRADA_NORMAL()
  END WINDOW
  ACTIVATE WINDOW Form_Main
RETURN NIL

*-------------------------

Procedure ENTRADA_NORMAL()
   QUECLAVE=''
   NOMBRE=SPACE(30)
   // ENTRADA GRÁFICA
   GUI_Function()

   IF QUECLAVE='OK'
      MsgInfo( 'ENTRANDO CON EXITO !!!' )
      * DE AQUI DEBEN IR TODOS LOS PROCEDIMIENTOS  <-- MUST GO HERE ALL PROCEDURES
   ELSE
      MsgStop( 'Application aborted  ! ' )   
   ENDIF

   // Close the program

   Form_Main.Release

Return

*-----------------------
Procedure GUI_Function()

   DEFINE WINDOW Form_Modal;
      AT 0,0 ;
      WIDTH 800; && ANCHO
      HEIGHT 600;	 && LARGO
      TITLE "PANTALLA DE ACCESO AL SISTEMA";
      ICON 'EYE.ICO' MODAL

      @ 10,100 LABEL Label_1 WIDTH 500 HEIGHT 50 FONT "ARIAL" SIZE 24 BOLD FONTCOLOR WHITE BACKCOLOR BLUE;
        VALUE "DIGITE POR FAVOR SU ACCESO"

      @ 100,100 IMAGE FOTO PICTURE "LOGO.jpg" WIDTH 500 HEIGHT 270

      @ 400,200 LABEL Label_2 PARENT FORM_MODAL WIDTH 300 HEIGHT 50 FONT "ARIAL" SIZE 16 BOLD FONTCOLOR BLACK VALUE " L O G I N:"
      @ 400,380 TEXTBOX NOMBRE WIDTH 150 HEIGHT 20

      @ 450,200 LABEL Label_3 WIDTH 300 HEIGHT 50 FONT "ARIAL" SIZE 16 BOLD FONTCOLOR BLACK VALUE "P A S S W O R D:"
      @ 450,380 TEXTBOX CLASE WIDTH 150 HEIGHT 20

      @ 500,10 BUTTON Button_1 PARENT FORM_MODAL CAPTION "ACCESAR !" ONCLICK ACCESANDO()
   END WINDOW

   ACTIVATE WINDOW Form_Modal

Return

*-----------------------

Procedure ACCESANDO() // <--- aquí se queda estática la pantalla y no hace nada

   CLOS ALL
   USE USERS

   GOTO TOP
   LOCA FOR ALLTRIM(USUARIO)==ALLTRIM(Form_Modal.NOMBRE.Value )

   IF FOUND() // <--- es como que no encuentra el user
      MsgInfo ("NOMBRE OK !") // <--- porque no muestra el msgInfo
      QUECLAVE='OK' // <--- ni coge el ok para pasar a consola
   ELSE
      MsgInfo ("ERROR EN NOMBRE !")
   ENDIF
   CLOS ALL
   
   Form_Modal.Release
   
RETURN

*-----------------------
Y en cuanto al Sr. DanielMaximiliano, muchas gracias por su ayuda, funcionó muy bien; Ud encontró el error "de una" como se dice en mi país. 3time thanks :mrgreen:
You need also remove 'ACTION' words before 'MsgInfo(...)' s into ACCESANDO procedure.

Happy HMG'ing :D
Viva INTERNATIONAL HMG :D

Javier Tovar
Posts: 1274
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México
Has thanked: 1 time
Been thanked: 2 times

Post by Javier Tovar » Wed Mar 05, 2014 3:54 am

LOUIS wrote:Sr Javier Tovar

Tengo una confesión q haceros, soy programador empírico o auto didacta, no tengo estudios en programación, pero me encanta este mundo ... a las bravas empecé allá por 1988 viendo en los xt de esos tiempos, el foxplus y luego el foxpro, y digo viendo porque era curioso de lo que hacían los del dpto. de sistemas ... recuerdo que el primer programa que vi funcionar era de la hora de entrada y salida ... copie en un diskette el prg y lo imprimí, y con lo poco que sé de inglés, por ahí me defendí entendiendo la lógica del lenguaje procedural ... después conocí el clipper y me dijeron que era primo de fox, y empecé a adentrarme en ese mundo, más que todo porque la cia compró un programa hecho en clipper. Entonces llevo 25 años en esta forma de programar, miren que hice un xml en puro foxpro de dos, y os juro que estoy tratando de entender esta forma de programar, aunque se me hace bien duro
Bien, Yo tengo apenas un año que entre a HMG (septiembre del año pasado, creo.), no tenia conocimiento alguno de programación, apenas voy a la preparatoria en México (segundo semestre) y mi Padre es Contador y como me decidí a ser programador el el futuro me empezó a guiarme por donde empezar, también a él le toco aprender por que a veces le preguntaba y no sabia, y lo estudiaba y después me lo explicaba. También me presto sus libros de Clipper que el uso y ahí empece....

Creo que tienes una gran ventaja, ya sabes Clipper entonces vas adelantado, yo creo que como un 60%, ya que los controles es cuestión de practicar y en realidad es rápido, a mi me costo mucho por que empece de cero. Y si sabes otros sistemas de programar, entonces creo que en un mes ya estarás como pez en el agua!

Saludos :D

P.D.: De qué país eres?

LOUIS
Posts: 134
Joined: Tue Dec 11, 2012 9:05 pm

Post by LOUIS » Sat Mar 08, 2014 6:24 am

Mr. Esgici

Thank you very much, MsgInfo run OK ... ;) ... every day, step by step I learn some and I'm happy so much !!!


Javier Tovar

Soy Ecuatoriano.


HMG make me feel so good :D

Post Reply