Consultas com cores e dicas para o usuário
Por meio do Person, é possível configurar uma consulta que retorne, no modo grade, registros coloridos, de acordo com o atendimento ou não de uma condição, um valor igual, menor, maior ou dentro de uma faixa etc..
Para o exemplo didático ao qual este documento se destina, será criada uma tabela e consulta personalizadas que trarão o resultado com a cor configurada, de acordo com uma condição.
No formulário inicial do Person são listadas todas as tabelas do sistema. As tabelas em verde são as tabelas personalizadas pelo usuário. As tabelas na cor preta, são tabelas originais do sistema.
Criando a tabela U_DIREITOS
Para ter acesso ao formulário Minhas Tabelas, utilize o menu Tabela e sub menu Minhas Tabelas, conforme abaixo:
Tabela > Minhas Tabelas
Então será apresentado o formulário Minhas Tabelas conforme imagem a seguir:
Neste formulário, serão encontradas somente as tabelas personalizadas pelo usuário.
Nesta rotina, será criada uma tabela personalizada para teste de utilização de registros em cores, de acordo com o resultado de uma consulta específica. Esta tabela será nomeada de U_DIREITOS, sua descrição será “Tabela para testes de cores nos registros” e seus campos serão “TEMACESSO” e “CAMPODESCRICAO”
Incluindo uma nova tabela
Para inclusão de uma nova tabela personalizada (do usuário), utilize o atalho “CTRL + INS” ou clique no botão de inclusão de nova tabela.
Após pressionar o botão de inserção de nova tabela, o formulário apresenta uma inclusão na lista de tabelas na forma acima, para identificação de onde os dados da nova tabela serão incluídos.
O nome da tabela será U_DIREITOS. Sua descrição será “Tabela para testes de cores nos registros” e a mesma será visível por todos.
Salvando a nova tabela
Finalizando o preenchimento dos campos, se faz necessário salvar a tabela. Usar o botão para salvar ou o atalho “CTRL + S”.
Gravada a tabela, feche o formulário Minhas Tabelas para voltar para a tela principal do Person.
A tabela U_DIREITOS aparecerá em verde, junto às demais tabelas personalizadas.
Inserindo campos na tabela
Com um duplo clique do mouse na tabela U_DIREITOS, o formulário de manutenção de colunas (Campos) será aberto.
Pressionando o botão Incluir com o mouse ou usando o atalho “CTRL + INS” será possível incluir o novo campo:
Preencher os dados acima e clicar no botão Salvar ou usar o atalho “CTRL + S”.
Em seguida, pressionar o botão de inserir novamente, para inserir o segundo campo:
Preencher os dados acima e clicar no botão Salvar ou usar o atalho “CTRL + S”.
Fechar o formulário para poder aplicar as alterações.
Com o botão direito do mouse pressionado sobre a tabela U_DIREITOS, o menu suspenso será mostrado, onde a opção “Aplicar Campos...” deverá ser escolhida.
Escolher a opção “Aplicar Campos...” para efetivar a criação dos campos da tabela.
Pressionar o botão “Aplicar” com o mouse, ou por meio do atalho “ALT + A”.
Após a confirmação da operação, pressionar o botão “OK”, ou usar o atalho “ALT + O”.
Feche o formulário “Estruturar Tabela” para finalizar esta etapa.
Criando Consulta Personalizada
Para criar uma consulta personalizada, pressione o botão direito do mouse sobre a lista de tabelas e escolha, no menu suspenso, a opção Consultas Personalizadas. Outra forma de acessar a função é por meio do atalho “CTRL + ALT + C”:
O formulário “Consultas Personalizadas” será mostrado:
No campo “Tabela”, informar o nome “U_DIREITOS” e em seguida, pressionar o botão “Pesquisar”, ou o atalho “ALT + P”.
A pesquisa não retornará informações, pois a tabela foi criada recentemente não possui consultas configuradas. Porém, os botões de Incluir, Parâmetros, Liberar e Excluir ficarão habilitados.
Pressionar o botão Incluir, ou o atalho “ALT + I” para acessar a criação da consulta personalizada, a saber:
Na área de seleção da consulta, onde existe a instrução “select * from”, é necessário substituir esta instrução pelo conjunto de instruções abaixo, a saber:
Após digitar/colar o script SQL no campo adequado, substituindo a instrução “select * from”, pressionar o botão “Examinar SQL”, onde os campos Nome da Tabela, Descrição e Uso devem ser preenchidos automaticamente, conforme imagem acima.
Além disso, marcar o campo “Consulta Liberada para ser Utilizada pelos Usuários”, para que os demais usuários tenham acesso a mesma.
Explicando o SQL
A primeira parte da instrução define a seleção dos campos da tabela, a saber:
SELECT
DIR.U_DIREITOS_ID,
DIR.TEMACESSO,
DIR.CAMPODESCRICAO,
DIR.U_DIREITOS_ID: Campo gerado automaticamente, que controla a chave primária da tabela;
DIR.TEMACESSO: Campo CARACTERE com uma posição, que recebe os valores “S” ou “N”. Ou o usuário tem acesso, ou não tem;
DIR.CAMPODESCRICAO: Campo CRACTERE com 30 posições, que guarda a descrição do registro.
Na segunda parte selecionada para a explicação, é criada a coluna “COR”, que não existe fisicamente na tabela, para receber o código da cor que o registro será mostrado no sistema.
O conjunto CASE/WHEN/END é uma cláusula de condição e verifica, neste caso específico, se o valor do campo DIR.TEMACESSO é igual a “S” ou se é igual a “N”.
Caso seja igual a “S”, a coluna COR, no registro sendo testado, receberá o valor ‘0000FF’, que é o código HEXADECIMAL para a cor AZUL.
Caso seja igual a “N”, a coluna COR, no registro sendo testado, receberá o valor ‘FF0000’, que é o código HEXADECIMAL para a cor VERMELHA.
Caso o valor não seja nem “S” nem “N”, a cor retornada é o PRETO, com o código ‘000000’.
CASE (DIR.TEMACESSO)
WHEN 'S'
THEN '0000FF'
WHEN 'N'
THEN 'FF0000'
ELSE '000000'
END AS COR,
Este trecho poderia ser traduzido da seguinte forma, a título de facilitação do entendimento:
CASO
QUANDO DIR.TEMACESSO = ‘S’
ENTÃO ‘0000FF’
QUANDO DIR.TEMACESSO = ‘N’
ENTÃO ‘FF0000’
SENÃO ‘000000’
FIM APELIDO COR
Várias outras comparações podem ser feitas. Para maior conhecimento da cláusula CASE, é sugestão acessar o sítio https://www.w3schools.com/sql/sql_case.asp
Na terceira parte selecionada para a explicação, é criada a coluna “HINT”, que não existe fisicamente na tabela, para receber a dica que será dada ao usuário sobre a legenda das cores.
A última parte do script cria o apelido DIR para tabela U_DIREITOS e a indica como fonte dos dados a serem pesquisados pelo script, de acordo com a condição configurada nos parâmetros da consulta personalizada.
Adicionando os parâmetros da consulta
Os parâmetros da consulta são os itens que serão pesquisados, confrontando os dados que o usuário irá informar no momento da execução da consulta. No caso deste estudo, os valores preenchidos devem ser os apresentados no formulário abaixo, que é a representação do formulário de Parâmetros, a saber:
Testando a consulta personalizada
Para testar as configurações mostradas aqui, será utilizado o programa Gerenciador de Sistemas (Gerente)
Será mostrado o formulário de consulta a seguir:
No campo Descrição, selecionar a opção “(Ignorar)” para não filtrar os dados. Em seguida, clicar no botão OK ou utilizar o atalho “ALT + O”.
O resultado esperado é:
Tabela de algumas cores e seus códigos Hexadecimais
Nome da cor | Código hexadecimal |
Alice blue | F0F8FF |
Antique white | FAEBD7 |
Aqua | 00FFFF |
Aquamarine | 7FFFD4 |
Azure | F0FFFF |
Beige | F5F5DC |
Bisque | FFE4C4 |
Black | 000000 |
Blanche dalmond | FFEBCD |
Blue | 0000FF |
Blue violet | 8A2BE2 |
Brown | A52A2A |
Burlywood | DEB887 |
Cadet blue | 5F9EA0 |
Chartreuse | 7FFF00 |
Chocolate | D2691E |
Coral | FF7F50 |
Cornflower blue | 6495ED |
Cornsilk | FFF8DC |
Crimson | DC143C |
Cyan | 00FFFF |
Dark blue | 00008B |
Dark cyan | 008B8B |
Dark goldenrod | B8860B |
Dark gray | A9A9A9 |
Dark green | 006400 |
Dark khaki | BDB76B |
Dark magenta | 8B008B |
Dark olive green | 556B2F |
Dark orange | FF8C00 |
Dark orchid | 9932CC |
Dark red | 8B0000 |
Dark salmon | E9967A |
Dark seagreen | 8DBC8F |
Dark slate blue | 483D8B |
Dark slate gray | 2F4F4F |
Dark turquoise | 00DED1 |
Dark violet | 9400D3 |
Deep pink | FF1493 |
Deep sky blue | 00BFFF |
Dim gray | 696969 |
Dodger blue | 1E90FF |
Firebrick | B22222 |
Floral white | FFFAF0 |
Forest green | 228B22 |
Fuchsia | FF00FF |
Gainsboro | DCDCDC |
Ghost white | F8F8FF |
Gold | FFD700 |
Goldenrod | DAA520 |
Gray | 808080 |
Green | 008000 |
Green yellow | ADFF2F |
Honeydew | F0FFF0 |
Hot pink | FF69B4 |
Indian red | CD5C5C |
Indigo | 4B0082 |
Ivory | FFFFF0 |
Khaki | F0E68C |
Lavender | E6E6FA |
Lavender blush | FFF0F5 |
Lawngreen | 7CFC00 |
Lemon chiffon | FFFACD |
Light blue | ADD8E6 |
Light coral | F08080 |
Light cyan | E0FFFF |
Light goldenrod yellow | FAFAD2 |
Light green | 90EE90 |
Light grey | D3D3D3 |
Light pink | FFB6C1 |
Light salmon | FFA07A |
Light seagreen | 20B2AA |
Light sky blue | 87CEFA |
Light slate gray | 778899 |
Light steel blue | B0C4DE |
Light yellow | FFFFE0 |
Lime | 00FF00 |
Lime green | 32CD32 |
Linen | FAF0E6 |
Magenta | FF00FF |
Maroon | 800000 |
Medium aquamarine | 66CDAA |
Medium blue | 0000CD |
Medium orchid | BA55D3 |
Medium purple | 9370DB |
Medium sea green | 3CB371 |
Medium slate blue | 7B68EE |
Medium spring green | 00FA9A |
Medium turquoise | 48D1CC |
Medium violet red | C71585 |
Midnight blue | 191970 |
Mint cream | F5FFFA |
Misty rose | FFE4E1 |
Moccasin | FFE4B5 |
Navajo white | FFDEAD |
Navy | 000080 |
Old lace | FDF5E6 |
Olive drab | 6B8E23 |
Orange | FFA500 |
Orange red | FF4500 |
Orchid | DA70D6 |
Pale goldenrod | EEE8AA |
Orange red | FF4500 |
Orchid | DA70D6 |
Pale goldenrod | EEE8AA |
Pale green | 98FB98 |
Pale turquoise | AFEEEE |
Pale violet red | DB7093 |
Papaya whip | FFEFD5 |
Peach puff | FFDAB9 |
Peru | CD853F |
Pink | FFC8CB |
Plum | DDA0DD |
Powder blue | B0E0E6 |
Purple | 800080 |
Red | FF0000 |
Rosy brown | BC8F8F |
Royal blue | 4169E1 |
Saddle brown | 8B4513 |
Salmon | FA8072 |
Sandy brown | F4A460 |
Sea green | 2E8B57 |
Sea shell | FFF5EE |
Sienna | A0522D |
Silver | C0C0C0 |
Sky blue | 87CEEB |
Slate blue | 6A5ACD |
Snow | FFFAFA |
Spring green | 00FF7F |
Steelblue | 4682B4 |
Tan | D2B48C |
Teal | 008080 |
Thistle | D8BFD8 |
Tomato | FF6347 |
Turquoise | 40E0D0 |
Violet | EE82EE |
Wheat | F5DEB3 |
White | FFFFFF |
Whitesmoke | F5F5F5 |
Yellow | FFFF00 |
Yellow green | 9ACD32 |