Ejecutar acceso luego a menu...(Solucionado)

Ejecutar acceso luego a menu...(Solucionado)

Postby ACC69 » Thu Apr 07, 2016 5:59 pm

Hola buenas tardes , de antemano les envio cordial saludos .

Estoy desarrollando un nuevo proyecto y creo en primer lugar el dialogo que se me pide Usuario y Clave,una vez confirmado la clave me debe abrir otro dialogo para mandar a la pantalla del menu, y si funciona, pero al parecer en el primer dialogo se me queda colgado o sea abierto ya que al cerrar el menu,el primer dialogo se me queda abierto sin cerrar,como lo harian ustedes o como hicieron en sus programas para accesar y entrar al menu y cerrar el primer dialogo.

pongo el codigo sencillo


Code: Select all  Expand view
#include "FiveWin.ch"

REQUEST  DbfCdx, DbfFpt, RPreview
EXTERNAL OrdKeyCount, OrdKeyGoTo, OrdKeyNo

STATIC DbfS01, DbfS02, DbfS03, DbfS04, DbfS05, DbfS06, DbfS07                ,;
       CreaDbf01,CreaDbf02,CreaDbf03,CreaDbf04,CreaDbf05,CreaDbf06,CreaDbf07 ,;
       aData
STATIC cUsuar, cClave

Memvar cPath, cDirReport, nNumEmp, cRutaDat

//------------------------------------------------------------------------------
FUNCTION PRINCIPAL()
 LOCAL oDlg, oSay, oGet, oBtn
 LOCAL cIni

 FIELD CVEOPERA, CVESATCONT,AMMOV

 Public cPath,cDirReport,cRutaDat,nNumEmp

 SET EXCLUSIVE OFF
 SET 3DLOOK ON
 SET DELETED ON
 SET CONFIRM ON
 SET EPOCH TO 1969
 SET DATE BRITISH

 SetHandleCount(64)
 DbSetDriver("DBFCDX")
 RddSetDefault("DBFCDX")

 cIni       := ".\DecFiscSAT.ini"
 cPath      := GetPvProfString("Proveedor","DirRuta","",cIni)
 cDirReport := GetPvProfString("Proveedor","DirReport","",cIni)
 cPath      := IF(!Empty(cPath),cPath,"\"+CurDir()+"\")

 SET DEFAULT TO &cPath

 cRutaDat  := "
..\CObSAT\EMP01\"

 //---------------- ABRIR BASES DE DATOS ---------------------------\\
   Instrucciones .....
 *---------------- FIN DE ABRIR BASES DE DATOS -----------------------*
 *\\--------------------------------------------------------------------//*

 oGet   := Array(2)
 oSay   := Array(1)
 oBtn   := Array(2)

 cUsuar := SPACE(22)
 cClave := SPACE(6)

 DEFINE DIALOG oDlg RESOURCE "
USERCVE" TITLE "Acceso al control obligaciones de SAT"
   REDEFINE GET oGet[01] VAR cUsuar ID 101 OF oDlg PICTURE "
@K!" // VALID Acceso(cPassw) FONT oFnP
   REDEFINE GET oGet[02] VAR cClave ID 102 OF oDlg PICTURE "
@K!" // VALID Acceso(cPassw) FONT oFnP

   REDEFINE BUTTON oBtn[1] ID 201 OF oDlg ACTION ACCESO(oDlg)
   REDEFINE BUTTON oBtn[2] ID 202 OF oDlg // ACTION oDlg:END()
 ACTIVATE DIALOG oDlg CENTERED
RETURN NIL

//------------------------------------------------------------------------------
STATIC FUNCTION ACCESO(oDlg)
 oDlg:Hide()

 nNumEmp   := 1
 *cRutaDat  := "
C:\Proy_Hb\CObSAT\EMP01"
 cRutaDat  := "
..\CObSAT\EMP01"

 oDlg:End() // Si le pongo esto se me cierra todo y no visualizo la pantalla del menu del siguiente archivo menu.prg y si le quito si funciona,
                 // pero se me queda colgado sin cerrar...

 ACCESAMENU()  // Esta parte es donde abre el otro prg la pantalla de menu
RETURN NIL



Aqui otro prg para otro dialogo menu,lo abre bien sin hacer oDlg:End(),pero no pasa a la pantalla del menu, y si lo quito si pasa al menu.
Como lo hacen ustedes.



Code: Select all  Expand view
// MENU PRINCIPAL
// < ADMPERSO >

#include "FiveWin.ch"

#Define CLR_WINDOW   16

STATIC DbfS01,CreaDbf01, DbfS02,CreaDbf02, S01,S02
Static aMod[12], aPer[12], oItem[99], cColorPan

Memvar oWnd

//------------------------------------------------------------------------------
FUNCTION ACCESAMENU()
 LOCAL oIcon, oFont1,oFont2, oBmp, oBar, cCve
 LOCAL oMsg,nClr
 LOCAL nResoAncho := GetSysMetrics(0)

 PUBLIC oWnd
 nClr := GetSysColor(CLR_WINDOW)

 AFill(aMod,.T.)
 AFill(aPer,.T.)

 SetGetColorFocus(RGB(203,223,254)) // Definir colores en todo los gets Color azul cielo

 DEFINE FONT oFont1 NAME "MS Sans Serif" SIZE 0,-10
 DEFINE FONT oFont2 NAME "MS Sans Serif" SIZE 0,-9 BOLD

 DEFINE BITMAP oBmp FILENAME "LogoRAVA.BMP"
 DEFINE ICON oICON RESOURCE "USER"
 *DEFINE ICON oIcon  FILE "ICONOS\CHECADOR.ICO"

 DEFINE WINDOW oWnd MENU DespMenu() ICON oICON Title "Control de obligaciones de SAT" MenuInfo 1 MDI COLOR nClr,nClr
   SET FONT OF oWnd TO oFont1
   SET MESSAGE OF oWnd TO "Selección de empresa..." CENTER

   DEFINE BUTTONBAR oBar 3DLOOK BUTTONSIZE 26,26 OF oWnd

   oWnd:bPainted := { | hDC | BmpTiled( hDC, oWnd, oBmp ) }


   oWnd:oMsgBar:KeybOn()
   oWnd:oMsgBar:DateOn()
 ACTIVATE WINDOW oWnd MAXIMIZED

 DbCloseAll()
 oFont1:End()
RETURN NIL



Cualquier solucion respecto al tema, quedo de ustedes, se que es algo sencillo, pero no doy con ello, o algo estoy haciendo mal...

Saludos y buen dia

Atte: Adrian C. C.
Last edited by ACC69 on Fri Apr 22, 2016 4:21 pm, edited 1 time in total.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Ejecutar acceso luego a menu...

Postby joseluisysturiz » Thu Apr 07, 2016 8:19 pm

Intenta colocando el modulo de acceso en el on init de la ventana, y revisa a donde le haces el OF del DLG y obviamente, no debes olvidar al entrar el usuario el oDlg:END() de acceso, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Ejecutar acceso luego a menu...

Postby ACC69 » Thu Apr 07, 2016 9:02 pm

joseluisysturiz wrote:Intenta colocando el modulo de acceso en el on init de la ventana, y revisa a donde le haces el OF del DLG y obviamente, no debes olvidar al entrar el usuario el oDlg:END() de acceso, saludos... :shock:



Gracias Ing. Jose Luis, ya lo habia hecho asi, pero lo que pasa, no quiero que me muestre en segundo plano la pantalla de menus , solo quiero que en primer plano muestre el dialogo de acceso al usuario y clave y de ahi una vez que se valide ya que me muestre ahora si la pantalla de menu, es por eso de hacerlo a la inversa, de mi nuevo proyecto, todos mis programas, siempre muestra primer plano dialogo de acceso , segundo plano pantalla de menus, ahora solo quiero que me muestre dialogo de usuario y clave, para luego accesar a la pantalla de menus, pero eso es con la finalidad de antes de entrar a la pantalla de menu, tenga un xbrowse con la lista de empresas a seleccionar y accesar al menu esa es la intencion de mi nuevo proyecto.

Espero haberme explicado.

Saludos.

Atte: Adrian C. C.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Ejecutar acceso luego a menu...

Postby cnavarro » Thu Apr 07, 2016 9:40 pm

Adrian, una posible solucion puede ser.... ( espero lo entiendas )

Code: Select all  Expand view


Function Main()

  DEFINE WINDOW oWnd;
           MENU MyMenu() TITLE "MenuTest - Fivewin"

  ACTIVATE WINDOW oWnd ON INIT ( oWnd:Hide(), Dlg1() )   // Aqui llamas al dialogo de Acceso
   
Return nil

.../...
// En el dialogo de acceso
   // En el valid del dialog, es correcto el acceso
   REDEFINE BUTTON oBtnA ID 4006 OF oDlg Action ( oDlg:End(), oWnd:Show() ) //Msginfo("OK")
   // en el valid del dialog, aqui lo simulo al pulsar un boton
   REDEFINE BUTTON oBtnB ID 4007 OF oDlg Action ( oDlg:End(), oWnd:End() )  // Si no es correcto el acceso

 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Ejecutar acceso luego a menu...

Postby joseluisysturiz » Thu Apr 07, 2016 9:46 pm

Te entiendo claramente, entonces creo debes hacer tu dlg de acceso en el MAIN y luego llamar a las ventanas o dlg siguientes, o no se si habra alguna manera de ocultar la ventana del menu y que te la muestre despues de validar al usuario y alla hecho la seleccion de la empresa...hago algo como lo que haces...pero como no me importa mostrar el menu..lo cargo en el INIT, intenta hacer tu validacion de usuario en el main(), es lo que se me ocurre...yo tenia un programito que al iniciar tenia un DLG con 4 botones grandes...y dependiendo de lo que el usuario seleccionara,,entonces llamaba ventanas...el MAIN() hasta donde se no tiene que ser ajuro una ventana, espero haberte dado alguna buena idea, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Ejecutar acceso luego a menu...

Postby joseluisysturiz » Thu Apr 07, 2016 9:49 pm

cnavarro wrote:Adrian, una posible solucion puede ser.... ( espero lo entiendas )

Code: Select all  Expand view


Function Main()

  DEFINE WINDOW oWnd;
           MENU MyMenu() TITLE "MenuTest - Fivewin"

  ACTIVATE WINDOW oWnd ON INIT ( oWnd:Hide(), Dlg1() )   // Aqui llamas al dialogo de Acceso
   
Return nil

.../...
// En el dialogo de acceso
   // En el valid del dialog, es correcto el acceso
   REDEFINE BUTTON oBtnA ID 4006 OF oDlg Action ( oDlg:End(), oWnd:Show() ) //Msginfo("OK")
   // en el valid del dialog, aqui lo simulo al pulsar un boton
   REDEFINE BUTTON oBtnB ID 4007 OF oDlg Action ( oDlg:End(), oWnd:End() )  // Si no es correcto el acceso

 


A esto me referia, ya NAVARRO lo dijo, ocultas la WND y luego la muestras...o como ya te comente..la creas llamando otro PRG, FUNCTION, PROCEDURE, como quieras....a menos que construyas el menu del usuario personalizado dependiendo de su nivel...saludos...
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Ejecutar acceso luego a menu...

Postby ACC69 » Thu Apr 07, 2016 10:07 pm

joseluisysturiz wrote:
cnavarro wrote:Adrian, una posible solucion puede ser.... ( espero lo entiendas )

Code: Select all  Expand view


Function Main()

  DEFINE WINDOW oWnd;
           MENU MyMenu() TITLE "MenuTest - Fivewin"

  ACTIVATE WINDOW oWnd ON INIT ( oWnd:Hide(), Dlg1() )   // Aqui llamas al dialogo de Acceso
   
Return nil

.../...
// En el dialogo de acceso
   // En el valid del dialog, es correcto el acceso
   REDEFINE BUTTON oBtnA ID 4006 OF oDlg Action ( oDlg:End(), oWnd:Show() ) //Msginfo("OK")
   // en el valid del dialog, aqui lo simulo al pulsar un boton
   REDEFINE BUTTON oBtnB ID 4007 OF oDlg Action ( oDlg:End(), oWnd:End() )  // Si no es correcto el acceso

 


A esto me referia, ya NAVARRO lo dijo, ocultas la WND y luego la muestras...o como ya te comente..la creas llamando otro PRG, FUNCTION, PROCEDURE, como quieras....a menos que construyas el menu del usuario personalizado dependiendo de su nivel...saludos...



Gracias a ambos , hare la prueba y les comento que tal funciona, en clipper, no tenia problemas, creaba primero pantalla de usuario y clave y luego se llamaba a DO MENU y zas todo de maravilla, pero en fivewin veo que no es asi, y eso desde principio me acostumbre de esa manera ,pero ahora quiero hacerlo como les comente, es con la finalidad de que el usuario tenga acceso a una o varias empresas y entrar al menu despues de entrar al acceso de usuario y clave ,ya que me pidieron un programa sencillo, pero que el usuario unicamente tenga acceso a una o varias empresas, de eso no tengo problema,el problema es esa, que me deja colgado el primer dialogo de acceso al usuario.

He visto un programa con esa caracteristica aqui en el foro, pero no recuerdo quien fue que la desarrollo, bueno solo eran unas imagenes.

Hare la prueba y les comento.

Gracias a ambos y saludos.

Atte: Adrian C. C.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Ejecutar acceso luego a menu...

Postby joseluisysturiz » Thu Apr 07, 2016 10:26 pm

Adrian, lo que quieres lo puedes hacer sin ningun problema como te domente...coloca tu dlg de validacion en el MAIN() de tu sistema y dependiendo de lo que te arroje tu validacion..o sacas al usuario del sistema con oDlg:END() o llamas tu modulo donde seleccionas las empresas pero igual usas antes el oDlg:end(). Alli te dejo algo a vuelo de pajaro tipo seudocoide, espero te sirva y puedas entenderlo, espero no tener algun error, si no te lo aclaro, saludos... :shock:

function main()
var lOk := .f.

defino dlg control acceso
leo datos del usuario

boton aceptar accion lOk := valido_user(), oDlg:end()
boton salir accion oDlg:end()

activo dlg

sil Ok
llamo funcion empresas()
fin si

return nil

function valido_user()
lok := .f.
si user esta bien
lok := .t.
fin si
return lOk
Dios no está muerto...

Gracias a mi Dios ante todo!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Re: Ejecutar acceso luego a menu...

Postby Maggiro » Fri Apr 08, 2016 1:59 am

Adrian:
Para hacer exactamente lo que buscas, tienes que sacar la rutina de password de tu MAIN ...

Intenta Asi:
STATIC MIVENTANAMENU
FUNCTION Main()
IF Password()
DEFINE WINDOW MIVENTANAMENU
ACTIVATE WINDOW MIVENTANAMENU
ENDI
RETU NIL

FUNCTION PASSWORD()
LOCAL VF
VF=.F.
... TU RUTINA
PASSWORD CORRECTO?? VF=.T.
RETU VF
User avatar
Maggiro
 
Posts: 84
Joined: Thu Oct 14, 2010 3:26 am
Location: LIMA - PERU

Re: Ejecutar acceso luego a menu...

Postby FranciscoA » Fri Apr 08, 2016 2:44 am

Adrian, tambien podés intentar asi:
//codigo parcial

Code: Select all  Expand view
#include "FiveWin.ch"

static oWnd
static cIniFile:=".\Wcont32.ini"
static cPathDef
Static cUsuario, cNombUser, cPermiso :="T"

//----------------
Function Main()
   local oBar,oBoto1,oBoto2,oBoto3,oBoto4,oBoto5,oBoto6,oBoto7,oBoto8,oBoto9,oBoto10
   local oMenu, oBmp, oMainFont
   local oBoto1_1, cUsuarioLegal

   cPathDef:= GetPvProfString( "Config", "Path" , ".\" ,  cIniFile )

   SET DEFAULT TO (cPathDef)

   SET RESOURCES TO (cPathDef)+"
\Wcont32.DLL"

   SET DATE BRITISH
   SET EPOCH TO 1995
   SET CENTURY ON
   SET DELETED ON

IF !lAutorizado()
   SET RESOURCES TO
   DBCLOSEALL()
   RETURN NIL
ENDIF



   DEFINE WINDOW oWnd MDI TITLE "
WINCONT   "+EMPRESA

   DEFINE BUTTONBAR oBar OF oWnd SIZE 60, 64 2007

   DEFINE BUTTON oBoto1 RESOURCE "
FOLDER40"    PROMPT "CDiario"   OF oBar TOOLTIP "Elaborar Comprobantes de Diario"  ACTION Comprobante(.t.,"CD",oMenu:aMenuItems[4])
   DEFINE BUTTON oBoto1_1 RESOURCE "
CAJAa40"   PROMPT "RecibCaj"  OF oBar TOOLTIP "Jornalizar Recibos de Caja"       ACTION Comprobante(.t.,"RJ",oMenu:aMenuItems[4])
   DEFINE BUTTON oBoto10 RESOURCE "
FINALIZAR"  PROMPT "Finalizar" OF oBar TOOLTIP "Salir del Sistema"                ACTION oWnd:End()

   SET MESSAGE OF oWnd TO MEMBRE ;
      CENTERED CLOCK KEYBOARD 2007

   oWnd:SetMenu( oMenu:=BuildMenu(oBar) ) //MENUINFO 2

   ACTIVATE WINDOW oWnd MAXIMIZED
       Cerrar()
return nil

//----------------------------//Aqui va tu funcion de validacion del usuario
Function lAutorizado()
local TodoBien := .f.
//aqui tu codigo de acceso comprobar usuario, clave, etc.....
if TodoBien
   lRet := .t.
endif
Return lRet  

//-----------------------------
Function Cerrar()
   dbCloseAll()

   SET RESOURCES TO

   BorrTemp()
Return nil

//----------------------------------------------------------------------------//
Function BuildMenu(oBar)
   local cFecha
   local oMenu, oItem1,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9

   MENU oMenu 2007

      MENUITEM oItem1 PROMPT "
&Fichero"
      MENU
         MENUITEM "
&Catalogo de Cuentas" ACTION ( Catalogo() )
         SEPARATOR
         MENUITEM "
&Salir..."  ACTION oWnd:End() MESSAGE "Finalizar esta sesion"
      ENDMENU

   ENDMENU

return oMenu


Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2158
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Ejecutar acceso luego a menu...

Postby ACC69 » Fri Apr 08, 2016 9:54 pm

FranciscoA wrote:Adrian, tambien podés intentar asi:
//codigo parcial

Code: Select all  Expand view
#include "FiveWin.ch"

static oWnd
static cIniFile:=".\Wcont32.ini"
static cPathDef
Static cUsuario, cNombUser, cPermiso :="T"

//----------------
Function Main()
   local oBar,oBoto1,oBoto2,oBoto3,oBoto4,oBoto5,oBoto6,oBoto7,oBoto8,oBoto9,oBoto10
   local oMenu, oBmp, oMainFont
   local oBoto1_1, cUsuarioLegal

   cPathDef:= GetPvProfString( "Config", "Path" , ".\" ,  cIniFile )

   SET DEFAULT TO (cPathDef)

   SET RESOURCES TO (cPathDef)+"
\Wcont32.DLL"

   SET DATE BRITISH
   SET EPOCH TO 1995
   SET CENTURY ON
   SET DELETED ON

IF !lAutorizado()
   SET RESOURCES TO
   DBCLOSEALL()
   RETURN NIL
ENDIF



   DEFINE WINDOW oWnd MDI TITLE "
WINCONT   "+EMPRESA

   DEFINE BUTTONBAR oBar OF oWnd SIZE 60, 64 2007

   DEFINE BUTTON oBoto1 RESOURCE "
FOLDER40"    PROMPT "CDiario"   OF oBar TOOLTIP "Elaborar Comprobantes de Diario"  ACTION Comprobante(.t.,"CD",oMenu:aMenuItems[4])
   DEFINE BUTTON oBoto1_1 RESOURCE "
CAJAa40"   PROMPT "RecibCaj"  OF oBar TOOLTIP "Jornalizar Recibos de Caja"       ACTION Comprobante(.t.,"RJ",oMenu:aMenuItems[4])
   DEFINE BUTTON oBoto10 RESOURCE "
FINALIZAR"  PROMPT "Finalizar" OF oBar TOOLTIP "Salir del Sistema"                ACTION oWnd:End()

   SET MESSAGE OF oWnd TO MEMBRE ;
      CENTERED CLOCK KEYBOARD 2007

   oWnd:SetMenu( oMenu:=BuildMenu(oBar) ) //MENUINFO 2

   ACTIVATE WINDOW oWnd MAXIMIZED
       Cerrar()
return nil

//----------------------------//Aqui va tu funcion de validacion del usuario
Function lAutorizado()
local TodoBien := .f.
//aqui tu codigo de acceso comprobar usuario, clave, etc.....
if TodoBien
   lRet := .t.
endif
Return lRet  

//-----------------------------
Function Cerrar()
   dbCloseAll()

   SET RESOURCES TO

   BorrTemp()
Return nil

//----------------------------------------------------------------------------//
Function BuildMenu(oBar)
   local cFecha
   local oMenu, oItem1,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9

   MENU oMenu 2007

      MENUITEM oItem1 PROMPT "
&Fichero"
      MENU
         MENUITEM "
&Catalogo de Cuentas" ACTION ( Catalogo() )
         SEPARATOR
         MENUITEM "
&Salir..."  ACTION oWnd:End() MESSAGE "Finalizar esta sesion"
      ENDMENU

   ENDMENU

return oMenu


Saludos.



Gracias a todos los que me respondieron, y con sus ejemplos, aun sigo con ese detalle,espero hacerlo funcionar este fin de semana,aunque me surge otras dudas, ya luego les hago la consulta de nuevo.

Gracias

Saludos

Atte: Adrian C. C.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Ejecutar acceso luego a menu...

Postby ACC69 » Fri Apr 22, 2016 4:20 pm

ACC69 wrote:
FranciscoA wrote:Adrian, tambien podés intentar asi:
//codigo parcial

Code: Select all  Expand view
#include "FiveWin.ch"

static oWnd
static cIniFile:=".\Wcont32.ini"
static cPathDef
Static cUsuario, cNombUser, cPermiso :="T"

//----------------
Function Main()
   local oBar,oBoto1,oBoto2,oBoto3,oBoto4,oBoto5,oBoto6,oBoto7,oBoto8,oBoto9,oBoto10
   local oMenu, oBmp, oMainFont
   local oBoto1_1, cUsuarioLegal

   cPathDef:= GetPvProfString( "Config", "Path" , ".\" ,  cIniFile )

   SET DEFAULT TO (cPathDef)

   SET RESOURCES TO (cPathDef)+"
\Wcont32.DLL"

   SET DATE BRITISH
   SET EPOCH TO 1995
   SET CENTURY ON
   SET DELETED ON

IF !lAutorizado()
   SET RESOURCES TO
   DBCLOSEALL()
   RETURN NIL
ENDIF



   DEFINE WINDOW oWnd MDI TITLE "
WINCONT   "+EMPRESA

   DEFINE BUTTONBAR oBar OF oWnd SIZE 60, 64 2007

   DEFINE BUTTON oBoto1 RESOURCE "
FOLDER40"    PROMPT "CDiario"   OF oBar TOOLTIP "Elaborar Comprobantes de Diario"  ACTION Comprobante(.t.,"CD",oMenu:aMenuItems[4])
   DEFINE BUTTON oBoto1_1 RESOURCE "
CAJAa40"   PROMPT "RecibCaj"  OF oBar TOOLTIP "Jornalizar Recibos de Caja"       ACTION Comprobante(.t.,"RJ",oMenu:aMenuItems[4])
   DEFINE BUTTON oBoto10 RESOURCE "
FINALIZAR"  PROMPT "Finalizar" OF oBar TOOLTIP "Salir del Sistema"                ACTION oWnd:End()

   SET MESSAGE OF oWnd TO MEMBRE ;
      CENTERED CLOCK KEYBOARD 2007

   oWnd:SetMenu( oMenu:=BuildMenu(oBar) ) //MENUINFO 2

   ACTIVATE WINDOW oWnd MAXIMIZED
       Cerrar()
return nil

//----------------------------//Aqui va tu funcion de validacion del usuario
Function lAutorizado()
local TodoBien := .f.
//aqui tu codigo de acceso comprobar usuario, clave, etc.....
if TodoBien
   lRet := .t.
endif
Return lRet  

//-----------------------------
Function Cerrar()
   dbCloseAll()

   SET RESOURCES TO

   BorrTemp()
Return nil

//----------------------------------------------------------------------------//
Function BuildMenu(oBar)
   local cFecha
   local oMenu, oItem1,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7,oItem8,oItem9

   MENU oMenu 2007

      MENUITEM oItem1 PROMPT "
&Fichero"
      MENU
         MENUITEM "
&Catalogo de Cuentas" ACTION ( Catalogo() )
         SEPARATOR
         MENUITEM "
&Salir..."  ACTION oWnd:End() MESSAGE "Finalizar esta sesion"
      ENDMENU

   ENDMENU

return oMenu


Saludos.



Gracias a todos los que me respondieron, y con sus ejemplos, aun sigo con ese detalle,espero hacerlo funcionar este fin de semana,aunque me surge otras dudas, ya luego les hago la consulta de nuevo.

Gracias

Saludos

Atte: Adrian C. C.


Buenos dias gracias Ingenieros por el ejemplo, me funciona, no habia entrado antes y responderles, como siempre atareado en la empresa donde trabajo.

Saludos cordiales y nuevamente gracias Ingenieros.

Atte: Adrian C. C.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm

Re: Ejecutar acceso luego a menu...(Solucionado)

Postby ACC69 » Fri Apr 22, 2016 4:21 pm

.
ACC69
 
Posts: 632
Joined: Tue Dec 12, 2006 7:34 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot], Horizon and 93 guests