Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v19.8
entitySelection.toCollection( )

entitySelection.toCollection( )  


 

entitySelection.toCollection ( {filtro ;}{ opções {; Inicio {; quantos}}} ) -> Resultado 
Parâmetro Tipo   Descrição
filtro  String, Collection in Especifica quais propriedades de entidade vai extrair
opções  Inteiro longo in dk com chave primária: adds the primary key dk with stamp: adiciona a stamp
Inicio  Inteiro longo in Determina o índice de início
quantos  Inteiro longo in Número de entidades a extrair
Resultado  Collection in Coleção de objetos que contém atributos e valores da coleção da entidade

O método entitySelection.toCollection( ) cria e devolve uma coleção onde cada elemento é um objeto que contém um conjunto de propriedades e valores correspondentes aos nomes e valores de atributos para a coleção de entidades .

Se omitir o parâmetro filtro ou conter uma string vazia ou "*", são extraídos todos os atributos. Os atributos com a propriedade "kind" "relatedEntity" são extraidos da forma simples: um objeto com propriedade __KEY (chave principal). Os atributos com a propriedade "kind" "relatedEntities" não são extraídos.

No parâmetro filtro, pode passar os atributos de entidade a serem extraidos. Duas sintaxes são permitidas:

  • uma string com rotas de propriedade separadas por vírgulas:  "propertyPath1, propertyPath2, ...".
  • uma coleção de strings: ["propertyPath1","propertyPath2",...]

Se filtro é especificado para atributos do tipo relatedEntity:

  • propertyPath = "relatedEntity" -> se extrai de forma simples
  • propertyPath = "relatedEntity.*" -> se extraem todas as propriedades
  • propertyPath = "relatedEntity.propertyName1, relatedEntity.propertyName2, ..." -> apenas se extraem essas propriedades

Se filtro for especificado para atributos do tipo relatedEntities:

  • propertyPath = "relatedEntities.*" -> todas as propriedades são extraídas
  • propertyPath = "relatedEntities.propertyName1, relatedEntities.propertyName2, ..." -> apenas são extraídas essas propriedades

No parâmetro opções, pode passar os seletores dk with primary key ou dk with stamp para agregar as chaves principais ou stamps da entidade nos objetos extraídos.

O parâmetro inicio lhe permite indicar o índice inicial das entidades a extrair. Pode passar qualquer valor entre 0 e a entidade de seleção-1.

O parâmetro quantas lhe permite especificar o número de entidades a extrair, começando com a especificada em inicio. As entidades soltadas não são devolvidas, mas são consideradas  de acordo com quantas. Por exemplo, se quantas= 3 e houver 1 entidade soltada, só são extraídas 2 entidades.

Se quantas> longitude da seleção de entidade, o método devolve objetos (length - inicio).

Se devolve uma coleção vazia se:

  • a seleção de entidade estiver vazia, ou
  • inicio for maior que a longitude da seleção de entidade.

A estrutura abaixo é usada em todos os exemplos desta seção:

Exemplo sem parâmetro filtro:

 employeesCollection:=New collection
 employeesCollection:=$entitySelection.toCollection()


Devolve:

[
    {
        "ID": 411,
        "firstName": "Joanna",
        "lastName": "Cabrera",
        "salary": 75000,
        "birthDate": "2014-01-18T00:00:00.000Z",
        "woman": true,
        "managerID": 0,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": "20",
            "__STAMP": 1
        },
        "directReports": {
            "__COUNT": 3
        }
    },
    {
        "ID": 412,
        "firstName": "Alexandra",
        "lastName": "Coleman",
        "salary": 36500,
        "birthDate": "1958-10-27T00:00:00.000Z",
        "woman": true,
        "managerID": 411,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": "20",
            "__STAMP": 1
        },
        "manager": {
            "__KEY": "411",
            "__STAMP": 1
        },
        "directReports": {
            "__COUNT": 3
        }
    }
]

Exemplo com opções:

 $employeesCollection:=New collection
 $employees:=ds.Employee.all()
 $employeesCollection:=$employees.toCollection("";dk with primary key+dk with stamp)

Retorna:

[
    {
        "__KEY": 416,
        "__STAMP": 1,
        "ID": 416,
        "firstName": "Gregg",
        "lastName": "Wahl",
        "salary": 79100,
        "birthDate": "1963-02-01T00:00:00.000Z",
        "woman": false,
        "managerID": 412,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": 20
        },
        "manager": {
            "__KEY": 412
        }
    },
    {
        "__KEY": 417,
        "__STAMP": 1,
        "ID": 417,
        "firstName": "Irma",
        "lastName": "Durham",
        "salary": 47000,
        "birthDate": "1992-06-16T00:00:00.000Z",
        "woman": true,
        "managerID": 412,
        "employerID": 20,
        "photo": "[object Picture]",
        "extra": null,
        "employer": {
            "__KEY": 20
        },
        "manager": {
            "__KEY": 412
        }
    }]

Example with slicing and filtering on properties:

 $employeesCollection:=New collection
 $filter:=New collection
 $filter.push("firstName")
 $filter.push("lastName")
 
 $employees:=ds.Employee.all()
 $employeesCollection:=$employees.toCollection($filter;0;0;2)

Returns:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl"
    },
    {
        "firstName": "Irma",
        "lastName": "Durham"
    }
]

Exemplo com o tipo relatedEntity com um formulário simples:

 employeesCollection:=New collection
 employeesCollection:=$entitySelection.toCollection("firstName,lastName,employer")

returns:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "employer": {
            "__KEY": 20
        }
    },
    {
        "firstName": "Irma",
        "lastName": "Durham",
        "employer": {
            "__KEY": 20
        }
    },
    {
        "firstName": "Lorena",
        "lastName": "Boothe",
        "employer": {
            "__KEY": 20
        }
    }
   ]

Exemplo com filtro como uma coleção:

 employeesCollection:=New collection
 $coll:=New collection("firstName";"lastName")
 employeesCollection:=$entitySelection.toCollection($coll)

Returns:

[
    {
        "firstName": "Joanna",
        "lastName": "Cabrera"
    },
    {
        "firstName": "Alexandra",
        "lastName": "Coleman"
    }
]

Exemplo com a  extração de todas as propriedades de relatedEntity:

 employeesCollection:=New collection
 $coll:=New collection
 $coll.push("firstName")
 $coll.push("lastName")
 $coll.push("employer.*")
 employeesCollection:=$entitySelection.toCollection($coll)

Returns:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "employer": {
            "ID": 20,
            "name": "India Astral Secretary",
            "creationDate": "1984-08-25T00:00:00.000Z",
            "revenues": 12000000,
            "extra": null
        }
    },
    {
        "firstName": "Irma",
        "lastName": "Durham",
        "employer": {
            "ID": 20,
            "name": "India Astral Secretary",
            "creationDate": "1984-08-25T00:00:00.000Z",
            "revenues": 12000000,
            "extra": null
        }
    },
    {
        "firstName": "Lorena",
        "lastName": "Boothe",
        "employer": {
            "ID": 20,
            "name": "India Astral Secretary",
            "creationDate": "1984-08-25T00:00:00.000Z",
            "revenues": 12000000,
            "extra": null
        }
    }
  ]

Exemplo com extração de algumas propriedades de uma relatedEntity:

 employeesCollection:=New collection()
 employeesCollection:=$entitySelection.toCollection("firstName, lastName, employer.name")

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "employer": {
            "name": "India Astral Secretary"
        }
    },
    {
        "firstName": "Irma",
        "lastName": "Durham",
        "employer": {
            "name": "India Astral Secretary"
        }
    },
    {
        "firstName": "Lorena",
        "lastName": "Boothe",
        "employer": {
            "name": "India Astral Secretary"
        }
    }]

Exemplo com extração de algumas propriedades de relatedEntities:

 $employeesCollection:=New collection
 $employeesCollection:=$employees.toCollection("firstName, lastName, directReports.firstName")

Returns:

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "directReports": []
    },
    {
        "firstName": "Mike",
        "lastName": "Phan",
        "directReports": [
            {
                "firstName": "Gary"
            },
            {
                "firstName": "Sadie"
            },
            {
                "firstName": "Christie"
            }
        ]
    },
    {
        "firstName": "Gary",
        "lastName": "Reichert",
        "directReports": [
            {
                "firstName": "Rex"
            },
            {
                "firstName": "Jenny"
            },
            {
                "firstName": "Lowell"
            }
        ]
    }]

Exemplo com extração de todas as propriedades de relatedEntities:

 $employeesCollection:=New collection
 $employeesCollection:=$employees.toCollection("firstName, lastName, directReports.*")

[
    {
        "firstName": "Gregg",
        "lastName": "Wahl",
        "directReports": []
    },    
    {
        "firstName": "Mike",
        "lastName": "Phan",
        "directReports": [
            {
                "ID": 425,
                "firstName": "Gary",
                "lastName": "Reichert",
                "salary": 65800,
                "birthDate": "1957-12-23T00:00:00.000Z",
                "woman": false,
                "managerID": 424,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 424
                }
            },
            {
                "ID": 426,
                "firstName": "Sadie",
                "lastName": "Gallant",
                "salary": 35200,
                "birthDate": "2022-01-03T00:00:00.000Z",
                "woman": true,
                "managerID": 424,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 424
                }
            }
                   ]
    },
    {
        "firstName": "Gary",
        "lastName": "Reichert",
        "directReports": [
            {
                "ID": 428,
                "firstName": "Rex",
                "lastName": "Chance",
                "salary": 71600,
                "birthDate": "1968-08-09T00:00:00.000Z",
                "woman": false,
                "managerID": 425,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 425
                }
            },
            {
                "ID": 429,
                "firstName": "Jenny",
                "lastName": "Parks",
                "salary": 51300,
                "birthDate": "1984-05-25T00:00:00.000Z",
                "woman": true,
                "managerID": 425,
                "employerID": 21,
                "photo": "[object Picture]",
                "extra": null,
                "employer": {
                    "__KEY": 21
                },
                "manager": {
                    "__KEY": 425
                }
            }
           ]
 }
]



Ver também 

dataClass.fromCollection( )

 
PROPRIEDADES 

Produto: 4D
Tema: ORDA - seleção de entidade

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v17

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v19)
Manual de linguagem 4D ( 4D v19.1)
Manual de linguagem 4D ( 4D v19.4)
Manual de linguagem 4D ( 4D v19.5)
Manual de linguagem 4D ( 4D v19.6)
Manual de linguagem 4D ( 4D v19.7)
Manual de linguagem 4D ( 4D v19.8)