Todos os formulários seguem o mesmo padrão de utilização, compartilhando layouts, botões, atalhos, menus e comportamentos. Como exemplo, utilizaremos o formulário de **Produtos**, mas os conceitos apresentados se aplicam à maioria dos cadastros e lançamentos. Em geral, os formulários possuem:
![[Formularios.png]]
- Ferramentas de pesquisa.
- Botões de Incluir, Alterar, Excluir, Imprimir e Filtrar.
- Menus e Pop-ups.
> [!warning] Segmentos e Permissões
> Os recursos e disponibilidade dos formulários também podem variar conforme o segmento contratado e as permissões do usuário. Exemplo:
> - Para acessar os controles de produção, o segmento contratado deverá ser Fábrica. Caso contrário, esses controles estarão ocultos ou desabilitados.
> <br>
> - Para Exibir, Ativar, Incluir, Alterar ou Excluir, o usuário deverá ter as permissões concedidas no seu [[Plano de Senhas#Formulários|Plano de Senhas]]. Caso contrário, receberá a mensagem de [[Plano de Senhas#Acesso Negado|Acesso Negado]].
---
# Formulário Simples
Alguns formulários são mais simples e geralmente utilizados para subcadastros, como o de **Unidades**. Ao serem abertos, normalmente exibem todos os registros existentes e oferecem uma pesquisa simplificada por nome, além de contar apenas com os botões **Incluir**, **Alterar** e **Excluir**.
![[Simples.png]]
---
# Atalhos
- Ao posicionar o cursor do mouse sobre um botão, o sistema exibe um **Tooltip (Dica)** com a descrição da função e seu respectivo atalho, possibilitando a operação completa via teclado.
![[Tooltip.png]]
<br>
- Ao clicar com o botão direito do mouse sobre o formulário, será exibido o menu de contexto com os atalhos disponíveis.
![[MenuContexto.png]]
<br>
- Ao lado do botão **Filtrar**, encontra-se um menu complementar contendo as mesmas opções do menu de contexto.
![[MenuFiltrar.png]]
---
# Pesquisas
A ferramenta de pesquisa é composta pelos seguintes elementos: **Campo**, **Operador** e **Localizar**. Mas, nos formulários simples, temos só o elemento Localizar, que geralmente nesse caso, só faz a pesquisa pelo nome.
![[Pesquisas.png]]
### Campo
É um tipo de lista, que contém os campos específicos de cada formulário. Exemplo:
- NOME
- STATUS
- IDPRODUTO
- DATA DE ALTERAÇÃO
### Operador
É um tipo de lista, que contém os seguintes operadores lógicos:
- Igual ( = )
- Menor que ( < )
- Maior que ( > )
- Menor ou igual ( <= )
- Maior ou igual ( >= )
- Diferente ( <> )
- Parecido com ( LIKE )
### Localizar
É um tipo digitável. Nele é inserida a informação que desejamos localizar, no formato do Campo selecionado. Exemplo:
- NOME → A digitação será no formato de texto.
- IDPRODUTO → A digitação será no formato de número.
- DATA DE ALTERAÇÃO → A digitação será no formato de data.
### Exemplos
> [!example] Pesquisa por Texto
> Ao escolher um **Campo do Tipo Texto**, o **Operador "LIKE"** é automaticamente selecionado. Basta digitar algo em **Localizar** e pressionar o **Enter**, para trazer todos os registros que iniciam com o digitado. Também é possível pesquisar usando o **Caractere Curinga "%"** no início, meio e fim do texto, com o objetivo de trazer todos os registros que contenham o digitado.
>- *O uso do **Caractere Curinga "%"** só é possível com o **Operador "LIKE"**, pois, com os outros, o digitado deve ser idêntico ao que se está buscando.*
> [!example] Pesquisa por Número
> Ao escolher um **Campo do Tipo Numérico**, o **Operador "="** é automaticamente selecionado. Basta digitar um número em **Localizar** e pressionar o **Enter**, para trazer todos os registros que são iguais ao digitado.
>- *Caso seja digitado algo não numérico em Localizar, a pesquisa não será executada e será gerado um **Log de Erro**.*
> [!example] Pesquisa por Data
> Ao escolher um **Campo do Tipo Data**, o **Operador "="** é automaticamente selecionado. Basta digitar uma data em **Localizar** e pressionar o **Enter**, para trazer todos os registros que são iguais ao digitado.
>- *Caso seja digitado uma data inválida em Localizar, a pesquisa não será executada e gerado um **Log de Erro**.*
> [!summary] Pesquisa Rápida (F9)
> A tecla **F9** abre a pesquisa rápida de registros. Essa função pode ser utilizada na maioria dos formulários. Exemplo:
>
>**Formulário de Clientes →** F9 Pesquisa o código do cliente.
>**Formulário de Produtos →** F9 Pesquisa o código do produto.
>
>![[PesquisaRapida.png]]
---
# Filtros
Os Filtros permitem realizar pesquisas mais assertivas, com base em uma Expressão (o que filtrar) e uma Ordem (como ordenar). Ao clicar no **Botão Filtrar**, são exibidos os filtros disponíveis. Para ativar, basta clicar duas vezes ou selecionar e clicar no **Botão Ativar**. Dessa forma, as pesquisas já estarão baseadas no filtro ativado.
### Ativar
![[FiltrosAtivar.png]]
Ao ativar o Filtro **"ESTOCADO"** e realizar uma pesquisa que traga tudo. Serão exibidos somente os produtos com quantidade maior que zero (0) em ordem alfabética. Pois esse filtro tem a seguinte configuração:
- **Expressão →** (QTD > 0)
- **Ordem →** NOME
> [!info] Filtro Padrão
> O Filtro Padrão sempre vai exibir todos os registros e está presente em todos os formulários. Pelo fato de ser um "filtro padrão do sistema", não pode ser alterado e nem excluído. Também é utilizado como forma de desabilitar qualquer outro filtro ativo.
### Incluir
Vamos criar um filtro que exiba apenas os produtos ativos em ordem alfabética. Ao clicar no **Botão Filtrar**, será exibida a tela de Consulta de Filtro, após isso, vamos:
- Clicar no botão **Incluir**.
- Digitar o **Título "ATIVOS"**.
- Selecionar o Campo **STATUS**.
- Selecionar o Operador **"="**.
- Em Valor digitar **"A"**.
- Clicar no botão **Incluir Expressão**.
- Em **Ordem** digitar **"NOME"**.
- Fechar, Salvar e Ativar o Novo Filtro.
![[FiltrosIncluir.png]]
### Alterar
Vamos melhorar o Filtro **"ATIVOS"**, adicionando uma segunda condição, que além dos produtos ativos, exiba somente os que tem quantidade maior que zero (0). Depois de selecionar o **"ATIVOS"** na Consulta de Filtro, vamos:
- Clicar no botão **Alterar**.
- Selecionar a Condição **AND**.
- Selecionar o Campo **QTD**.
- Selecionar o Operador **">"**.
- Em Valor digitar **"0"**.
- Clicar no botão **Incluir Expressão**.
- Fechar, Salvar e Ativar o Filtro novamente.
![[FiltrosAlterar.png]]
> [!info] Condição AND e OR
> Os operadores **AND** e **OR** servem para combinar múltiplas condições dentro de uma **Expressão**. O **AND** exige que todas as condições sejam verdadeiras, enquanto o **OR** exige que ao menos uma seja verdadeira. Exemplo:
> - **AND**: Serão exibidos todos os produtos ativos **"e"** com quantidade maior que zero.
> - **OR**: Serão exibidos todos os produtos ativos **"ou"** com quantidade maior que zero.
---
# Grids
Apresenta os dados em linhas e colunas, permitindo visualizar vários registros em formato de planilha.
### Layout
- Os títulos de cada coluna são clicáveis.
- O rodapé contém um sumário com totalizador de registros.
- Quando houver dados vinculados, será exibida uma seta na primeira coluna do registro para expandir e visualizar os detalhes.
- É possível redimensionar ou arrastar colunas conforme a necessidade.
![[GridsLayout.png]]
### Filtros
- Ao posicionar o cursor sobre o título da coluna, será exibido o ícone de **Funil**, que apresenta os dados agrupados e permite selecionar múltiplas opções para filtrar os registros desejados.
- Ao clicar no título da coluna, é possível alterar a ordenação dos registros.
![[GridsFiltros.png]]
---
# Registros
### Incluir
Para incluir um registro, basta clicar no **Botão Incluir**. Se o usuário tiver permissão, o sistema exibirá o formulário de preenchimento dos dados.
![[RegistrosIncluir.png]]
### Alterar
Ao selecionar um registro, ele permanece protegido contra alterações. Para alterar, existem duas formas:
- Clicando diretamente no **Botão Alterar**.
- **Clicando duas vezes** sobre o registro para abri-lo e, em seguida, clique duas vezes no formulário.
![[RegistrosAlterar.png]]
Se o usuário tiver permissão, o registro entrará em modo de edição. Essa funcionalidade evita modificações acidentais.
### Salvar
Após concluir uma inclusão ou alteração de registro, basta fechar o formulário e o sistema exibirá um diálogo de confirmação. Geralmente contendo os seguintes botões.
- **Sim →** Para salvar as alterações.
- **Não →** Para descartar as alterações.
- **Cancelar →** Para manter o formulário aberto, em modo de edição.
![[Salvar.png]]
### Excluir
Para excluir um registro, basta selecioná-lo e clicar no **Botão Excluir**. Se o usuário tiver permissão, o sistema exibirá um diálogo de confirmação. Geralmente contendo os seguintes botões.
- **Sim →** Para confirmar a exclusão/cancelamento.
- **Não →** Para descartar a exclusão/cancelamento.
![[RegistrosExcluir.png]]
### Carácteres Especiais
Evite o uso de carácteres especiais como `" ' , * & % $ # @ ! ? |` em campos de texto, como Nome, Apelido e Observação. O uso desses caracteres pode gerar erros em relatórios, integrações e na emissão de documentos.
### Campos Obrigatórios
Os campos obrigatórios são identificados por um asterisco (`*`). Ao tentar salvar, se algum deles não for preenchido, a operação será interrompida e o sistema exibirá uma mensagem listando os campos pendentes para correção.
![[Obrigatorio.png]]
# Conclusão
>Agora que você já conhece os conceitos básicos dos formulários, está pronto para se aprofundar no QuickTrade. Sugerimos que comece essa jornada pelo [[Plano de Senhas]].