Neste vídeo, vamos a aprender sobre os ponteiros e como otimizar sua programação e que sejam genéricos.
Como vimos no exercício anterior, definir opções para cada ação (pesquisar, ordenar, etc) no método NAVIGATION_FUNCTIONS pode ser convertida rapidamente em algo chato. Portanto temos que orientar a ação em direção a tabela que corresponde à página selecionada.
Neste caso, é mais fácil indicar só uma vez ao princípio do método a tabela a utilizar. Podemos armazenar esta indicação em uma variável e depois usar esta variável nos comandos.
Logicamente, não podemos dizer que uma variável é igual a uma tabela, estes objetos são completamente diferentes e têm um conteúdo completamente diferente. Já aprendemos que uma variável pode ser de tipo inteiro, numérico, texto, imagem, etc.. e contém um valor do tipo correspondente. Uma tabela não é um "conteúdo" como é um valor numérico.
A solução é utilizar uma variável de tipo ponteiro.
Assim que vamos a definir esta variável, que é uma variável local:
Esta variável existe em memória. Agora, para assinalar um valor, vamos a utilizar os seguintes tipos de sintaxes:
$TablePointer:=->[INTERVENTIONS]
Assim como temos visto para as variáveis, temos:
- Uma inicialização
- Uma atribuição de valor
E, mais adiante, em qualquer lugar onde a tabela Interventions deveria ter sido utilizada, vamos poder substituí-la com esta variável, que teremos que "desapontar" neste caso.
A vantagem é que todo o código está aqui, que é um simples copiar colar com só uma mudança da tabela, se pode substituir por estas 2 mesmas linhas de código, sempre que temos previamente definido a tabela à que deve apontar dependendo do número de página.
Assim que temos que obter o código que foi escrito antes, e aqui nos indicam que:
- Se estivermos na página 1, apontamos a interventions (->[INTERVENTIONS])
- Se estivermos na página 2, apontamos a technicians (->[TECHNICIANS])
Dito isto, já não é necessário provar as páginas aqui e portanto, já não é útil ter este programa duplicado.
Temos uma primeira programação aqui que nos permite:
- Definir a tabela relativa dependendo da página
- A continuação, definir a ação a realizar, independentemente da página já que a tabela correta foi definida.
O mesmo princípio aplica para as pesquisas:
- Vamos a mover o código aqui
- Eliminar por completo o "Case of" que está aqui
- E substituir "intervention" com um ponteiro à tabela já que estamos na página 2
Quando chegamos aqui, o ponteiro será um ponteiro a "Technicians" e, portanto vamos a procurar na tabela "Technicians".
O número de registros encontrados é o número de registros que se encontram na tabela "Technicians".