Extraire entity d'1 LB entity

Bonjour, je souhaite “extraire” le champ ID d’une ligne de LB entity pour ouvrir (éditer) le formulaire “Entrée”. Le champ “Position élément courant” (source des données du formulaire) renvoie le num d’ordre dans la LB, num qui change en fonction du tri. Merci

Bonjour,

tu y es presque. il faut que tu selection “élément courant” qui sera renseigné à chaque fois que tu changes d’élément.

Le champ “Position élément courant” renvoie le num de la place de la ligne ds la LB. Ce num ne correspond à rien ds le formulaire entrée. Ce formulaire a 1 champ ID, 1 champ NumEnreg, ils sont fixes ; le num position élément… lui varie en fonction du tri ou autre …

Quand tu cliques sur une ligne, dans un LB 4D standard, utiliser les numéros de lignes est bien, mais dans ORDA, et que tu configures ta listbox, dans “élément courant”, tu mets “form.currentElement”.
Ta première colonne ID, tu dois avoir This.ID et dans la seconde This.numEnr par exemple.
Quand tu cliques sur une ligne, tu récupères l’ID de ton entity dans form.currentElement.ID et le numéro d’enregistrement dans form.currentElementnumEnr

Patrick

J’avais monté la LB comme tu me l’as indiquée. Il me manquait “form.currentElement” et form.currentElement.ID.

  1. C_OBJET($abc;ID)
  2. $evt:=Événement formulaire code
  3. Si ($evt=Sur double clic)
  4. $abc:=Créer objet
  5. ID:=Créer objet
  6. $abc:=form.currentElement.ID
  7. CHERCHER([CC];[CC]ID=$abc)
  8. DIALOGUE([CC];“Entrée”)
  9. Fin de si

Ce code ne fonctionne pas : 4D me demande de créer un objet ou 1 collection pour la ligne 6 ?

(Le début d’ORDA est difficile, des journées entières à résoudre 1 pb pour une ligne de code…passionnant)

Ce qui est retourné par form.currentElement.ID est l’ID et pas un objet

donc soit :

$abc:=Form.currentElement
CHERCHER([CC];[CC]ID=$abc.ID)

soit :

$ID:=Form.currentElement.ID
CHERCHER([CC];[CC]ID=$ID)

Je précise que ID n’est probablement pas un objet…

1 Like

Merci Patrick. Je m’y remets demain et vais approfondir ces nouvelles notions. jérôme

Bonjour,
form.currentElement.ID retourne [ID] ce qui bloque “Chercher”.
Dans l’exemple $ID= [14] (Trace)
“Chercher” demande : ID et non pas [ID]. (14 et non pas [14])
Je continue de chercher…
Capture d’écran 2020-05-08 à 11.48.37

Je pense que l’expression Form.currentElement n’est pas au bon endroit dans les propriétés de votre listbox.
Elle doit se trouver au niveau de “Current item” alors que je pense que vous l’avez peut-être renseigné au niveau de “Selected items” qui est une collection. Ce qui correspond à ce que vous recevez en retour.

Trop rapide Vincent, :wink:

Parfait. Très bon diagnostic, pas évident à distance. Merci de cette conclusion pour laquelle j’ai failli abandonner (2 jours de cogitation) mais pour 4D, il n’y a pas de jour férié !

Jerome,
je ne peux que te conseiller d’aller sur le blog 4D et de rechercher les posts sur ORDA. Il y a pas mal et certains sont excessivement didactiques comme ceux sur la généalogie par exemple.