Se mordre la queue ou pas?

Bonjour
Une table Synthèse, plusieurs champs, dont un champ [Synthèse]primaire et un [Synthèse]secondaire
les autres [Synthèse]compositions1 jusqu’à 60.

En saisie, Création de plusieurs fiches sans aucun problème si tout est manuel.
à la création d’une nouvelle fiche, je voudrai récupérer la liste des [Synthèse]Primaire et [Synthèse]Secondaire dans un Popup liste afin de les inscrire dans la composition de la new fiche
Exp:
[Synthèse]Primaire “Acide” : [Synthèse]Secondaire " Sulfurique
autres champs [Synthese]CompositionXX " composition de l’acide Sulfurique "
Nouvelle fiche
[Synthèse]Primaire “Acide” : [Synthèse]Secondaire " Pitrique"
autres champs [Synthese]CompositionXX " = composition de l’acide Pitrique " dont les champs
[Synthese]Composition16 est " Acide " et 17 est " Sulfurique "
Donc, il y a de l’acide sulfurique dans la composition de l’Acide Pitrique

J’espère que cela est clair
<code 4D>
// Popup “ChoixPrimaire” récup noms Primaire et secondaire
Si (ChoixPrimaire>0)
vPrimaire:=tPrimaire{ChoixPrimaire}
vsecondaire:=tSecondaire{ChoixPrimaire}
[Synthese]Composition16:=vPrimaire
[Synthese]Composition17:=vSecondaire
Sinon
BEEP
Fin de si
</code 4D>

<code 4D>
//Méthode formulaire
Au cas ou
: (Événement formulaire=Sur chargement)
SÉLECTION VERS TABLEAU([Synthèse]Primaire;ChoixPrimaire;[Synthèse]Secondaire;tPrimaire)
Fin de si
</code 4D>

Résultat, on récupère que [Synthèse]Primaire dans le popup, les autres champs sont désespérément vides
Merci de m’aider
Bonne journée

Bonjour,

Je trouve qu’il y quelques bizarretés dans ton code :

  • tu as un Au cas ou finissant par un Fin de si dans ta méthode formulaire.
  • dans ton sélection vers tableau, tu as …;[Synthèse]Secondaire;tPrimaire). Est-ce normal que tu mettes ton champ Secondaire dans un tableau primaire ? Et, du coup où est chargé ton tableau tSecondaire ?

Sur un plan plus pratique, pourquoi utilises-tu des variables process (vPrimaire et vsecondaire) plutôt que des locales ?
Et d’un point de vue sécurité, tu devrais t’assurer dans ton Si que ta variable ChoixPrimaire soit aussi <= taille tableau(tPrimaire), sinon tu utilises une indice sur un tableau sans contrôler sa taille.

En espérant avoir contribuer…
Bonne soirée

Bonjour Joel

En effet il Y a un ( Au cas ou et un Fin de si )
c’est une erreur de reprise du code car il y a d’autres ligne qui ne sont pas concernées

j’utilise très souvent ce mode de fonction sans aucun problème quand il s’agit de deux tables non liée,
mais dans ce cas c’est pour la même table, c’est pourquoi cela ne fonctionne pas et que le code n’est pas approprié.
Aurais tu un bout de code a inscrire dans dans la méthode formulaire et dans le popup pour que cela fonctionne parfaitement
Sinon y a t’il une autre solution de utilisateurs en ligne?

Merci

J’ai refondu les champs
[Synthèse]Nom1
[Synthèse]NomBis
[Synthèse]Composition1
[Synthèse]CompositionBis
[Synthèse]60autreschamps

Création de fiche = saisie d’un nouveau Nom1 et NomBis
un popup liste de tous les [Synthèse]Nom1 et [Synthèse]NomBis
[Synthèse]Composition1:=[Synthèse]Nom1
[Synthèse]CompositionBis:=[Synthèse]NomBis

Bonjour à tous,

Après plusieurs dizaines d’essais, j’ai enfin trouver ce qui me manquai.

Merci pour votre accompagnement

A bientôt