saludos, feliz año,
como saben soy nuevo en harbour, y estoy migrando toda mi aplicacion de clipper, y bueno........¡
Tengo el siguiente problema: mi programa tiene varios prg, y cuando ingreso al mismo, le solicito una solo la clave al usuario y la valido contra un archivo dbf, en el cual esta la clave y el nombre del usuario, ahora bien quiero guardar ese nombre en una variable publica para usarla en cualquier parte del programa, para saber en todo momento como se llama el usuario. trate de hacerlo con una funcion que pasa el nombre de aqui para alla, pero necesito una manera mas sencilla
claveusu(cpass) donde cpass es la clave que introdujo el cliente
FUNCTION CLAVEUSU(cPass,prueb1)
IF NUSE('.\DATA\DB010',.T.,5,'','CLAVES') //ABRO EN MODO SHARE LA TABLA CLAVES
ELSE
CLOSE DATA
RETURN NIL
ENDIF
Select claves
DBGOTOP()
DO WHILE .NOT. EOF()
IF claves->clave=cpass
usuario:=claves->nombre ------>esta es la que quiero ver
CLOSE claves desde cualquier parte,
RETURN .T. como la defino y manejo
ENDIF para tenerla siempre
SKIP activa
ENDDO
close claves
RETURN .F.
yo en clipper la coloca publica y listo pero aqui no tengo ni idea, y la manera que he conseguido es super complicada y engorrosa. y este metodo debo usarlo en gran parte de todo mi programa.
de antemano gracias.
problema con nombre de usuario publico en cualquier parte
- DiGregorio
- Posts: 42
- Joined: Fri Nov 04, 2005 12:22 am
- Location: Ven - Ita
- Contact:
-
- Posts: 33
- Joined: Mon Oct 17, 2005 11:56 pm
- Location: Caracas, Venezuela
- DiGregorio
- Posts: 42
- Joined: Fri Nov 04, 2005 12:22 am
- Location: Ven - Ita
- Contact:
YamilBracho wrote:Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico
pero cuando a una variable la hago publica con public xxxx me da un error de compilacion, es que de verdad no tengo ni idea, podrias enviarme un pequeño ejemplo, gracias.
Una forma de hacerlo es la siguiente:DiGregorio wrote:pero cuando a una variable la hago publica con public xxxx me da un error de compilacion, es que de verdad no tengo ni idea, podrias enviarme un pequeño ejemplo, gracias.YamilBracho wrote:Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico
En tu programa principal haces lo que te indico
#include "FiveWin.ch"
MemVar nMiVarPublica
Function Main()
Public nMiVarPublica
...
...
...
Return NIL
y en todos tus demás PRGs deberás hacer lo siguiente:
#include "FiveWin.ch"
MemVar nMiVarPublica
Function blablablabla()
Return NIL
En conclusión, en todos tus demás prgs deberás poner
MemVar y tu variable para que puedas ver la variable
pública.
Saludos, espero te funcione, así lo trabajo yo.
Juan Carlos Salinas Ojeda
México. D.F.
-------------------------------------------------
México. D.F.
-------------------------------------------------
- DiGregorio
- Posts: 42
- Joined: Fri Nov 04, 2005 12:22 am
- Location: Ven - Ita
- Contact:
Hola Yamil, de verdad gracias, me funciono perfecto, lo que pasaba era que estaba usando el memvar pero habia dejado de usar el public, jajajjaVeRCE wrote:Una forma de hacerlo es la siguiente:DiGregorio wrote:pero cuando a una variable la hago publica con public xxxx me da un error de compilacion, es que de verdad no tengo ni idea, podrias enviarme un pequeño ejemplo, gracias.YamilBracho wrote:Pues aqui es lo mismo puedes crear una variable publica para usarla en todos los modulos de tu aplicacion. Una mejor idea es tener un modulo o una clase donde tengas todas tuas variables publicas o quizas un arreglo y ese sea el unico que sea publico
En tu programa principal haces lo que te indico
#include "FiveWin.ch"
MemVar nMiVarPublica
Function Main()
Public nMiVarPublica
...
...
...
Return NIL
y en todos tus demás PRGs deberás hacer lo siguiente:
#include "FiveWin.ch"
MemVar nMiVarPublica
Function blablablabla()
Return NIL
En conclusión, en todos tus demás prgs deberás poner
MemVar y tu variable para que puedas ver la variable
pública.
Saludos, espero te funcione, así lo trabajo yo.
gracias, feliz año
Yo lo hago de la siguiente forma:
Uso una variable static y una clase que maneja todas la variables del sistema pero como DATAS de la clase y no como variables públicas.
Y una función que me devuelve el objeto contenedor de las datas.
Es un proceso muy sencillo y fácil de usar.
Uso una variable static y una clase que maneja todas la variables del sistema pero como DATAS de la clase y no como variables públicas.
Y una función que me devuelve el objeto contenedor de las datas.
Es un proceso muy sencillo y fácil de usar.
Code: Select all
#INCLUDE "FiveWin.ch"
STATIC oApp
FUNCTION Main()
oApp := TAdmin():New()
oApp:Activate()
RETURN( Nil )
FUNCTION GetApp(); RETURN oApp
CLASS TAdmin From TWindow
DATA oWnd
DATA cIp
DATA oIni
DATA cRuta
DATA cIniFile
DATA cEmpresa
DATA cBmpFondo
DATA oBoton
DATA oBar
DATA SysName
DATA cFont
DATA oFont
DATA oFont2
DATA oTimer
DATA oTray
DATA oIcon
DATA oUsuario
DATA oMenu
DATA aObj
DATA oBrs
DATA aDbf
DATA oDbf
DATA nEvento
METHOD New() CONSTRUCTOR
METHOD Activate()
METHOD MainMenu()
METHOD Save()
METHOD End()
METHOD KeyDown( nKey, nFlags )
METHOD SetTray()
METHOD MenuTray( nRow , nCol , oTray )
ENDCLASS
Vikthor