PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 25 → Como fazer um Licenciamento de uma aplicação e cobrar mensalidades?
Como fazer um Licenciamento de uma aplicação e cobrar mensalidades?
Started by Boller, Mar., 30 2020 3:37 PM - 1 reply
Registered member
3,651 messages
Popularité : +175 (223 votes)
Posted on March, 30 2020 - 3:37 PM
Prezados

Como fazer um Licenciamento de uma aplicação e cobrar mensalidades?

GERE UMA TELA COM 3 CAMADAS

Camada 1




Camada 2




Camada 3




Na camada 3 coloque o botao com HotKey que desejar para preencher a liberacao ou faça um mini programa separado de liberacao e nao envie para o cliente.


Segue codigos da janela abaixo:

// Summary: <specify the procedure action>
// Syntax:
// AoAbrir ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
Procedure AoAbrir()

Toast("Bem-Vindo!")

MyHfsql01..Provider = hAccessHFClientServer
MyHfsql01..Database = Banco
MyHfsql01..Server = DNS_IP
MyHfsql01..Source = DNS_IP
MyHfsql01..User = Usuario
MyHfsql01..Password = Senha

HOpenConnection(MyHfsql01)
HChangeConnection("*",MyHfsql01)
HModifyStructure("*")
HCreationIfNotFound("*")


FOR EACH T035_LICENCA
x++
END

ProximaValidacao is Date = DateSys()
ProximaValidacao..Month += 3
ProximaValidacao..Day = 28

//hdeleteall(T035_LICENCA)

HReset(T035_LICENCA)
HReadSeek(T035_LICENCA,T035_LICENCA_ID, 1,hIdentique)

//VERIFICA SE ATRASOU A DATA DO RELOGIO
atrasoudata is boolean
DataInstall is Date = Decode(T035_LICENCA.T035_DATA_INSTALL,encodeBASE64)
IF DataInstall > DateSys() THEN
atrasoudata=True
EndProgram("Você atrasou a data do relogio isso não é legal")
END



//VERIFICA SE EXPIROU
expirou is boolean
UltimoDia is Date = Decode(T035_LICENCA.T035_PROXIMA_ATIVACAO,encodeBASE64)
IF UltimoDia <= DateSys() THEN
expirou=True
Info("Expirou o licenciamento")
END


IF HNbRec(T035_LICENCA) = 0 OR x = 0 OR expirou =True THEN
STC_HD = "Serial HD: "+NumberHD()
EDT_Senha_para_Liberar = Encode(DateSys(),encodeBASE64)
WIN_Seguranca_Login..Plane = 3
EDT_SenhaSecreta = Encode(ProximaValidacao,encodeBASE64) //Alt+F6
ELSE
WIN_Seguranca_Login..Plane = 1
END



// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] Licenciamento (<SenhaLiberar>)
//
// Parameters:
// SenhaLiberar:

Procedure Licenciamento(SenhaLiberar)

ProximaValidacao is Date = DateSys()
ProximaValidacao..Month += 3
ProximaValidacao..Day = 28

IF Decode(SenhaLiberar,encodeBASE64) = DateSys() AND EDT_ContraSenha = Encode(ProximaValidacao,encodeBASE64)

T035_LICENCA.T035_HD = NumberHD()
T035_LICENCA.T035_CONTRA_SENHA = SenhaLiberar
T035_LICENCA.T035_PROXIMA_ATIVACAO = Encode(ProximaValidacao,encodeBASE64)
T035_LICENCA.T035_ASSINATURA_DIGITAL = Encode(ProximaValidacao,encodeBASE64)

IF x=0 THEN
T035_LICENCA.T035_DATA_INSTALL = Encode(DateSys(),encodeBASE64)
HAdd(T035_LICENCA)
ELSE
HModifie(T035_LICENCA)
END


END

Close()




// Summary: <specify the procedure action>
// Syntax:
//LogErro (<EDT_Login>, <EDT_Senha>)
//
// Parameters:
// EDT_Login:
// EDT_Senha:

Procedure LogErro(LoginErrado,SenhaErrada)

T036_Log.T036_DataHora = DateSys() + TimeSys()
T036_Log.T036_Descricao = LoginErrado +" - "+ SenhaErrada
T036_Log.T036_Status = "ERRO"
HAdd(T036_Log)




// Summary: <specify the procedure action>
// Syntax:
// Login ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
Procedure Login()

IF EDT_Login <> "" AND EDT_Senha <> "" THEN

IF Supervisor(EDT_Login,EDT_Senha) = False

HReset(T032_Usuarios)

IF HReadSeek(T032_Usuarios,T032_Login,Upper(EDT_Login),hIdentical) = True THEN

IF Upper(EDT_Login) = Upper(T032_Usuarios.T032_Login) AND Upper(EDT_Senha) = Upper(T032_Usuarios.T032_Senha)

LogOk(EDT_Login,EDT_Senha)

GloUSER = EDT_Login

GloUserID = T032_Usuarios.T032_Usuarios_ID

IF Upper(EDT_Login) = "SUPERVISOR" THEN
GloUSER = EDT_Login
END

IF T032_Usuarios.T032_Supervisor = 1 OR Upper(EDT_Login) = "SUPERVISOR"
GloSuperUser = 1
END

IF Open(WIN_MenuPrincipal) = True THEN

//1 : Sim
//2 : Não
SWITCH Dialog("Deseja encerrar o sistema?")
// Sim
CASE 1
Close()
// Não
CASE 2

END


END

ELSE
gnErro++

LogErro(EDT_Login,EDT_Senha)

IF gnErro = 3 THEN
EndProgram("3X errado e o sistema sera fechado e feito um log de erros")
ELSE
Info("Acesso de usuario e senha invalidos!")
END
END

ELSE
gnErro++

LogErro(EDT_Login,EDT_Senha)

IF gnErro = 3 THEN
EndProgram("3X errado e o sistema sera fechado e feito um log de erros")
ELSE
Info("Acesso de usuario e senha invalidos!")
END
END

ELSE
//SUPERVISOR
GloUSER = EDT_Login
GloSuperUser = 1
IF Open(WIN_MenuPrincipal) = True THEN

//1 : Sim
//2 : Não
SWITCH Dialog("Deseja encerrar o sistema?")
// Sim
CASE 1
Close()
// Não
CASE 2

END
END

END

ELSE

gnErro++

LogErro(EDT_Login,EDT_Senha)

IF gnErro = 3 THEN
EndProgram("3X errado e o sistema sera fechado e feito um log de erros")
ELSE
Info("Acesso de usuario e senha invalidos!")
END

END



// Summary: <specify the procedure action>
// Syntax:
//LogOk (<EDT_Login>, <EDT_Senha>)
//
// Parameters:
// EDT_Login:
// EDT_Senha:

Procedure LogOk(LoginOK,SenhaOK)

T036_Log.T036_DataHora = DateSys() + TimeSys()
T036_Log.T036_Descricao = LoginOK +" - "+ SenhaOK
T036_Log.T036_Status = "OK"
HAdd(T036_Log)


// Summary: <specify the procedure action>
// Syntax:
//LogTrocaSenha (<gLogin>, <gSenha>, <gSenha_Nova>)
//
// Parameters:
// gLogin:
// gSenha:
// gSenha_Nova: <specify the role of gsSenhaNova>

Procedure LogTrocaSenha(gLogin,gSenha,gSenha_Nova)

T036_Log.T036_DataHora = DateSys() + TimeSys()
T036_Log.T036_Descricao = "TrocaDaSenha:"+ gLogin +", Senha Antiga "+ gSenha +", Para: "+ gSenha_Nova
T036_Log.T036_Status = "OK"
HAdd(T036_Log)



// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] Supervisor (<gLogin>, <gSenha>)
//
// Parameters:
// gLogin:
// gSenha:

Procedure Supervisor(gLogin,gSenha)

OK is boolean = False

IF Upper(gLogin) = "SUPERVISOR" AND Upper(gSenha) = "WX@2020" THEN

GloUSER = "SUPERVISOR"

GloSuperUser = 1

HReset(T032_Usuarios) //mata ponteiro
IF HReadSeek(T032_Usuarios,T032_Login,"SUPERVISOR",hIdentical) = False THEN //busca

T032_Usuarios.T032_Nome = "SUPERVISOR"
T032_Usuarios.T032_Login = "SUPERVISOR"
T032_Usuarios.T032_Senha = "WX@2020"
T032_Usuarios.T032_Supervisor = 1
HAdd(T032_Usuarios)

END

Open(WIN_MenuPrincipal)

OK = True

END

RESULT OK



// Summary: <specify the procedure action>
// Syntax:
//TrocarSenha (<gsUsuario>, <gsSenhaAntiga>, <gsSenhaNova>, <gsSenhaConfirmar>)
//
// Parameters:
// gsUsuario:
// gsSenhaAntiga:
// gsSenhaNova: <specify the role of SenhaNova>
// gsSenhaConfirmar: <specify the role of SenhaConfirmar>

Procedure TrocarSenha(gsUsuario,gsSenhaAntiga,gsSenhaNova,gsSenhaConfirmar)

GloUSER = EDT_Login

IF gsSenhaNova <> gsSenhaConfirmar THEN
LogTrocaSenha(EDT_Login,EDT_Senha,gsSenhaNova)
Info("A senha nova e a confirmar senha devem ser iguais")
RETURN
ELSE

IF gsUsuario <> "" AND gsSenhaAntiga <> "" AND gsSenhaNova <> "" AND gsSenhaConfirmar <> ""

HReset(T032_Usuarios)

IF HReadSeek(T032_Usuarios,T032_Login,gsUsuario,hIdentical) = True THEN

IF Upper(gsUsuario) = Upper(T032_Usuarios.T032_Login) AND Upper(gsSenhaAntiga) = Upper(T032_Usuarios.T032_Senha)

LogTrocaSenha(EDT_Login,EDT_Senha,gsSenhaNova)

T032_Usuarios.T032_Senha = gsSenhaNova

HModify(T032_Usuarios)

GloUSER = EDT_Login

Open(WIN_MenuPrincipal)

ELSE
LogTrocaSenha(EDT_Login,EDT_Senha,gsSenhaNova)
Info("Informações erradas")
END

ELSE
LogTrocaSenha(EDT_Login,EDT_Senha,gsSenhaNova)
Info("Informações erradas")
END

ELSE
LogTrocaSenha(EDT_Login,EDT_Senha,gsSenhaNova)
Info("Informações erradas")
END

END


CRIE UM MENU TREE E O CLICK DO MOUSE PEGA O RECURSO QUE DESEJA ABRIR






// Summary:
// Syntax:
//Arvore_Click ()
//
// Parameters:
// None

// Opcao:
PROCEDURE Arvore_Click()

Opcao is string = ExtractString(TreeSelect(TREE_Menu),2,TAB,FromBeginning)

IF Opcao <> "" THEN

IF Opcao = "Agenda" THEN
IF SecWin(GloUSER,"Agenda") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T038_AGENDA)
IW_Tab_T038_AGENDA..Width = gnDesktopSize
END
ELSE IF Opcao = "Usuarios"
IF SecWin(GloUSER,"Usuarios") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_TableForm_T032_Usuarios)
IW_TableForm_T032_Usuarios..Width = gnDesktopSize
END
ELSE IF Opcao = "Diretivas"
IF SecWin(GloUSER,"Diretivas") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_TableForm_T033_Diretivas)
IW_TableForm_T033_Diretivas..Width = gnDesktopSize
END
ELSE IF Opcao = "Usuario X Diretivas"
IF SecWin(GloUSER,"Usuario X Diretivas") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_TableForm_T034_UsuarioXDiretiva)
IW_TableForm_T034_UsuarioXDiretiva..Width = gnDesktopSize
END
ELSE IF Opcao = "Licenca"
IF SecWin(GloUSER,"Licenca") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_TableForm_T035_LICENCA)
IW_TableForm_T035_LICENCA..Width = gnDesktopSize
END
ELSE IF Opcao = "Word"
IF SecWin(GloUSER,"Word") = True
MyWindow..Plane = 2
END
ELSE IF Opcao = "Excel"
IF SecWin(GloUSER,"Excel") = True
MyWindow..Plane = 3
END
ELSE IF Opcao = "PDF"
IF SecWin(GloUSER,"PDF") = True
MyWindow..Plane = 4
END
ELSE IF Opcao = "Imagem"
IF SecWin(GloUSER,"Editor de Imagem") = True
MyWindow..Plane = 5
END
ELSE IF Opcao = "Configuracoes"
IF SecWin(GloUSER,"Configuracoes") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T000_CONFIG)
IW_Tab_T000_CONFIG..Width = gnDesktopSize
END

ELSE IF Opcao = "Clubes"

IF SecWin(GloUSER,"Clubes") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T001_CLUBES)
IW_Tab_T001_CLUBES..Width = gnDesktopSize
END

ELSE IF Opcao = "Epoca Desportiva"
IF SecWin(GloUSER,"Epoca Desportiva") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T014_EPOCADESPORTIVA)
IW_Tab_T014_EPOCADESPORTIVA..Width = gnDesktopSize
END
ELSE IF Opcao = "Campeonatos"
IF SecWin(GloUSER,"Campeonatos") = True
Open(WIN_VISION_T008_CAMPEONATOS)
END
ELSE IF Opcao = "Funcoes"
IF SecWin(GloUSER,"Funcoes") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(WIN_VISION_T003_FUNCAO)
WIN_VISION_T003_FUNCAO..Width = gnDesktopSize
END
ELSE IF Opcao = "Formacao"
IF SecWin(GloUSER,"Formacao") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(WIN_VISION_T004_FORMACOES)
WIN_VISION_T004_FORMACOES..Width = gnDesktopSize
END
ELSE IF Opcao = "Contratos"
IF SecWin(GloUSER,"Contratos") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T005_CONTRATOS)
IW_Tab_T005_CONTRATOS..Width = gnDesktopSize
END
ELSE IF Opcao = "Posicoes"
IF SecWin(GloUSER,"Posicoes") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(WIN_VISION_T006_POSICOES)
WIN_VISION_T006_POSICOES..Width = gnDesktopSize
END
ELSE IF Opcao = "Medidas"
IF SecWin(GloUSER,"Medidas") = True
IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T007_MEDIDAS)
IW_Tab_T007_MEDIDAS..Width = gnDesktopSize
END
ELSE IF Opcao = "Campeonatos" AND SecWin(GloUSER,"Campeonatos") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T008_CAMPEONATOS)
IW_Tab_T008_CAMPEONATOS..Width = gnDesktopSize

ELSE IF Opcao = "Bandeirinhas" AND SecWin(GloUSER,"Bandeirinhas") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(WIN_VISION_T009_BANDEIRINHAS)
WIN_VISION_T009_BANDEIRINHAS..Width = gnDesktopSize

ELSE IF Opcao = "Voltas e Jornadas" AND SecWin(GloUSER,"Voltas e Jornadas") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T010_VOLTAS_JORNADAS)
IW_Tab_T010_VOLTAS_JORNADAS..Width = gnDesktopSize

ELSE IF Opcao = "Jogos" AND SecWin(GloUSER,"Jogos") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T011_JOGOS)
IW_Tab_T011_JOGOS..Width = gnDesktopSize

ELSE IF Opcao = "Gols" AND SecWin(GloUSER,"Gols") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T012_GOLS)
IW_Tab_T012_GOLS..Width = gnDesktopSize

ELSE IF Opcao = "Estadios" AND SecWin(GloUSER,"Estadios") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T013_ESTADIOS)
IW_Tab_T013_ESTADIOS..Width = gnDesktopSize

ELSE IF Opcao = "Arbitros" AND SecWin(GloUSER,"Arbitros") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(WIN_VISION_T014_ARBITROS)
WIN_VISION_T014_ARBITROS..Width = gnDesktopSize

ELSE IF Opcao = "Partgame" AND SecWin(GloUSER,"Partgame") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T015_PARTGAME)
IW_Tab_T015_PARTGAME..Width = gnDesktopSize

ELSE IF Opcao = "Melhor Marcador" AND SecWin(GloUSER,"Melhor Marcador") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T016_MELHOR_MARCADOR)
IW_Tab_T016_MELHOR_MARCADOR..Width = gnDesktopSize

ELSE IF Opcao = "Melhor Guarda Rede" AND SecWin(GloUSER,"Melhor Guarda Rede") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T017_MELHOR_GUARDA_REDE)
IW_Tab_T017_MELHOR_GUARDA_REDE..Width = gnDesktopSize

ELSE IF Opcao = "Cartoes Sofridos" AND SecWin(GloUSER,"Cartoes Sofridos") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T018_CARTOES_SOFRIDOS)
IW_Tab_T018_CARTOES_SOFRIDOS..Width = gnDesktopSize

ELSE IF Opcao = "Medicos" AND SecWin(GloUSER,"Medicos") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(WIN_VISION_T019_MEDICO)
WIN_VISION_T019_MEDICO..Width = gnDesktopSize


ELSE IF Opcao = "Tabela Classificativa" AND SecWin(GloUSER,"Tabela Classificativa") = True

IW_GerenciadorInternalWindow.ChangeSourceWindow(IW_Tab_T021_TABCLASSIFICATIVA)
IW_Tab_T021_TABCLASSIFICATIVA..Width = gnDesktopSize

ELSE IF Opcao = "Exames" AND SecWin(GloUSER,"Exames") = True

Toast("Recurso desativado")

END

ELSE

Info("Opção desabilitada")

END



// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] SecWin (<gUsuario>, <gJanela>)
//
// Parameters:
// gUsuario:
// gJanela:

Procedure SecWin(gUsuario,gJanela)

ok is boolean

gUsuario = Upper(gUsuario)

gJanela = Upper(gJanela)

IF gUsuario <> "" AND gJanela <> "" AND Upper(gUsuario) <> "SUPERVISOR" THEN


HReset(T034_UsuarioXDiretiva)

sUsuario is string = """"+gUsuario+""""

sJanela is string = """"+gJanela+""""

Busca_Buffer is Buffer = HBuildKeyValue(T034_UsuarioXDiretiva,T034_Unico_UsuarioDiretivaStatus,gUsuario,gJanela,1)

IF HReadSeek(T034_UsuarioXDiretiva,T034_Unico_UsuarioDiretivaStatus,Busca_Buffer,hIdentical) = True THEN

IF T034_UsuarioXDiretiva.T034_Status = True THEN
ok = True
ELSE
ok = False
END

ELSE
ok = False
END

ELSE IF Upper(gUsuario) = "SUPERVISOR"
ok = True
ELSE IF GloSuperUser = 1
ok = True
END

IF ok = False THEN
NextTitle("Atenção:")
Info("Recurso está bloqueado para o teu perfil.")
END

RESULT ok




// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] SecWin_CadastraUsuarioXDiretiva (<gUsuarioID>, <gLogin>)
//
// Parameters:
// gUsuarioID:
// gLogin: <specify the role of gLogin>

Procedure SecWin_CadastraUsuarioXDiretiva(gUsuarioID, gLogin)

erro is 8-byte int = 0

FOR EACH T034_UsuarioXDiretiva
IF T034_UsuarioXDiretiva.T032_Usuarios_ID = gUsuarioID THEN
IF HDelete(T034_UsuarioXDiretiva) = False
erro++
END
END
END


FOR EACH T033_Diretivas

T034_UsuarioXDiretiva.T032_Usuarios_ID = gUsuarioID
T034_UsuarioXDiretiva.T034_Login = Upper(gLogin)
T034_UsuarioXDiretiva.T033_Diretivas_ID = T033_Diretivas.T033_Diretivas_ID
T034_UsuarioXDiretiva.T034_Janela = Upper(T033_Diretivas.T033_NomeJanela)
T034_UsuarioXDiretiva.T034_Status = 1 // true
IF HAdd(T034_UsuarioXDiretiva) = False
erro++
END

END

RESULT erro




// Summary: <specify the procedure action>
// Syntax:
// SecWin_CargaDiretivas ()
//
// Parameters:
// None
// Return value:
// None
//
// For instance:
// Indicate an example.
//
Procedure SecWin_CargaDiretivas()

x is int
FOR EACH T033_Diretivas
x++
END

IF x = 0 OR x < 41

HDeleteAll(T034_UsuarioXDiretiva) //filho

HDeleteAll(T033_Diretivas) //pai

//1
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Agenda"
T033_Diretivas.T033_NomeJanela = "Agenda"
HAdd(T033_Diretivas)

//2
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Clubes"
T033_Diretivas.T033_NomeJanela = "Clubes"
HAdd(T033_Diretivas)

//3
T033_Diretivas.T033_Diretiva = "Inicial"
T033_Diretivas.T033_NomeJanela = "Inicial"
HAdd(T033_Diretivas)

//4
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro aos Graficos"
T033_Diretivas.T033_NomeJanela = "Graficos"
HAdd(T033_Diretivas)

//5
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Pessoas"
T033_Diretivas.T033_NomeJanela = "Pessoas"
HAdd(T033_Diretivas)

//6
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro ao Ultimo Compromisso"
T033_Diretivas.T033_NomeJanela = "Ultimo Compromisso"
HAdd(T033_Diretivas)

//7
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Usuários"
T033_Diretivas.T033_NomeJanela = "Usuarios"
HAdd(T033_Diretivas)

//8
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Diretivas"
T033_Diretivas.T033_NomeJanela = "Diretivas"
HAdd(T033_Diretivas)

//9
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dp Usuário X Diretivas"
T033_Diretivas.T033_NomeJanela = "Usuario X Diretivas"
HAdd(T033_Diretivas)

//10
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Licença"
T033_Diretivas.T033_NomeJanela = "Licenca"
HAdd(T033_Diretivas)

//11
T033_Diretivas.T033_Diretiva = "Acesso ao Word"
T033_Diretivas.T033_NomeJanela = "Word"
HAdd(T033_Diretivas)

//12
T033_Diretivas.T033_Diretiva = "Acesso ao Excel"
T033_Diretivas.T033_NomeJanela = "Excel"
HAdd(T033_Diretivas)

//13
T033_Diretivas.T033_Diretiva = "Acesso ao Editor de Imagem"
T033_Diretivas.T033_NomeJanela = "Imagem"
HAdd(T033_Diretivas)

//14
T033_Diretivas.T033_Diretiva = "Acesso ao Visualizador de PDF"
T033_Diretivas.T033_NomeJanela = "PDF"
HAdd(T033_Diretivas)

//15
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Configurações"
T033_Diretivas.T033_NomeJanela = "Configuracoes"
HAdd(T033_Diretivas)

//16
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Época Desportiva"
T033_Diretivas.T033_NomeJanela = "Epoca Desportiva"
HAdd(T033_Diretivas)

//17
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Campeonatos"
T033_Diretivas.T033_NomeJanela = "Campeonatos"
HAdd(T033_Diretivas)

//18
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Funções"
T033_Diretivas.T033_NomeJanela = "Funcoes"
HAdd(T033_Diretivas)

//19
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Formações"
T033_Diretivas.T033_NomeJanela = "Formacao"
HAdd(T033_Diretivas)

//20
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Contratos"
T033_Diretivas.T033_NomeJanela = "Contratos"
HAdd(T033_Diretivas)

//21
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Posições"
T033_Diretivas.T033_NomeJanela = "Posicoes"
HAdd(T033_Diretivas)

//22
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Medidas"
T033_Diretivas.T033_NomeJanela = "Medidas"
HAdd(T033_Diretivas)

//23
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Bandeirinhas"
T033_Diretivas.T033_NomeJanela = "Bandeirinhas"
HAdd(T033_Diretivas)

//24
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Voltas e Jornadas"
T033_Diretivas.T033_NomeJanela = "Voltas e Jornadas"
HAdd(T033_Diretivas)

//25
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Jogos"
T033_Diretivas.T033_NomeJanela = "Jogos"
HAdd(T033_Diretivas)

//26
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Gols"
T033_Diretivas.T033_NomeJanela = "Gols"
HAdd(T033_Diretivas)

//27
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Estadios"
T033_Diretivas.T033_NomeJanela = "Estadios"
HAdd(T033_Diretivas)

//28
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Arbitros"
T033_Diretivas.T033_NomeJanela = "Arbitros"
HAdd(T033_Diretivas)

//29
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro do Melhor Marcador"
T033_Diretivas.T033_NomeJanela = "Melhor Marcador"
HAdd(T033_Diretivas)

//30
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Melhor Guarda Rede"
T033_Diretivas.T033_NomeJanela = "Melhor Guarda Rede"
HAdd(T033_Diretivas)

//31
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Medicos"
T033_Diretivas.T033_NomeJanela = "Medicos"
HAdd(T033_Diretivas)

//32
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Cartões Sofridos"
T033_Diretivas.T033_NomeJanela = "Cartoes Sofridos"
HAdd(T033_Diretivas)

//33
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Tabela Classificativa"
T033_Diretivas.T033_NomeJanela = "Tabela Classificativa"
HAdd(T033_Diretivas)

//34
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Exames"
T033_Diretivas.T033_NomeJanela = "Exames"
HAdd(T033_Diretivas)

//35
T033_Diretivas.T033_Diretiva = "Acesso a Busca Cadastro Biometria"
T033_Diretivas.T033_NomeJanela = "WIN_Busca_Pessoa"
HAdd(T033_Diretivas)

//36
T033_Diretivas.T033_Diretiva = "Acesso a Webcam"
T033_Diretivas.T033_NomeJanela = "Webcam"
HAdd(T033_Diretivas)

//37
T033_Diretivas.T033_Diretiva = "Acesso a Biometria"
T033_Diretivas.T033_NomeJanela = "Biometria"
HAdd(T033_Diretivas)

//38
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Região"
T033_Diretivas.T033_NomeJanela = "Regiao"
HAdd(T033_Diretivas)

//39
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Fotos"
T033_Diretivas.T033_NomeJanela = "Fotos"
HAdd(T033_Diretivas)

//40
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Cidades"
T033_Diretivas.T033_NomeJanela = "Cidades"
HAdd(T033_Diretivas)

//41
T033_Diretivas.T033_Diretiva = "Alterar Papel de Parede"
T033_Diretivas.T033_NomeJanela = "Alterar Papel de Parede"
HAdd(T033_Diretivas)


END



TABELAS ENVOLVIDAS





-- Script generated by WINDEV on 30/03/2020 10:18:56
-- Tables of FootgbSystem.wda analysis
-- for Oracle

-- Deleting the T032_Usuarios table
DROP TABLE T032_Usuarios CASCADE CONSTRAINTS ;
-- Creating the T032_Usuarios table
CREATE TABLE T032_Usuarios (
T032_Usuarios_ID NUMERIC(19,0) PRIMARY KEY ,
T032_Nome VARCHAR2(50) NOT Null UNIQUE ,
T032_RG NUMERIC(19,0) Default 0 UNIQUE ,
T032_CPF VARCHAR2(14) UNIQUE ,
T032_Login VARCHAR2(20) UNIQUE ,
T032_Senha VARCHAR2(20) ,
T032_Lembrete VARCHAR2(50) ,
T032_Telefone VARCHAR2(20) ,
T032_Email VARCHAR2(50) ,
T032_Supervisor NUMERIC(3,0) Default 0);

-- Deleting the T033_Diretivas table
DROP TABLE T033_Diretivas CASCADE CONSTRAINTS ;
-- Creating the T033_Diretivas table
CREATE TABLE T033_Diretivas (
T033_Diretivas_ID NUMERIC(19,0) PRIMARY KEY ,
T033_Diretiva VARCHAR2(50) NOT Null UNIQUE ,
T033_NomeJanela VARCHAR2(50) UNIQUE ,
T033_SomenteSupervisor NUMERIC(3,0) Default 0);

-- Deleting the T034_UsuarioXDiretiva table
DROP TABLE T034_UsuarioXDiretiva CASCADE CONSTRAINTS ;
-- Creating the T034_UsuarioXDiretiva table
CREATE TABLE T034_UsuarioXDiretiva (
T034_UsuarioXDiretiva_ID NUMERIC(19,0) PRIMARY KEY ,
T032_Usuarios_ID NUMERIC(19,0) Default 0,
T033_Diretivas_ID NUMERIC(19,0) Default 0,
T034_Status NUMERIC(3,0) Default 0,
T034_Login VARCHAR2(50) ,
T034_Janela VARCHAR2(50) );
CREATE INDEX WDIDX_T034_UsuarioXDireti00000 ON T034_UsuarioXDiretiva (T032_Usuarios_ID);
CREATE INDEX WDIDX_T034_UsuarioXDireti00001 ON T034_UsuarioXDiretiva (T033_Diretivas_ID);
CREATE INDEX WDIDX_T034_UsuarioXDireti00002 ON T034_UsuarioXDiretiva (T034_Status);
CREATE INDEX WDIDX_T034_UsuarioXDireti00003 ON T034_UsuarioXDiretiva (T032_Usuarios_ID,T033_Diretivas_ID);
CREATE INDEX WDIDX_T034_UsuarioXDireti00004 ON T034_UsuarioXDiretiva (T034_Login,T034_Janela,T034_Status);

-- Deleting the T035_LICENCA table
DROP TABLE T035_LICENCA CASCADE CONSTRAINTS ;
-- Creating the T035_LICENCA table
CREATE TABLE T035_LICENCA (
T035_LICENCA_ID NUMERIC(19,0) PRIMARY KEY ,
T035_HD VARCHAR2(30) NOT Null UNIQUE ,
T035_CONTRA_SENHA VARCHAR2(50) NOT Null UNIQUE ,
T035_PROXIMA_ATIVACAO VARCHAR2(50) NOT Null UNIQUE ,
T035_ASSINATURA_DIGITAL VARCHAR2(255) NOT Null UNIQUE ,
T035_DATA_INSTALL VARCHAR2(50) NOT Null UNIQUE );
-- Integrity constraints
ALTER TABLE T034_UsuarioXDiretiva Add FOREIGN KEY (T033_Diretivas_ID) REFERENCES T033_Diretivas (T033_Diretivas_ID);
ALTER TABLE T034_UsuarioXDiretiva Add FOREIGN KEY (T032_Usuarios_ID) REFERENCES T032_Usuarios (T032_Usuarios_ID);


BONS ESTUDOS

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Registered member
3,651 messages
Popularité : +175 (223 votes)
Posted on April, 12 2021 - 1:00 AM
Procedure NumberHD()

gsHDSerial = fDriveInfo(Middle(SysDir(srWindows),1,2),fdSerialNumber)

RESULT gsHDSerial


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/