Ajouter une propriété à une collection déjà existante

Bonsoir,

Soit une collection $coll ayant 2 propriétés ajoutées lors de la création de la collection par : ARRAY TO COLLECTION
Si je souhaite ajoute une 3ème propriété à la collection de même taille que la taille des autres, je fais comment : c’est tout bête je suis sur, mais là, je sèche grave.

Patrick

Pour chaque ?
(mais ça doit être trop simple, il dit y avoir un truc qui m’échaque…)

ben c’est exactement cela, pour chaque et cela m’échappe.
Tu as bien cerné la question :wink:

C’est parce que tu bosses avec le langage anglais. “For each”, c’est banal. Mais quand on a entendu ou écrit “pour chaque / fin de chaque” une fois, ça pique tellement les yeux et les oreilles qu’on n’a aucune chance d’oublier.

Disons que je fais :

<code 4D>
C_COLLECTION($maColl)
ARRAY TO COLLECTION($maColl;montableau1;“id”;monTableau2;“contenu”)

for each($val;$maColl)

// Je met quoi ici?
$val.nouvellePropriété:=“la valeur de ma nouvelle prop”
end for each
</code 4D>

C’est tout? (non testé)

Oui, $val est un pointeur sur l’élément courant de la collection. le modifier, modifie l’élément de la collection.

Selon le besoin, collection.map( ) peut-être aussi une solution…

Merci Vincent,

je garde collection.map() dans un coin pour autre chose :wink:

Pendant que j’y suis, existe-t-il un catalogue accessible des fonctions des collections et ORDA?

Patrick

Tu veux dire les member functions qui se trouvent à la fois au chapitre collection et dans un chapitre ORDA ?

oui, un peu comme la liste des commandes :wink:

Genre https://forums.4d.com/Post/FR/28304211/3/28361026#28361026ça> ?

Oui, mais l’idée est de lire l’info en fonction de la version de 4D, pas de l’avoir en dur dans le code :wink:
C’est juste qu’en cas d’évolution, cela évite de revenir modifier le code systématiquement.

Patrick

Bonjour…

dans la doc il y a des pages dédiées

Collections

https://doc.4d.com/4Dv17R4/4D/17-R4/Collections.201-4053716.en.html

ORDA

https://doc.4d.com/4Dv17R4/4D/17-R4/ORDA-DataClass.201-4053717.en.html
https://doc.4d.com/4Dv17R4/4D/17-R4/ORDA-DataClassAttribute.201-4053721.en.html
https://doc.4d.com/4Dv17R4/4D/17-R4/ORDA-Entity.201-4053720.en.html
https://doc.4d.com/4Dv17R4/4D/17-R4/ORDA-EntitySelection.201-4053718.en.html

et pour info, les noms des fonctions ne changeront jamais car elles ne sont pas “tokenisées” comme les commandes 4D (C’est d’ailleurs pour ça qu’elles ne sont qu’en anglais).

Roland

Merci Roland,

le truc est que je reprend le développement de mon outil d’introspection. Il n’y a pas que le token qui est intéressant :smiley:
Pour cela je parse le fichier XLF des commandes dans lequel je récupère des informations que j’affiche.
Or, ce type de fichier ne semble pas exister pour ORDA et Collections => pour automatiser, c’est plus délicat :wink:

Sinon, pas grave je ferai à la mano.

Patrick

: Patrick EMANUEL

Or, ce type de fichier ne semble pas exister pour ORDA et Collections
=> pour automatiser, c’est plus délicat :wink:
Peut-être plus que délicat, même…


collection.query :
https://doc.4d.com/4Dv17R3/4D/17-R3/collectionquery.305-3907482.fe.html
Commande numéro 805267, MAIS
• Nom commande(805267) = chaine vide
• :C805267 non reconnu

dataClass.query :
https://doc.4d.com/4Dv17R3/4D/17-R3/entitySelectionquery.305-3907515.fe.html
Pas de commande numéro

Donc : même nom de member function, mais, selon le contexte, l’une est une commande numérotée dont le numéro ne sert à rien, l’autre c’est pire.

Effectivement, je ne me suis pas encore “amuser” à faire cela. Ca sent le retrousse manche à donf, m’enfin.