Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

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. 

('Legenda'                        ||
'    Azul     -    Possui acesso' ||
'    Vermelho - Não possui acesso') AS HINT

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.

FROM U_DIREITOS DIR
WHERE ? 

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

 

  • No labels