| 4D v20.1Find in list | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v20.1
 Find in list 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Find in list ( {* ;} lista ; valor ; alcance {; arrayElem {; *}} ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| * | Operador |   | Se especificada, lista é um nome de objeto (cadeia) Se omitida, lista é um número de referência de lista | |||||
| lista | ListRef, String |   | Número de referência de lista (se omitida *) ou Nome do objeto de tipo lista (se passada *) | |||||
| valor | String |   | Valor a buscar | |||||
| alcance | Inteiro |   | 0=Lista principal, 1=Sub-lista | |||||
| arrayElem | Array inteiro longo |   | - 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 |   | - Se omitido: utiliza a posição dos elementos - Se passado: utiliza o número de referência dos elementos | |||||
| Resultado | Inteiro longo |   | - 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.
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
	Produto: 4D
	Tema: Listas Hierárquicas
	Número 
        952
        
        
        
	
	Criado por: 4D v11 SQL  
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v20)
	
	
	Manual de linguagem 4D ( 4D v20.1)
	
	
	
 Adicionar um comentário
Adicionar um comentário