Auxílios do VisualAge Generator

Instrução FIND

FIND transfere o controle para uma função caso seja encontrado um valor de item de dados na coluna de pesquisa de alguma tabela.

>>-FIND--item de dados--tabela----+--------------------+-------->
                                  '-.pesquisar coluna--'
 
>-----+-verdadeiro-------+--;----------------------------------><
      +-,falso-----------+
      '-verdadeiro,falso-'
 

Atributo Descrição
item de dados Nome de um item de dados ou literal. O nome do item de dados pode ser subscrito, qualificado ou ambos.
tabela Nome de uma tabela a ser pesquisada.
coluna de pesquisa Nome de coluna na tabela a ser pesquisada. O padrão é a primeira coluna da tabela.
verdadeiro Nome da função principal ou EZECLOS, se especificado em fluxo de programa. O nome de um EZECLOS, EZEFLO ou EZERTN é especificado numa função.
falso Nome de uma função principal ou EZECLOS, se especificado em fluxo de programa. O nome de um EZECLOS, EZEFLO ou EZERTN é especificado numa função.

Se o valor de item de dados for encontrado na coluna especificada em qualquer das linhas na tabela, o elemento verdadeiro é executado como uma instrução incondicional. Se o elemento verdadeiro não estiver especificado, a execução continua com a instrução após o FIND.

Se o valor de item de dados não for encontrado na coluna especificada em qualquer das linhas na tabela, o elemento falso é executado como uma instrução incondicional. Se o elemento falso não estiver especificado, a execução continua com a instrução após o FIND.

A palavra de função especial EZETST é carregada com um valor dependendo dos resultados de uma instrução FIND. EZETST contém os seguintes valores:

Quando EZETST contém um número de linha, ele pode ser usado como um subscrito para outras instruções que fazem referência a outras colunas nessa mesma linha da tabela.

Para obter um desempenho mais eficiente, use FIND em vez de IF...OR....OR.

Na área de instruções, se você especificar ambos, um nome falso e um verdadeiro, em uma instrução FIND, você pode separar os nomes com uma vírgula. Se você especificar somente um nome falso, você deve precedê-lo com uma vírgula. As vírgulas são inseridas automaticamente se você estiver usando o gabarito da instrução FIND.

Ambientes de Destino para FIND

Suportado em todos os ambientes sem considerações de compatibilidade.

Exemplos para FIND

No exemplo a seguir, uma tabela (INFO) possui 50 linhas e 3 colunas chamadas STATE (estado), POPULTN (população) e AREA (área). A primeira coluna possui uma entrada para cada um dos 50 estados, a segunda coluna contém a população de cada estado e a terceira coluna contém a área em milhas quadradas de cada estado.

INFO:

STATE POPULATN AREA
Alabama 4,041,000 51,600
Alaska 550,000 586,000
. . .
. . .

Uma instrução FIND poderia ser usada para pegar o número da linha contendo um certo estado da tabela acima e desviar de acordo.

MOVE 'ALASKA' TO ITEM;
FIND ITEM INFO.STATE MATCH,NOMATCH;

Quando o FIND é executado e uma correspondência é encontrada, o EZETST é definido para 2. Esse é o número da linha do estado correspondente. O controle é passado para MATCH. Se não for encontrada nenhuma correspondência, EZETST será definida para 0 e o controle será passado para NOMATCH.

A instrução a seguir passará o controle para MATCH somente se uma correspondência for encontrada.

FIND ITEM INFO.STATE MATCH;

Se nenhuma correspondência for encontrada, a instrução imediatamente após a instrução FIND  é executada.

A instrução a seguir passará o controle para NOMATCH se uma correspondência não for encontrada.

FIND ITEM INFO.STATE ,NOMATCH;

Se uma correspondência foi encontrada, a instrução imediatamente após a instrução FIND  é executada.


[ Início da Página | Página Anterior | Próxima Página | Índice ]