Merci pour vos pistes.
Tout semble fonctionner, je laisse comme ça :-)
Merci pour vos pistes.
Tout semble fonctionner, je laisse comme ça :-)
Dans ma fenêtre "Dossier", je peux choisir l'un et l'autre contact sans problème.
Mais pas moyen de d'afficher les coordonnées de chaque contact...
Bonjour,
As-tu essayé d'utiliser une fenêtre interne pour afficher
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Je ne connais pas cette procédure d'autant plus qu'il y a deux contacts à détailler
Puisque le nom correct apparaît, n'y aurait-il pas moyen d'indiquer que SAI_AdresseDemandeur = COMBO_Demandeur .... ?
Avec les combos, tout le monde fait la même erreur au début.
Si tu fais Sai_Adresse = Combo_Adresse, tu vas avoir un n°: 1 si l'utilisateur a sélectionné la première ligne de la combo.
Il faut faire Sai_Adresse = Combo_Adresse[Combo_Adresse]
Ou encore , on peut faire comme ci-dessous :
Ce code est juste pour expliquer pourquoi on met 2 fois combo_adresse. Dans la pratique, l'instruction Sai_Adresse = Combo_Adresse[Combo_Adresse] est suffisante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 i est un entier i = combo_adresse // N° de l'option choisie dans la combo Sai_Adresse = Combo_Adresse[i] // Libellé de l'option en question.
Pour les combos SANS saisie, ça marche comme ça.
Pour les combos AVEC saisie (l'utilisateur peux saisir une adress nouvelle), ça ne marche pas comme ça... ce qui ajoute encore un peu au trouble et à la difficulté de programmer ces combos.
N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.
Vous avez ce qu'il vous faut ici :
https://doc.pcsoft.fr/?1013023
Exemples unitaires (WINDEV) : Le champ Combo[ - ] Utilisation du champ Combo
Quand je fais cette manipulation, il indique dans le champ "adresse " le "nom" du [x] contact...
Si ça peut aider, voici le projet archivé : https://1drv.ms/u/s!AtffOn3MRGtOgvMa-7KL6sdij1kx4A
Bonjour,
Il faut jouer avec la valeur retournée par la/le combo (je n'ai jamais su si c'était masculin ou féminin)
L'onglet contenu, au niveau de rubrique mémorisée, il faut mettre IDContact.
Le code de "Selection d'une ligne" de ta combo devient
Nous allons toutefois être confronté à un problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 HLitRecherche(Produit,PK_Produit,MoiMême) FichierVersEcran()
1-On ne peut attacher qu'une seule fois une rubrique à un champ dans une fenêtre
2-Même si ce n'était pas le cas Windev ne saurait pas quand afficher telle ou telle valeur.
D'où mon idée de fenêtre interne.
Dans Nouveau: Fenêtre/Fenêtre interne.
Tu dépose alors les champs nécessaires sauf la combo
Un petit clic droit/adapter la taille, ta FI est prête pour l'utilisation ... ou presque
On va créer une procédure d'initialisation de la FI
.
Tu peux maintenant créer 2 conteneurs Fenêtre Interne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Init(gnIdProduit est entier sur 8 octets=0) HLitRecherche(Produit,PK_Produit,gnIdProduit) FichierVersEcran()
Au niveau des combos le code devient
Ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CFI_Demandeur.Init(MoiMeme)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CFI_Débiteur.init(MoiMeme)
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Super, merci
Je dois voir ça à tête reposée car ça ne m'a pas l'air si simple que ça.
J'ai oublié de préciser qu'il faut cocher "Utiliser un contexte indépendant" au niveau de la description de la FI.
Cela évite que les 2 CFI se mettent à jour en même temps.
Une autre solution, plus simple peut être, toujours avec le contexte indépendant, est d'intégrer directement la combo dans la FI. Le code de la combo étant le HlitRecherche cité au début
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Super, merci
Donc, en l'occurrence dans la fenêtre interne, le code de fin d'initialisation est :
Car
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 gnIdProduit est entier sur 8 octets=0 HLitRecherche(Contact,IDContact,gnIdProduit) FichierVersEcran()me donne une erreur de syntaxe
Code : Sélectionner tout - Visualiser dans une fenêtre à part Init(gnIdProduit est entier sur 8 octets=0)
Le code de la Combo n'accepte pas le point entre Demandeur et Init:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CFI_Demandeur.Init(MoiMeme)
1-Il faut créer la procédure Init
2-C'est au niveau de la FI, pas du champ
Ma syntaxe n'était pas la syntaxe exacte, désolé
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Je suis parti sur deux idées différentes, je vais récapituler.
1 Partie Commune
1-Créer une FI
2-Placer les champ souhaités
3-Cocher la case "Contexte HFSQL indépendant" dans Description/Détail
2 Combo intégrée à la FI
1-Ajouter la combo
2-Description/Contenu vérifier que "Valeur mémorisée" est bien IDContact
3-Insérer le code
4-Faire du propre (Adapter la taille)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 HlitRecherche(Contact,IDContact,MoiMeme) FichierVersEcran()
5-Créer les 2 CFI
3-Combo "indépendante"
Au niveau de la FI créée en 1:
1-Créer une procédure locale Init:
2-Créer le 2 CFI
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 PROCEDURE Init(gnIdContact est entier sur 8 octets=0) HLitRecherche(Contact,IDContact,gnIDContact) FichierVersEcran()
3-Ajouter les 2 combos dans la fenêtre principale avec les mêmes contraintes quant à la valeur mémorisée
4-Code des combos:
Resp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CFI_Demandeur.Init(MoiMeme)
J'ai testé les 2 méthodes (avec une table Produit soit elles fonctionnent parfaitement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CFI_Débiteur.Init(MoiMeme)
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Dans la 2-5, la combo est dans la FI
Dans la 3-2, seules les données du contact sont dans la FI
Il y a peut-être plus simple, mais ça tourne.
Quand tout a échoué utilisez l'option RTFM
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager