fiveweb
-
- Posts: 61
- Joined: Tue Nov 19, 2013 2:13 pm
fiveweb
Hola Antonio
estamos dando los primeros pasos en fiveweb
He logrado mi primera pantalla para pedir usuario y contraseña
lo que no logro saber y no encuentro en los ejemplos es , por ejemplo, en el Action del boton
OK cerrar el dialogo actual y abrir otro
no comprendo bien la lógica, pude llamar desde alli a un HTML y a un EXE
No se si tengo que tener un exe por cada pantalla o puedo tener un unico exe para el sitio
te agradesco que me desburres algun ejemplo ayudaría, hasta ahora trabajé con clipxnet
gracias, esta muy bueno el proyecto fiveweb
Silvina
estamos dando los primeros pasos en fiveweb
He logrado mi primera pantalla para pedir usuario y contraseña
lo que no logro saber y no encuentro en los ejemplos es , por ejemplo, en el Action del boton
OK cerrar el dialogo actual y abrir otro
no comprendo bien la lógica, pude llamar desde alli a un HTML y a un EXE
No se si tengo que tener un exe por cada pantalla o puedo tener un unico exe para el sitio
te agradesco que me desburres algun ejemplo ayudaría, hasta ahora trabajé con clipxnet
gracias, esta muy bueno el proyecto fiveweb
Silvina
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: fiveweb
Silvina,
Solo tienes que usar un EXE (en Windows) ó un ejecutable (en Linux) y según los parámetros
que le pases, tu aplicación hará una cosa u otra.
Revisa el ejemplo Otto.prg que está en la carpeta samples de FiveWeb:
https://bitbucket.org/fivetech/fiveweb/ ... s/otto.prg
Es importante que entiendas la lógica de FiveWeb:
El EXE en el servidor, es una aplicación Harbour y FiveWeb, que genera salida en HTML que
es lo que crea las cajas de diálogo, etc (usando jquery ui) y las acciones que ejecutas desde
el navegador ejecutan código javascript (desde el cliente que está usando la aplicación).
Cuando comprendas bien esta diferencia, empezarás a poder hacer con FiveWeb lo que necesites
Solo tienes que usar un EXE (en Windows) ó un ejecutable (en Linux) y según los parámetros
que le pases, tu aplicación hará una cosa u otra.
Revisa el ejemplo Otto.prg que está en la carpeta samples de FiveWeb:
https://bitbucket.org/fivetech/fiveweb/ ... s/otto.prg
Es importante que entiendas la lógica de FiveWeb:
El EXE en el servidor, es una aplicación Harbour y FiveWeb, que genera salida en HTML que
es lo que crea las cajas de diálogo, etc (usando jquery ui) y las acciones que ejecutas desde
el navegador ejecutan código javascript (desde el cliente que está usando la aplicación).
Cuando comprendas bien esta diferencia, empezarás a poder hacer con FiveWeb lo que necesites
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: fiveweb
Si necesitas un ejemplo concreto de dos diálogos, y no sabes como hacerlo a partir de Otto.prg
indícamelo y te construyo un ejemplo
indícamelo y te construyo un ejemplo
-
- Posts: 61
- Joined: Tue Nov 19, 2013 2:13 pm
fiveweb
Hola, bueno estudiando el ejemplo logre llamar la primera pantalla (usuario y contraseña) y la segunda (cambio de contraseña).
Luego tengo que llamar una tercera pantalla . antes debo hacer una validación y necesito una variable que fue calculada en la 2da
como es que se pasan? x ejemplo, para pasar los valores de los gets lo hago asi pero si es una variable, en este caso el id de la persona
@ 210, 160 BUTTON "Ok" OF xDlg ;
ACTION document.location = "otto.exe?dos:"+;
document.getElementById( "oGet3" ).value + ":" + ;
document.getElementById( "oGet4" ).value + ":" ;
Luego tengo que llamar una tercera pantalla . antes debo hacer una validación y necesito una variable que fue calculada en la 2da
como es que se pasan? x ejemplo, para pasar los valores de los gets lo hago asi pero si es una variable, en este caso el id de la persona
@ 210, 160 BUTTON "Ok" OF xDlg ;
ACTION document.location = "otto.exe?dos:"+;
document.getElementById( "oGet3" ).value + ":" + ;
document.getElementById( "oGet4" ).value + ":" ;
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: fiveweb
Silvina,
Envíame el código fuente o publicalo aqui y lo revisaré
Envíame el código fuente o publicalo aqui y lo revisaré
-
- Posts: 61
- Joined: Tue Nov 19, 2013 2:13 pm
Re: fiveweb
aca va el código, por favor cualquier sugerencia y/o corrección serán bienvendias
gracias !!!
#include "FiveWeb.ch"
#include "ads.ch"
//----------------------------------------------------------------------------//
function Main( cParams )
local oDlg, oGet1, oGet2
local cDni := Space( 11 ), cPass := ''
local AppName:= AppName()
cDni := Space( 11 )
cPass := Space( 8 )
// SET BACKIMAGE TO "http://fiveweb.googlecode.com/svn/trunk ... /beach.jpg"
SET BACKIMAGE TO "http://fiveweb.googlecode.com/svn/trunk ... ynight.jpg"
SetTheme( "start" )
if pcount() > 0
Process( cParams )
return nil
endif
DEFINE DIALOG oDlg TITLE "Gestión de Profesionales" SIZE 600, 360
@ 38, 40 SAY "D.N.I.:" OF oDlg
@ 36, 190 GET oGet1 VAR cDni OF oDlg SIZE 200, 35
@ 85, 40 SAY "Contraseña :" OF oDlg
@ 83, 190 GET oGet2 VAR cPass OF oDlg SIZE 200, 35 PASSWORD
@ 210, 160 BUTTON "Ok" OF oDlg ;
ACTION document.location = "otto.exe?uno:"+;
document.getElementById( "oGet1" ).value + ":" + ;
document.getElementById( "oGet2" ).value + ":"
@ 210, 300 BUTTON "Cancel" OF oDlg
ACTIVATE DIALOG oDlg NOWAIT
return nil
//----------------------------------------------------------------------------//
function Process( cParams )
local TPAS , aPer
local i
local aParams := hb_aTokens( cParams, ":" )
do case
case aParams[ 1 ] == "uno"
SetIniciales()
RDDActual()
if !AdsConnect60( "\\192.168.1.8\comuna2\ps-datos\unire.add" , 7 , "ADSSYS" , "/-789" )
msginfo('No se puedo conectar al diccionario de datos.')
endif
BuscoPersona ( aParams )
case aParams[ 1 ] == "dos"
if !aParams[2]=aParams[3]
msginfo('Error al ingresar la nueva contraseña.','Atención.')
else
SetIniciales()
RDDActual()
if !AdsConnect60( "\\192.168.1.8\comuna2\ps-datos\unire.add" , 7 , "ADSSYS" , "/-789" )
msginfo('No se puedo conectar al diccionario de datos.')
endif
// TPAS:=abro('TPASWORD',1)
//ACA ES DONDE NECESTIO LA VARIABLE IDBIEN
msginfo(aParams[4])
/* if (TPAS)->(dbseek( IdBien ))
(TPAS)->(dbrlock())
(TPAS)->reset:=.F.
(TPAS)->(dbunlock())
msginfo('Contraseña cambiada.')
endif
*/
// (TPAS)->(dbclosearea())
// UNA VEZ VALIDADA PERSONA Y CONTRASEÑA PIDE EL INMUEBLE A CONSULTAR
PidoCuim()
// CON EL ID DEL INMUEBLE GENERA UN REPORTE QUE VA A PDF (FALTA)
endif
end case
return nil
//----------------------------------------------------------------------------//
function BuscoPersona ( aParams )
*=====================
LOCAL xDlg , oGet4:='' , oGet3:='' , lRet:=.T. , xSave:=.F. , Nombre:='' , Profe:='' , oSay , IdBien
LOCAL cvar:=space(8)
LOCAL cnue:=space(8)
LOCAL AGRI , TPAS , TPER:=abro('TPERSONA',5)
if !(TPER)->(dbseek( aParams[2] ))
msginfo('No existe la persona.','Atención')
lRet:=.F.
else
Nombre:=(TPER)->doc_nro+' - '+(TPER)->apellido
AGRI:=abro('TAGRIMEN',1)
if !(AGRI)->(dbseek( (TPER)->idc_con ))
msginfo('La persona no es PROFESIONAL','Atención')
lRet:=.f.
else
Profe:= (AGRI)->titulo
endif
(AGRI)->(dbclosearea())
endif
// *** cambia contraseña ***
TPAS:=abro('TPASWORD',1)
IdBien:=(TPER)->idc_bien
if (TPAS)->(dbseek((TPER)->idc_bien)) .and.alltrim(aParams[3])=alltrim((TPAS)->password)
if (TPAS)->reset // SI ES TRUE TENGO QUE PEDIR A USUARIO NUEVA CONTRASEÑA Y GRABAR .F. EN RESET
DEFINE DIALOG xDlg TITLE "Cambio de Contraseña" SIZE 600, 360
@ 15, 150 SAY 'D.N.I.: '+Nombre SIZE 300, 40 OF xDlg
@ 35, 150 SAY 'Profesional : '+Profe SIZE 300, 40 OF xDlg
@ 79, 90 SAY "Nueva Contraseña :" SIZE 250, 40 OF xDlg
@ 76, 310 GET oGet3 VAR cvar SIZE 200, 35 OF xDlg
@ 139, 30 SAY "Reingresa Nueva Contraseña :" SIZE 300, 40 OF xDlg
@ 136, 310 GET oGet4 VAR cNue SIZE 200, 35 OF xDlg
@ 210, 160 BUTTON "Ok" OF xDlg ACTION ACTION document.location = "otto.exe?dos:"+;
document.getElementById( "oGet3" ).value + ":" + ;
document.getElementById( "oGet4" ).value + ":"
// ACA ES DONDE QUIERO MANDAR LA VARIABLE IDBIEN
@ 210, 300 BUTTON "Cancel" OF xDlg ACTION xDlg:end()
ACTIVATE DIALOG xDlg
endif
else
lRet:=.F.
msginfo('Contraseña errónea.','Atención')
endif
PidoCuim()
(TPER)->(dbclosearea())
(TPAS)->(dbclosearea())
*************************
return ( lRet )
function PidoCuim
*================
LOCAL xDlg , oget
LOCAL cvar:=' '
DEFINE DIALOG xDlg TITLE "Seleccione el Inmueble" SIZE 650, 400
@ 69, 180 SAY "C.U.I.M.:" SIZE 140, 40 OF xDlg
@ 66, 305 GET OGET VAR cvar SIZE 300, 40 OF xDlg
ACTIVATE DIALOG xDlg NOWAIT
return nil
gracias !!!
#include "FiveWeb.ch"
#include "ads.ch"
//----------------------------------------------------------------------------//
function Main( cParams )
local oDlg, oGet1, oGet2
local cDni := Space( 11 ), cPass := ''
local AppName:= AppName()
cDni := Space( 11 )
cPass := Space( 8 )
// SET BACKIMAGE TO "http://fiveweb.googlecode.com/svn/trunk ... /beach.jpg"
SET BACKIMAGE TO "http://fiveweb.googlecode.com/svn/trunk ... ynight.jpg"
SetTheme( "start" )
if pcount() > 0
Process( cParams )
return nil
endif
DEFINE DIALOG oDlg TITLE "Gestión de Profesionales" SIZE 600, 360
@ 38, 40 SAY "D.N.I.:" OF oDlg
@ 36, 190 GET oGet1 VAR cDni OF oDlg SIZE 200, 35
@ 85, 40 SAY "Contraseña :" OF oDlg
@ 83, 190 GET oGet2 VAR cPass OF oDlg SIZE 200, 35 PASSWORD
@ 210, 160 BUTTON "Ok" OF oDlg ;
ACTION document.location = "otto.exe?uno:"+;
document.getElementById( "oGet1" ).value + ":" + ;
document.getElementById( "oGet2" ).value + ":"
@ 210, 300 BUTTON "Cancel" OF oDlg
ACTIVATE DIALOG oDlg NOWAIT
return nil
//----------------------------------------------------------------------------//
function Process( cParams )
local TPAS , aPer
local i
local aParams := hb_aTokens( cParams, ":" )
do case
case aParams[ 1 ] == "uno"
SetIniciales()
RDDActual()
if !AdsConnect60( "\\192.168.1.8\comuna2\ps-datos\unire.add" , 7 , "ADSSYS" , "/-789" )
msginfo('No se puedo conectar al diccionario de datos.')
endif
BuscoPersona ( aParams )
case aParams[ 1 ] == "dos"
if !aParams[2]=aParams[3]
msginfo('Error al ingresar la nueva contraseña.','Atención.')
else
SetIniciales()
RDDActual()
if !AdsConnect60( "\\192.168.1.8\comuna2\ps-datos\unire.add" , 7 , "ADSSYS" , "/-789" )
msginfo('No se puedo conectar al diccionario de datos.')
endif
// TPAS:=abro('TPASWORD',1)
//ACA ES DONDE NECESTIO LA VARIABLE IDBIEN
msginfo(aParams[4])
/* if (TPAS)->(dbseek( IdBien ))
(TPAS)->(dbrlock())
(TPAS)->reset:=.F.
(TPAS)->(dbunlock())
msginfo('Contraseña cambiada.')
endif
*/
// (TPAS)->(dbclosearea())
// UNA VEZ VALIDADA PERSONA Y CONTRASEÑA PIDE EL INMUEBLE A CONSULTAR
PidoCuim()
// CON EL ID DEL INMUEBLE GENERA UN REPORTE QUE VA A PDF (FALTA)
endif
end case
return nil
//----------------------------------------------------------------------------//
function BuscoPersona ( aParams )
*=====================
LOCAL xDlg , oGet4:='' , oGet3:='' , lRet:=.T. , xSave:=.F. , Nombre:='' , Profe:='' , oSay , IdBien
LOCAL cvar:=space(8)
LOCAL cnue:=space(8)
LOCAL AGRI , TPAS , TPER:=abro('TPERSONA',5)
if !(TPER)->(dbseek( aParams[2] ))
msginfo('No existe la persona.','Atención')
lRet:=.F.
else
Nombre:=(TPER)->doc_nro+' - '+(TPER)->apellido
AGRI:=abro('TAGRIMEN',1)
if !(AGRI)->(dbseek( (TPER)->idc_con ))
msginfo('La persona no es PROFESIONAL','Atención')
lRet:=.f.
else
Profe:= (AGRI)->titulo
endif
(AGRI)->(dbclosearea())
endif
// *** cambia contraseña ***
TPAS:=abro('TPASWORD',1)
IdBien:=(TPER)->idc_bien
if (TPAS)->(dbseek((TPER)->idc_bien)) .and.alltrim(aParams[3])=alltrim((TPAS)->password)
if (TPAS)->reset // SI ES TRUE TENGO QUE PEDIR A USUARIO NUEVA CONTRASEÑA Y GRABAR .F. EN RESET
DEFINE DIALOG xDlg TITLE "Cambio de Contraseña" SIZE 600, 360
@ 15, 150 SAY 'D.N.I.: '+Nombre SIZE 300, 40 OF xDlg
@ 35, 150 SAY 'Profesional : '+Profe SIZE 300, 40 OF xDlg
@ 79, 90 SAY "Nueva Contraseña :" SIZE 250, 40 OF xDlg
@ 76, 310 GET oGet3 VAR cvar SIZE 200, 35 OF xDlg
@ 139, 30 SAY "Reingresa Nueva Contraseña :" SIZE 300, 40 OF xDlg
@ 136, 310 GET oGet4 VAR cNue SIZE 200, 35 OF xDlg
@ 210, 160 BUTTON "Ok" OF xDlg ACTION ACTION document.location = "otto.exe?dos:"+;
document.getElementById( "oGet3" ).value + ":" + ;
document.getElementById( "oGet4" ).value + ":"
// ACA ES DONDE QUIERO MANDAR LA VARIABLE IDBIEN
@ 210, 300 BUTTON "Cancel" OF xDlg ACTION xDlg:end()
ACTIVATE DIALOG xDlg
endif
else
lRet:=.F.
msginfo('Contraseña errónea.','Atención')
endif
PidoCuim()
(TPER)->(dbclosearea())
(TPAS)->(dbclosearea())
*************************
return ( lRet )
function PidoCuim
*================
LOCAL xDlg , oget
LOCAL cvar:=' '
DEFINE DIALOG xDlg TITLE "Seleccione el Inmueble" SIZE 650, 400
@ 69, 180 SAY "C.U.I.M.:" SIZE 140, 40 OF xDlg
@ 66, 305 GET OGET VAR cvar SIZE 300, 40 OF xDlg
ACTIVATE DIALOG xDlg NOWAIT
return nil
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: fiveweb
Silvina,
No uso ADS ni lo tengo instalado.
Que librerías enlazas y que tendría que instalar para poder probar tu aplicación ?
No uso ADS ni lo tengo instalado.
Que librerías enlazas y que tendría que instalar para poder probar tu aplicación ?
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: fiveweb
Puedes proporcionarme una URL para probar tu aplicación ?
Envíame la URL por email si quieres
Envíame la URL por email si quieres
-
- Posts: 61
- Joined: Tue Nov 19, 2013 2:13 pm
Re: fiveweb
ok, lo preparo y te lo mando por mail..
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: fiveweb
Solucionado asi:
@ 210, 160 BUTTON "Ok" OF xDlg ACTION ACTION document.location = "otto.exe?dos:"+;
document.getElementById( "oGet3" ).value + ":" + ;
document.getElementById( "oGet4" ).value + ":"
ATail( oDlg:aControls ):cAction += '+ "' + aParams[ 4 ] + '"'
@ 210, 160 BUTTON "Ok" OF xDlg ACTION ACTION document.location = "otto.exe?dos:"+;
document.getElementById( "oGet3" ).value + ":" + ;
document.getElementById( "oGet4" ).value + ":"
ATail( oDlg:aControls ):cAction += '+ "' + aParams[ 4 ] + '"'