Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19.8
entitySelection.toCollection( )

entitySelection.toCollection( )  


 

entitySelection.toCollection ( {filtro ;}{ opciones {; inicio {; cuantas}}} ) -> Resultado 
Parámetro Tipo   Descripción
filtro  Cadena, Collection in Especifica qué propiedades de entidad extraer
opciones  Entero largo in dk with primary key: añade la llave primaria dk with stamp: añade el sello
inicio  Entero largo in Designa el índice de inicio
cuantas  Entero largo in Número de entidades a extraer
Resultado  Collection in Colección de objetos que contienen atributos y valores de la colección de entidades

El método entitySelection.toCollection( ) crea y devuelve una colección donde cada elemento es un objeto que contiene un conjunto de propiedades y valores correspondientes a los nombres y valores de atributos para la colección de entidades .

Si se omite el parámetro filtro o contiene una cadena vacía o "*", se extraen todos los atributos. Los atributos con la propiedad "kind" "relatedEntity" se extraen de la forma simple: un objeto con propiedad __KEY (llave principal). Los atributos con la propiedad "kind" "relatedEntities" no se extraen.

En el parámetro filtro, puede pasar los atributos de entidad a extraer. Se permiten dos sintaxis:

  • una cadena con rutas de propiedad separadas por comas:  "propertyPath1, propertyPath2, ...".
  • una colección de cadenas: ["propertyPath1","propertyPath2",...]

Si filtro se especifica para atributos del tipo relatedEntity:

  • propertyPath = "relatedEntity" -> se extrae de forma simple
  • propertyPath = "relatedEntity.*" -> se extraen todas las propiedades
  • propertyPath = "relatedEntity.propertyName1, relatedEntity.propertyName2, ..." -> solo se extraen esas propiedades

Si filtro se especifica para atributos del tipo relatedEntities:

  • propertyPath = "relatedEntities.*" -> todas las propiedades se extraen
  • propertyPath = "relatedEntities.propertyName1, relatedEntities.propertyName2, ..." -> solo se extraen esas propiedades

En el parámetro opciones, puede pasar los selectores dk with primary key y/o dk with stamp para agregar las llaves principales y/o sellos de la entidad en los objetos extraídos.

El parámetro inicio le permite indicar el índice inicial de las entidades a extraer. Puede pasar cualquier valor entre 0 y la entidad de selección-1.

El parámetro cuantas le permite especificar el número de entidades a extraer, comenzando con la especificada en inicio. Las entidades soltadas no se devuelven, pero se tienen en cuenta según cuantas. Por ejemplo, si cuantas= 3 y hay 1 entidad soltada, solo se extraen 2 entidades.

Si cuantas> longitud de la selección de entidad, el método devuelve objetos (length - inicio).

Se devuelve una colección vacía si:

  • la selección de entidad está vacía, o
  • inicio es mayor que la longitud de la selección de entidad.

La siguiente estructura se usará en todos los ejemplos de esta sección:

Ejemplo sin parámetro filtro u opciones:

 C_COLLECTION($employeesCollection)
 C_OBJECT($employees)
 
 $employeesCollection:=New collection
 $employees:=ds.Employee.all()
 $employeesCollection:=$employees.toCollection()

Devuelve:

[
    {
        "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
        }
    },
    {
        "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
        }
    }
]

Ejemplo con opciones:

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

Devuelve:

[
    {
        "__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
        }
    }]

Ejemplo con découpage y filtro:

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

Devuelve:

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

Ejemplo con el tipo relatedEntity con formulario simple:

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

Devuelve:

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

Ejemplo con filtro como una colección:

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

Devuelve:

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

Ejemplo con extracción de todas las propiedades de una relatedEntity:

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

Devuelve:

[
    {
        "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
        }
    }
  ]

Ejemplo con extracción de algunas propiedades de una relatedEntity:

 $employeesCollection:=New collection
 $employeesCollection:=$employees.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"
        }
    }]

Ejemplo con extracción de algunas propiedades de relatedEntities:

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

Devuelve:

[
    {
        "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"
            }
        ]
    }]

Ejemplo con extracción de todas las propiedades 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 también 

dataClass.fromCollection( )

 
PROPIEDADES 

Producto: 4D
Tema: ORDA - EntitySelection

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v17

 
ARTICLE USAGE

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