Módulo: Navegação Principal
🏠 Módulo: Navegação Principal
Sistema central de navegação e controle de acesso do aplicativo Gestão Orçamentária SEDESE
📋 Visão Geral do Módulo
ℹ️ Sobre este Módulo
- Função Principal: Gerenciar acesso e navegação inicial do sistema
- Telas: 2 telas
- Controle de Acesso: Baseado em perfil e permissões
- Primeira Execução: OnStart do App
🏠 Tela: Capa_Nova
Tela Inicial - Hub de Navegação
Tipo: Tela de Navegação Principal
Acesso: Usuários com perfil APMD
📊 Estatísticas da Tela
⚙️ Inicialização do App (OnStart)
Quando o aplicativo é iniciado, ANTES de qualquer tela ser exibida, o sistema executa:
// 1. Define perfil padrão
Set(varPerfil, "APMD");
// 2. Busca permissões do usuário logado
Set(_varPermissao,
LookUp(
PermissoesSistemaAPMD,
Usuario.Email = UsuáriosdoOffice365.MyProfileV2().mail,
Permissoes
)
);
// 3. Cria collections de navegação
ClearCollect(colNavMenu3,
[
{ Label: "Geral", Screen: Demandas_Novo },
{ Label: "Inativos", Screen: Demandas_Orcamentarias_Inativos }
]
);
ClearCollect(colNavMenu4,
[
{ Label: "Pendentes", Screen: Cotas_Pendentes },
{ Label: "Concluídos", Screen: Cotas_Concluídas },
{ Label: "Solicitações", Screen: Cotas_Solicitacoes }
]
);
ClearCollect(colNavMenu5,
[
{ Label: "Programação Pendente", Screen: Remanejamento_Novo_Controle },
{ Label: "Demandas Pendentes", Screen: Remanejamento_Novo_Controle },
{ Label: "Concluídos", Screen: Remanejamento_Novo_Concluidos }
]
);
ClearCollect(colNavMenu6,
[
{ Label: "Programação", Screen: Remanejamento_Novo_Programação },
{ Label: "Demandas", Screen: Remanejamento_Novo_Demandas }
]
);
ClearCollect(colNavMenu7,
[
{ Label: "Geral", Screen: Programação_Controle },
{ Label: "Solicitações", Screen: Programacao_Solicitacoes }
]
);
// 4. Cria collection de imagens de loading
ClearCollect(colImagensLoading,
[
{ ID: 1, Imagem: 'loading-screen-cat' },
{ ID: 2, Imagem: 'taylor swift' },
{ ID: 3, Imagem: 'Friends tv show meme' },
{ ID: 4, Imagem: 'Cameron Tucker_Eric Stonestreet & Mitchell Pritchett_Jesse Tyler Ferguson' },
{ ID: 5, Imagem: 'download (1)' },
{ ID: 6, Imagem: dog }
]
);
🎯 Função das Collections
Estas collections são globais e alimentam os componentes TabList em todas as telas do aplicativo, criando um sistema de navegação por abas consistente.
🚦 Determinação da Tela Inicial
StartScreen = Switch(
varPerm,
"APMD", Capa_Nova,
"Gestor", Programação_Controle,
TELA_INCIAL_ERRO
)
🎨 Containers de Navegação Principais
🛠️ Botões de Ação Adicionais
| Controle | Função | OnSelect |
|---|---|---|
| ButtonConfiguracoes | Abrir configurações de personalização | Navigate(Configuracoes_Cores) |
| ButtonVersao | Exibir informações de versão | Set(varShowVersion, true) |
| ButtonCanvas15_11 | Ação canvas 1 | (não especificado) |
| ButtonCanvas15_12 | Ação canvas 2 | (não especificado) |
| ButtonCanvas27_2 | Ação canvas 3 | (não especificado) |
| ButtonCanvas27_3 | Ação canvas 4 | (não especificado) |
🎨 Elementos Visuais
- Rectangle6: Container principal de fundo
- Rectangle6_40: Elemento decorativo
- Image3: Imagem de fundo
- ImageGestaoOrcamentaria: Logo do sistema
- TextDesenvolvido: Informações de desenvolvimento
- TextCanvas15_3, TextCanvas15_4: Textos informativos
❌ Tela: TELA_INCIAL_ERRO
Tela de Erro - Acesso Negado
Tipo: Tela de Erro
Acesso: Usuários sem permissões
📊 Estatísticas da Tela
🎯 Componentes
🔴 HomeMenuBkg_18
Tipo: Rectangle
Função: Fundo da mensagem de erro
Fill: Cor de aviso (vermelho/amarelo)
⚠️ TextCanvas2
Tipo: TextCanvas
Função: Mensagem de erro ao usuário
Text:
"Você não possui permissões para acessar este sistema.
Entre em contato com o administrador."🔒 Lógica de Acesso
🚨 Quando esta tela é exibida?
Esta tela aparece quando:
- O usuário não está cadastrado em
PermissoesSistemaAPMD - A variável
varPermnão corresponde a "APMD" ou "Gestor" - O e-mail do usuário não é encontrado no sistema
Solução: O usuário deve solicitar acesso ao administrador do sistema para ser adicionado à lista de permissões.
🔗 Fluxo de Navegação do Módulo
graph TD
A[OnStart do App] --> B{Verificar Permissões}
B -->|varPerm = APMD| C[Capa_Nova]
B -->|varPerm = Gestor| D[Programação_Controle]
B -->|Sem Permissão| E[TELA_INICIAL_ERRO]
C --> F[Programação]
C --> G[Demandas]
C --> H[DDO]
C --> I[Cotas]
C --> J[Remanejamentos]
C --> K[Configurações]
E --> L[Solicitar Acesso]
style A fill:#667eea
style B fill:#ffc107
style C fill:#28a745
style D fill:#17a2b8
style E fill:#dc3545📚 Variáveis Globais Criadas
| Variável | Tipo | Criada em | Função |
|---|---|---|---|
| varPerfil | Text | OnStart | Define perfil padrão (“APMD”) |
| _varPermissao | Text | OnStart | Armazena permissão do usuário logado |
| colNavMenu3 | Table | OnStart | Navegação do módulo Demandas |
| colNavMenu4 | Table | OnStart | Navegação do módulo Cotas |
| colNavMenu5 | Table | OnStart | Navegação do módulo Remanejamento (Controle) |
| colNavMenu6 | Table | OnStart | Navegação do módulo Remanejamento (Execução) |
| colNavMenu7 | Table | OnStart | Navegação do módulo Programação |
| colImagensLoading | Table | OnStart | Imagens para telas de loading |
💡 Dicas de Uso
🎯 Perfis de Acesso
O sistema diferencia dois perfis principais:
- APMD: Acesso completo, inicia em Capa_Nova
- Gestor: Foco em programação, inicia em Programação_Controle
🔄 Collections Globais
As collections colNavMenu* são usadas em componentes TabList em todo o app. Modificá-las afeta a navegação em múltiplas telas.
🎨 Personalização
Use o botão "Configurações" na Capa_Nova para personalizar cores do sistema através de GestaoOrcamentaria_Configuracoes.
🖼️ Imagens de Loading
A collection colImagensLoading fornece variedade visual durante operações demoradas, tornando a espera mais agradável.
⚠️ Considerações Importantes
🔐 Segurança de Acesso
O controle de acesso é feito APENAS no frontend. Para segurança adicional, considere aplicar permissões também no SharePoint nas listas de dados.
📧 Identificação por E-mail
O sistema usa UsuáriosdoOffice365.MyProfileV2().mail para identificação. Certifique-se de que os e-mails em PermissoesSistemaAPMD estão corretos.
🔄 Atualização de Permissões
Mudanças na lista de permissões só são aplicadas após o usuário fechar e reabrir o aplicativo (novo OnStart).
📊 Fontes de Dados Utilizadas
| Fonte de Dados | Tipo | Função no Módulo |
|---|---|---|
| PermissoesSistemaAPMD | SharePoint List | Controle de acesso e permissões |
| UsuáriosdoOffice365 | Office 365 Connector | Identificação do usuário logado |
| GestaoOrcamentaria_Configuracoes | SharePoint List | Configurações personalizadas por usuário |