Page 1 of 1

fiveweb

PostPosted: Tue Feb 02, 2016 8:34 pm
by silvinamazzaro
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

Re: fiveweb

PostPosted: Tue Feb 02, 2016 9:09 pm
by Antonio Linares
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/src/a14fecf44a7031757e19b7341dc5ba0453cea4b6/samples/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 :-)

Re: fiveweb

PostPosted: Tue Feb 02, 2016 9:14 pm
by Antonio Linares
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

fiveweb

PostPosted: Wed Feb 10, 2016 2:01 pm
by silvinamazzaro
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 + ":" ;

Re: fiveweb

PostPosted: Wed Feb 10, 2016 5:42 pm
by Antonio Linares
Silvina,

Envíame el código fuente o publicalo aqui y lo revisaré

Re: fiveweb

PostPosted: Wed Feb 10, 2016 7:25 pm
by silvinamazzaro
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/images/beach.jpg"
SET BACKIMAGE TO "http://fiveweb.googlecode.com/svn/trunk/images/citynight.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

Re: fiveweb

PostPosted: Wed Feb 10, 2016 7:33 pm
by Antonio Linares
Silvina,

No uso ADS ni lo tengo instalado.

Que librerías enlazas y que tendría que instalar para poder probar tu aplicación ?

Re: fiveweb

PostPosted: Wed Feb 10, 2016 7:34 pm
by Antonio Linares
Puedes proporcionarme una URL para probar tu aplicación ?

Envíame la URL por email si quieres

Re: fiveweb

PostPosted: Wed Feb 10, 2016 8:00 pm
by silvinamazzaro
ok, lo preparo y te lo mando por mail..

Re: fiveweb

PostPosted: Thu Feb 11, 2016 10:17 pm
by Antonio Linares
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 ] + '"'

Re: fiveweb

PostPosted: Fri Feb 12, 2016 12:15 pm
by silvinamazzaro
:D :D

Sldos
Silvina