PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Champ TABLE et fenêtre interne détail ligne : comment accéder à la FI depuis la fenêtre principale ?
Champ TABLE et fenêtre interne détail ligne : comment accéder à la FI depuis la fenêtre principale ?
Débuté par Christophe PRADEL, 24 mai 2018 10:47 - 10 réponses
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 24 mai 2018 - 10:47
Bonjour

La question est dans le titre !

Je n'arrive pas à trouver la syntaxe me permettant, à partir de la fenêtre contenant une TABLE rattachée à une Fenêtre interne pour le détail ligne :
- d'accéder à un champ de la FI associée à une ligne en particulier
- d'exécuter une procédure locale de la FI associée à une ligne en particulier

J'ai cherché en vain sur ce forum.
J'ai bien trouvé la technique pour accéder aux informations de la fenêtre principale depuis la FI
Mais dans l'autre sens, je sèche...

Si quelqu'un.e a une expérience ou une idée...

Merci d'avance

Christophe
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 24 mai 2018 - 10:53
>
Message modifié, 24 mai 2018 - 10:54
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 24 mai 2018 - 12:05
Oui, Charly ?
Exprime-toi...
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 24 mai 2018 - 12:24
Coucou,

Comment tu associe ta FI a la ligne ?

--
In üs we trust

Chocolat en Suisse - #Foetus
Kaeng Khiao Wan en Thailland - #ATR
Kopi luwak en Indonesie - #Abracadabra
Durio zibethinus en Malaisie - #JamaisFinie
Bánh Mì H?ng Hoa au Viêt Nam - #ImprévisibleMaGénération
Pizza à Cannes - #RAS
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 24 mai 2018 - 12:32
Finalement, je pense avoir trouvé la solution
Si cela peut aider quelqu'un un jour...

Exemple de test qui fonctionne :

J'ai une fenêtre interne FI_TestListe qui contient
- un champ LIB_SansNom1 initialisé avec un libellé aléatoire
- une procédure locale "Valider" contenant une Trace du contenu de LIB_SansNom1

J'ai une fenêtre principale FEN_TestListe qui contient
- un champ TABLE_Liste relié à FI_TestListe pour l'affichage d'un détail ligne
- un bouton "Valider" pour lancer la

Le bouton Valider est programmé ainsi :

POUR TOUTE LIGNE nIndex de TABLE_Liste
SI TABLE_Liste[nIndex]..FenêtreDétailLigne = "" ALORS CONTINUER
SI TABLE_Listre[nIndex]..Enroulé ALORS CONTINUER
chp est un Champ <- {"TABLE_Liste[" + nIndex + "].FI_TestListe",indChamp}
Trace(chp.LIB_SansNom1)
chp.Valider()
FIN


On voit que l'on peut :
- accéder à un champ de chaque FI depuis la fenêtre principale
- lancer une procédure locale de chaque FI

Le résultat de la trace montre que l'on est bien dans le contexte de chaque fenêtre interne :




Membre enregistré
57 messages
Popularité : +17 (17 votes)
Posté le 24 mai 2018 - 12:36
Bonjour,

La syntaxe pour accéder à un champ est :
TABLE_COMMANDE[Indice].FI_LIGNE_COMMANDE.CHAMP

Par contre, il n'y a pas de syntaxe pour exécuter une procédure de la fenêtre interne.

--
Loïc HAMEL (Twitter : @HAMELLoic)
Support Technique PC SOFT
Membre enregistré
948 messages
Popularité : +30 (92 votes)
Posté le 24 mai 2018 - 12:37
Coucou,

Loic, on peut pas utiliser ExécuteTraitement ?

Reference: https://doc.pcsoft.fr/?3013031

ExécuteTraitement(TABLE_COMMANDE[Indice].FI_LIGNE_COMMANDE, trtProcedure, TaProcédure)


--
In üs we trust - Amicalement - N10

Chocolat en Suisse - #Foetus
Kaeng Khiao Wan en Thailland - #ATR
Kopi luwak en Indonesie - #Abracadabra
Durio zibethinus en Malaisie - #JamaisFinie
Bánh Mì H?ng Hoa au Viêt Nam - #ImprévisibleMaGénération
Pizza à Cannes - #RAS
Message modifié, 24 mai 2018 - 12:45
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 24 mai 2018 - 13:55
Pour charly :

J'associe la fenetre à chaque ligne dans le traitemetn de la table "afficher une ligne" :

clObj est un MaClasseHierarchique = TABLE_Liste
nIndex est un entier = IndiceEnCours()

SI clObj.Items..Vide ALORS
TABLE_Liste[nIndex]..FenêtreDétailLigne = ""
SINON
TABLE_Liste[nIndex]..FenêtreDétailLigne = "FI_TestListe"
FIN


Cela me permet de conditionner l'accès de chaque ligne à la FI en fonction de son contexte
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 24 mai 2018 - 14:06
Pour Loïc :

En effet, ta solution fonctionne pour l'accès à un champ
Par contre, elle ne permet pas d'accéder à une procédure locale de la FI, avec ou sans ExecuteTraitement et dans ce cas, la solution que j'ai trouvée (voir au dessus) fonctionne bien

Merci
Membre enregistré
3 872 messages
Popularité : +227 (347 votes)
Posté le 24 mai 2018 - 16:30
Si j'ai bien tout compris :
-Tu as un champ table (TABLE_Toto)
-Lorsque tu sélectionnes une ligne de TABLE_Toto, tu veux que le détail s'affiche via une FI (FI_Détail) contenue dans un CFI (CFI_DétailToto).

--
Il y a peut être plus simple, mais, ça tourne
Membre enregistré
136 messages
Popularité : +12 (14 votes)
Posté le 24 mai 2018 - 17:56
A voroltinquo :

Pas besoin de CFI, la fonctionnalité de connexion d'une FI à un champ table pour représentation de données de détail existe depuis plusieurs versions dans Windev

Le pb concernait seulement les modes de communication entre la fenêtre principale (celle contenant la table) et des fenêtres internes associées à chaque ligne de la table

Grâce à l'aide de chacun, c'est maintenant clair et ça marche bien