4D v16.3

Find in list

Página Inicial

 
4D v16.3
Find in list

Find in list 


 

Find in list ( {* ;} lista ; valor ; alcance {; arrayElem {; *}} ) -> Resultado 
Parâmetro Tipo   Descrição
Operador in Se especificada, lista é um nome de objeto (cadeia) Se omitida, lista é um número de referência de lista
lista  ListRef, String in Número de referência de lista (se omitida *) ou Nome do objeto de tipo lista (se passada *)
valor  String in Valor a buscar
alcance   Inteiro in 0=Lista principal, 1=Sub-lista
arrayElem  Array inteiro longo in - Se omitido o 2do *: array de posições dos elementos encontrados - Se passado o segundo *: array de números de referência dos elementos encontrados
Operador in - Se omitido: utiliza a posição dos elementos - Se passado: utiliza o número de referência dos elementos
Resultado  Inteiro longo in - Se omitido o 2do *: posição do elemento encontrado - Se passado 2do *: número de referência do elemento encontrado

O comando Find in list retorna a posição ou referência do primeiro elemento da lista que é equivalente à cadeia passada em valor. Se são encontrados vários elementos, a função também pode preencher um array arrayElem com a posição ou a referência de cada elemento.

Se passa o parâmetro opcional *, indica que o parâmetro lista é um nome de objeto (cadeia) correspondente a uma representação da lista no formulário. Se não passa este parâmetro, indica que o parâmetro lista é uma referência de lista hierárquica (RefLista). Se utilizar apenas uma representação de lista ou trabalhar com números de referência de elementos (se omitir o segundo *), pode utilizar indiferentemente uma ou outra sintaxe. Por outro lado, se utilizar várias representações da mesma lista e trabalhar com posições de elementos (se passa o segundo *), a sintaxe baseada no nome do objeto é necessária já que a posição dos elementos pode variar de uma representação a outra.

Nota: se utilizar o caractere @ no nome do objeto da lista e o formulário contém várias listas que correspondem a este nome, o comando Find in list será aplicado ao primeiro objeto cujo nome ele corresponda.

O segundo parâmetro * permite indicar se deseja trabalhar com as posições atuais dos elementos (nesse caso, este parâmetro é omitido) ou com as referências absolutas dos elementos (nesse caso, deve ser passado).

Passe em valor a cadeia de caracteres a pesquisar. A pesquisa será do tipo “exata”; em outras palavras, a pesquisa de “pedra” não encontrará “pedras”. Entretanto, pode utilizar o caractere arroba (@) para definir as pesquisas de tipo “começa por,” “termina em” ou “contém”.

O parâmetro alcance é utilizado para definir se a pesquisa deve ser realizada unicamente no primeiro nível da lista ou se deve incluir todas as sub-listas. Passe 0 para limitar a pesquisa ao primeiro nível da lista e 1 para estendê-la pesquisa a todas as sub-listas.

Se deseja conhecer a posição ou o número de todos os elementos correspondentes a valor, passe um array inteiro longo no parâmetro opcional arrayElem. Se for necessário, o array será criado e redimensionado pelo comando. O comando preencherá o array com as posições (se omitir o segundo *) ou os números de referência ( se for passado o segundo *) dos elementos encontrados.

As posições são expressas em relação ao elemento superior da lista principal, considerando o  estado atual expandido/contraído da lista e das sub-listas.

Se nenhum elemento corresponde ao valor buscado, a função retorna 0 e o array arrayElem é retornado vazio.

Exemplo  

Dada a seguinte lista hierárquica:

 $vlItemPos:=Find in list(hList;"I@";1;$arrPos)
  `$vlItemPos igual a 6
  `$arrPos{1} igual a 6 e $arrPos{2} igual a 11
 $vlItemRef:=Find in list(hList;"I@";1;$arrRefs;*)
  `$vlItemRef igual a 7
  `$arrRefs{1} igual a 7 e $arrRefs{2} igual a 18
 $vlItemPos:=Find in list(hList;"Data";1;$arrPos)
  `$vlItemPos igual a 9
  `$arrPos{1} igual a 9 e $arrPos{2} igual a 16
 $vlItemRefFind in list(hList;"Fecha";1;$arrRefs;*)
  `$vlItemRef igual a11
  `$arrRefs{1} igual a 11 e $arrRefs{2} igual a 23
 $vlItemPos:=Find in list(hList;"Fecha";0;*)
  `$vlItemPos igual a 0

 
PROPRIEDADES 

Produto: 4D
Tema: Listas Hierárquicas
Número 952

 
HISTÓRIA 

Criado por: 4D v11 SQL

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)