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:
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
HReset(T035_LICENCA)
HReadSeek(T035_LICENCA,T035_LICENCA_ID, 1,hIdentique)
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
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)
ELSE
WIN_Seguranca_Login..Plane = 1
END
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()
Procedure LogErro(LoginErrado,SenhaErrada)
T036_Log.T036_DataHora = DateSys() + TimeSys()
T036_Log.T036_Descricao = LoginErrado +" - "+ SenhaErrada
T036_Log.T036_Status = "ERRO"
HAdd(T036_Log)
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
SWITCH Dialog("Deseja encerrar o sistema?")
CASE 1
Close()
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
GloUSER = EDT_Login
GloSuperUser = 1
IF Open(WIN_MenuPrincipal) = True THEN
SWITCH Dialog("Deseja encerrar o sistema?")
CASE 1
Close()
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
Procedure LogOk(LoginOK,SenhaOK)
T036_Log.T036_DataHora = DateSys() + TimeSys()
T036_Log.T036_Descricao = LoginOK +" - "+ SenhaOK
T036_Log.T036_Status = "OK"
HAdd(T036_Log)
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)
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)
IF HReadSeek(T032_Usuarios,T032_Login,"SUPERVISOR",hIdentical) = False THEN
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
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
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
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
IF HAdd(T034_UsuarioXDiretiva) = False
erro++
END
END
RESULT erro
Procedure SecWin_CargaDiretivas()
x is int
FOR EACH T033_Diretivas
x++
END
IF x = 0 OR x < 41
HDeleteAll(T034_UsuarioXDiretiva)
HDeleteAll(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Agenda"
T033_Diretivas.T033_NomeJanela = "Agenda"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Clubes"
T033_Diretivas.T033_NomeJanela = "Clubes"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Inicial"
T033_Diretivas.T033_NomeJanela = "Inicial"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro aos Graficos"
T033_Diretivas.T033_NomeJanela = "Graficos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Pessoas"
T033_Diretivas.T033_NomeJanela = "Pessoas"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro ao Ultimo Compromisso"
T033_Diretivas.T033_NomeJanela = "Ultimo Compromisso"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Usuários"
T033_Diretivas.T033_NomeJanela = "Usuarios"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Diretivas"
T033_Diretivas.T033_NomeJanela = "Diretivas"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dp Usuário X Diretivas"
T033_Diretivas.T033_NomeJanela = "Usuario X Diretivas"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Licença"
T033_Diretivas.T033_NomeJanela = "Licenca"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao Word"
T033_Diretivas.T033_NomeJanela = "Word"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao Excel"
T033_Diretivas.T033_NomeJanela = "Excel"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao Editor de Imagem"
T033_Diretivas.T033_NomeJanela = "Imagem"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao Visualizador de PDF"
T033_Diretivas.T033_NomeJanela = "PDF"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Configurações"
T033_Diretivas.T033_NomeJanela = "Configuracoes"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Época Desportiva"
T033_Diretivas.T033_NomeJanela = "Epoca Desportiva"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Campeonatos"
T033_Diretivas.T033_NomeJanela = "Campeonatos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Funções"
T033_Diretivas.T033_NomeJanela = "Funcoes"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Formações"
T033_Diretivas.T033_NomeJanela = "Formacao"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Contratos"
T033_Diretivas.T033_NomeJanela = "Contratos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Posições"
T033_Diretivas.T033_NomeJanela = "Posicoes"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Medidas"
T033_Diretivas.T033_NomeJanela = "Medidas"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Bandeirinhas"
T033_Diretivas.T033_NomeJanela = "Bandeirinhas"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Voltas e Jornadas"
T033_Diretivas.T033_NomeJanela = "Voltas e Jornadas"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Jogos"
T033_Diretivas.T033_NomeJanela = "Jogos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Gols"
T033_Diretivas.T033_NomeJanela = "Gols"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Estadios"
T033_Diretivas.T033_NomeJanela = "Estadios"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro dos Arbitros"
T033_Diretivas.T033_NomeJanela = "Arbitros"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro do Melhor Marcador"
T033_Diretivas.T033_NomeJanela = "Melhor Marcador"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Melhor Guarda Rede"
T033_Diretivas.T033_NomeJanela = "Melhor Guarda Rede"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Medicos"
T033_Diretivas.T033_NomeJanela = "Medicos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Cartões Sofridos"
T033_Diretivas.T033_NomeJanela = "Cartoes Sofridos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Tabela Classificativa"
T033_Diretivas.T033_NomeJanela = "Tabela Classificativa"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro de Exames"
T033_Diretivas.T033_NomeJanela = "Exames"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso a Busca Cadastro Biometria"
T033_Diretivas.T033_NomeJanela = "WIN_Busca_Pessoa"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso a Webcam"
T033_Diretivas.T033_NomeJanela = "Webcam"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso a Biometria"
T033_Diretivas.T033_NomeJanela = "Biometria"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro da Região"
T033_Diretivas.T033_NomeJanela = "Regiao"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Fotos"
T033_Diretivas.T033_NomeJanela = "Fotos"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Acesso ao cadastro das Cidades"
T033_Diretivas.T033_NomeJanela = "Cidades"
HAdd(T033_Diretivas)
T033_Diretivas.T033_Diretiva = "Alterar Papel de Parede"
T033_Diretivas.T033_NomeJanela = "Alterar Papel de Parede"
HAdd(T033_Diretivas)
END
TABELAS ENVOLVIDAS
DROP TABLE T032_Usuarios CASCADE CONSTRAINTS ;
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);
DROP TABLE T033_Diretivas CASCADE CONSTRAINTS ;
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);
DROP TABLE T034_UsuarioXDiretiva CASCADE CONSTRAINTS ;
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);
DROP TABLE T035_LICENCA CASCADE CONSTRAINTS ;
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 );
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/