FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour fiveweb
Posts: 61
Joined: Tue Nov 19, 2013 02:13 PM
fiveweb
Posted: Tue Feb 02, 2016 08:34 PM

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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: fiveweb
Posted: Tue Feb 02, 2016 09:09 PM
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 :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: fiveweb
Posted: Tue Feb 02, 2016 09:14 PM

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

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 61
Joined: Tue Nov 19, 2013 02:13 PM
fiveweb
Posted: Wed Feb 10, 2016 02:01 PM

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 + ":" ;

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: fiveweb
Posted: Wed Feb 10, 2016 05:42 PM

Silvina,

Env铆ame el c贸digo fuente o publicalo aqui y lo revisar茅

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 61
Joined: Tue Nov 19, 2013 02:13 PM
Re: fiveweb
Posted: Wed Feb 10, 2016 07:25 PM

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

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: fiveweb
Posted: Wed Feb 10, 2016 07:33 PM

Silvina,

No uso ADS ni lo tengo instalado.

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

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: fiveweb
Posted: Wed Feb 10, 2016 07:34 PM

Puedes proporcionarme una URL para probar tu aplicaci贸n ?

Env铆ame la URL por email si quieres

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 61
Joined: Tue Nov 19, 2013 02:13 PM
Re: fiveweb
Posted: Wed Feb 10, 2016 08:00 PM

ok, lo preparo y te lo mando por mail..

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: fiveweb
Posted: Thu Feb 11, 2016 10:17 PM

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 ] + '"'

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 61
Joined: Tue Nov 19, 2013 02:13 PM
Re: fiveweb
Posted: Fri Feb 12, 2016 12:15 PM

Sldos
Silvina

:D:D

Continue the discussion