PC SOFT
DEPOT EN LIGNE
POUR WINDEVWEBDEV ET WINDEV MOBILE

Menu Dinamico com WEBDEV com Hfsql
Publié par Boller
dans la catégorie Outils
Nouveautés



Description
Menu Dinamico com WEBDEV com Hfsql

PERMITE CRIAR AS OPÇOES DO MENU VIA BANCO DE DADOS E EXIBIR EM UM TREEVIEW AS OPÇOES EM NIVEIS DE MENU, MENU ITEM E SUB MENU TITEM, ASSIM FACILITANDO O ACESSO AS TELAS DO SISTEMA E SÓ EXIBINDO AS TELAS SE O USUARIO TIVER COM STATUS TRUE NAS TABELAS DE CONTROLE DE SEGURANÇA.

// Summary: <specify the procedure action>
// Syntax:
// Evento_AbrirPagina ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE Evento_AbrirPagina()

//info(TreeSelect(TREE_MENU)) //PROCESSOS CELULARES ALMOXARIFADO

PATH is string = TreeSelect(TREE_MENU)

NIVEL is int = StringCount(PATH,TAB,IgnoreCase) + 1

BUSCA is string = Upper(NoAccent(NoSpace(ExtractString(PATH,1,TAB,FromEnd))))

BUSCA = Replace(BUSCA," ","_",IgnoreCase)

//info(PATH, NIVEL, BUSCA)

SWITCH NIVEL
CASE 1

HReset(Menu)
IF HReadSeek(Menu,menu,BUSCA,hIdentical) = True THEN
PageDisplay("PAGE_"+BUSCA)
END

CASE 2

HReset(MenuItens)
IF HReadSeek(MenuItens,menu_item,BUSCA,hIdentical) = True THEN
PageDisplay("PAGE_"+BUSCA)
END

CASE 3

HReset(MenuSubItens)
IF HReadSeek(MenuSubItens,menu_sub_item,BUSCA,hIdentical) = True THEN
PageDisplay("PAGE_"+BUSCA)
END

OTHER CASE

Info("Página nao localizada")

END



//----------------------------------------------------------------------------------------------------------------------------------------------------------


// Summary: <specify the procedure action>
// Syntax:
// Evento_CriarMenu ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE Evento_CriarMenu()

TreeDeleteAll(TREE_MENU)

FOR EACH Menu //nivel 1

HReset(Usuarios_Menu) //CHAVE COMPOSTA
IF HReadSeek(Usuarios_Menu,KUnica,[GloUserId,Menu.menu_id],hIdentical) = True THEN

IF Usuarios_Menu.status = True AND Usuarios_Menu.usuario_id = GloUserId THEN

TreeAdd(TREE_MENU,Menu.menu) //cria nivel 1

FOR EACH MenuItens where MenuItens.menu_id = Menu.menu_id //nivel 2

HReset(Usuarios_MenuItens) //CHAVE COMPOSTA
IF HReadSeek(Usuarios_MenuItens,Kunica,[GloUserId,MenuItens.menu_itens_id],hIdentical) = True THEN
IF Usuarios_MenuItens.status = True AND Usuarios_MenuItens.usuario_id = GloUserId THEN

TreeAdd(TREE_MENU,Menu.menu +TAB+ MenuItens.menu_item) //cria o nivel 2

FOR EACH MenuSubItens where MenuSubItens.menu_itens_id = MenuItens.menu_itens_id //nivel 3

HReset(Usuarios_MenuSubItens) //CHAVE COMPOSTA
IF HReadSeek(Usuarios_MenuSubItens,KUnica,[GloUserId,MenuSubItens.menu_sub_item_id],hIdentical) = True THEN

IF Usuarios_MenuSubItens.status = True
TreeAdd(TREE_MENU,Menu.menu +TAB+ MenuItens.menu_item +TAB+ MenuSubItens.menu_sub_item)
END

END

//trace(MenuSubItens.menu_itens_id , MenuItens.menu_itens_id,Usuarios_MenuSubItens.menu_sub_item_id,MenuSubItens.menu_sub_item_id, Usuarios_MenuSubItens.status, Usuarios_MenuSubItens.usuario_id , GloUserId)


END

END

END

END

END

END

END

TreeExpandAll(TREE_MENU)


//-----------------------------------------------------------------------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// Evento_Login ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE Evento_Login()

IF EDT_Usuario = "" OR EDT_Senha = "" THEN
Info("Campos Obrigatorios nao preenchidos")
RETURN

ELSE

HReset(Usuarios)

IF HReadSeek(Usuarios,login,EDT_Usuario,hIdentical) = True THEN

IF Usuarios.password = EDT_Senha AND Usuarios.status = True
GloUserId = Usuarios.usuario_id
PageDisplay(PAGE_Inicial)
ELSE
Info("senha errada ou esta desativado")
END

ELSE
Info("Usuario nao encontrado")
MyPage..Plane = 2
Evento_Pergunta_Secreta()
END

END


//------------------------------------------------------------------------------------------------------------------------------


// Summary: <specify the procedure action>
// Syntax:
// Evento_Pergunta_Secreta ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE Evento_Pergunta_Secreta()

HReset(Usuarios)

IF HReadSeek(Usuarios,login,EDT_Usuario,hIdentical) = True THEN
IF Usuarios.pergunta_secreta <> ""
EDT_Pergunta_Secreta = Usuarios.pergunta_secreta
ELSE
Info("Não foi definida uma pergunta secreta")
END

ELSE
Info("Não localizado")
END

//----------------------------------------------------------------------------------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// Evento_Trocar_Senha ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE Evento_Trocar_Senha()

IF EDT_Nova_Senha = "" OR EDT_Confirma_Senha = "" THEN

Info("Campos Obrigatorios nao preenchidos")
RETURN

ELSE

HReset(Usuarios)

IF HReadSeek(Usuarios,login,EDT_Usuario,hIdentical) = True THEN
Usuarios.password = EDT_Nova_Senha
IF HModify(Usuarios) = True THEN
MyPage..Plane = 1
Info("Senha trocada")
ELSE
Info("Nao bate as informações")
END
END

END

//------------------------------------------------------------------------------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// Evento_Verifica_Resposta ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE Evento_Verifica_Resposta()

IF EDT_Pergunta_Secreta = "" OR EDT_Resposta_Secreta = "" THEN
Info("Não localizada a pergunta e resposta secreta, preencha por favor")
RETURN

ELSE

HReset(Usuarios)

IF HReadSeek(Usuarios,login,EDT_Usuario,hIdentical) = True THEN
IF Usuarios.pergunta_secreta = EDT_Pergunta_Secreta AND Usuarios.resposta_secreta = EDT_Resposta_Secreta THEN
MyPage..Plane = 3
ELSE
Info("Resposta Errada")
END
END

END

//-------------------------------------------------------------------------------------------------------------------------------

//----------------- R A D P a t t e r n ---------------
GLOBAL

GloUserId is 8-byte int = 0

HModifyStructure("*")

HCreationIfNotFound("*")

gctGloMyConnect is Connection
gctGloMyConnect..Provider = hAccessHF7
gctGloMyConnect..Access = hOReadWrite

//--------------------------------------------------------------------------------------
Illustrations, copies d'écran
none
none
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
Boller
VIDEO EXPLICATIVO SOBRE O ASSUNTO

https://youtu.be/3GzS1uIFoMg?feature=shared
Boller
USUARIO: ADRIANO
SENHA: 123456