Além das manipulações explicadas no vídeo, também se deve ter em conta que:
Estes exercícios estão configurados para mostrar uma maneira específica de fazer as coisas.
Em função de seus próprios hábitos e normas de desenvolvimento de sua empresa, pode utilizar diferentes formas de organização, de nomear aos campos e variáveis, de estabelecer uma ordem para passar parâmetros, etc. Se pensa que outro modo é mais adequado, prove e compare suas vantagens e inconvenientes. Desta maneira você pode confiar em sua própria experiência.
Um método pode receber até 32 parâmetros (de $1 a $32). No entanto, é incomum utilizar mais de 7 ou 8 parâmetros.
Use e abuse da programação genérica.
A seguinte seção cobre o uso de ponteiros, complementando o que veremos aqui.
A programação genérica também lhe permite reduzir o tamanho de seu código mediante a concentração de uma série de funções dentro do mesmo método nos quais passam vários parâmetros. Para configurar a programação genérica corretamente, leve em conta estas observações:
Tão rápido como escreva várias linhas de código similares às anteriores, é provável que exista uma solução genérica que possa implementar.
(Más adiante) quando duvide em criar um método genérico: acredite, ¡Não se arrependerá!
Nem tudo pode ser genérico. Às vezes, tratar de fazer as coisas exageradamente genéricas pode trazer perdas de produtividade (o código não é fácil de ler, é difícil de manter, ocupa muita memória, aumenta o tempo de processamento,...)
Neste vídeo, vamos a aprender a chamar aos métodos e a utilizar parâmetros.
Cobriremos os parâmetros de tipo ponteiro mais a frente.
O objetivo da programação genérica é otimizar o desenvolvimento e facilitar a manutenção e a portabilidade.
Já usamos uma chamada simples a um método (sem parâmetros) no método de base "On Startup" onde chamamos o método NAVIGATION.
Nas primeiras lições de programação, vimos como configurar os botões em função da página selecionada no formulário navigation.
Agora vamos a otimizar esta programação para conservar somente um método utilizável para todos os botões de navegação (All, Query, Order by, etc...).
Mostramos o Explorador
Vamos a criar um novo método
Um método projeto que vamos a chamar NAVIGATION_FUNCTIONS.
Receberá 2 parâmetros:
- O primeiro concerne à ação a realizar em forma de texto (Pesquisar, Ordenar, etc.)
- O segundo corresponde à página onde ocorre o clique (1, 2, 3 e assim sucessivamente)
Chamamos a este método da seguinte maneira:
Em um botão, chamamos a NAVIGATION_FUNCTIONS
O texto correspondente à ação que queremos realizar
E aqui, como segundo parâmetro, a respectiva página.
NAVIGATION_FUNCTIONS("All";FORM Get current page) Assim que queremos usar as funções de navegação relativas ao elemento "All" e passando como segundo parâmetro e o número da página a processar.
Há duas formas de escrever os parâmetros do método que vai ser chamado, ou seja, o método NAVIGATION_FUNCTIONS:
Notará que para nomear os parâmetros, se utiliza a sintaxes $1, $2, ... $n para recuperar cada parâmetro.
Para fazer que seu método seja fácil de ler, lhe sugerimos criar variáveis locais com nomes explícitos, onde é assinalado o valor dos parâmetros recebidos. Portanto, é melhor escrever:
C_TEXT($1;$Action)
Já que podemos declarar várias variáveis em uma diretiva de compilação C_TEXT para as variáveis simples. Aqui uma segunda variável será o número de página:
C_LONGINT($2;$PageNum)
y para recuperar o valor de $1 em $Action e o valor de $2 em $PageNum, pode escrever:
$Action:=$1 $PageNum:=$2
O resto do método é uma adaptação do que se descreveu nas seções anteriores, adaptação da ação à petição e a configuração em função da página e, portanto da tabela escolhida:
Vamos a utilizar:
um Case of
:($Action="All")
E aqui vamos a recuperar o código do botão "All"
Recortar
E o adaptar no método.
Qual é a informação que necessitamos substituir?:
FORM Get current page já não é necessário já que é enviado pelo método que é chamado. Vamos a substituí-lo por $PageNum
O resto pelo momento não é necessário ser modificado.
Quando cobrimos os ponteiros, vamos a substituir o que temos aqui por um método mais genérico.
Podemos fazer o mesmo com o botão Query.
- Aqui arrastamos o código mantendo pressionada a tecla ALT para que seja copiado
- Logo vamos a ter uma ação "All" e uma ação "Query"
- Vamos a copiar o código do botão "All"
- E é colado no botão "Query"
- Substituímos a ação aqui
- Copiamos o código do botão "Query"
- E é fechado
- Regressar ao método aqui
E, como o realizamos antes, substituímos FORM Get current page pela variável que recebemos.
Vamos a colocar um ponto de ruptura e comprovar que vamos a este método quando se executa o formulário:
Se fizermos clique em "Todos", vemos que o método que se está executando, mas no que estamos especialmente interessados é no empilhamento dos métodos:
A última chamada se encontra na parte superior
A anterior na parte inferior.
Se fizermos duplo clique neste método aparece o código que é traído a este ponto e podemos ver que o método NAVIGATIONS_FUNCTIONS foi chamado (com os parâmetros: "All", FORM Get current page).O método foi recebido. Aqui recebeu os seguintes parâmetros: $1 = "All", $2 = o número de página, aqui é a página 1.
Logo, $Action é "All" de maneira que vamos a esta parte Logo $PageNum é 1, pelo que vamos a utilizar ALL RECORDS da tabela Interventions para determinar o número de registros correspondente.
Logo vamos a:
Eliminar o ponto de ruptura Executar o método Quando chegamos a Technician, se buscamos aqueles cujo nome contenha "bom", encontraremos BONAPARTE. e se pedimos "All"
Assim podemos ver que nosso método funciona corretamente, é chamado e recebe os parâmetros necessários.
PROPRIEDADES
Produto: 4D
Tema: Programação genérica (sem ponteiros)