FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
liaison d'un champ avec objet dynamique
liaison d'un champ avec objet dynamique
Débuté par GB, 24 avr. 2024 21:50 - 6 réponses
Connectez-vous…
GB
#1
Membre enregistré
330 messages
Popularité : +8 (10 votes)
Posté le 24 avril 2024 - 21:50
Bonsoir,
Je n'arrive pas a lier un champ à une propriété d'un objet dynamique :
Procedure MaFenêtre
(
gpcl
Document
est un
MDocument dynamique
)
J'utilise le polymorphisme et les héritages :
Mon Mdocument dynamique est soit un objet MDevis soit un objet MChantier.
Mdocument contient les membres communs, Mdevis et Mchantier contiennent les membres qui leur sont propres.
Ma fenetre va donc afficher le contenu d'un Mdevis ou d'un Mchantier.
Pour les champs communs (décris dans Mdocument), je les lie par la fenêtre des 7 onglets.
Pour les champs spécifiques, je voulais les lier par programmation :
SAI_
Date_visite
..
LiaisonFichier
=
"gpclDocument.p_Date_visite"
SEL_
variante_devis
..
LiaisonFichier
=
"gpclDocument.p_Variante"
Sai_Date_acceptation
..
LiaisonFichier
=
"gpclDocument.p_Date_acceptation"
Ensuite je fais sourceversecran
Cette liaison ne fonctionne pas.
Celle ci non plus : ":gpclDocument.p_Date_visite"
et celle ci non plus : "gpclDocument:p_Date_visite"
Une idée ?
Message modifié, 24 avril 2024 - 21:51
Signaler
0
0
LM Concept
#2
Membre enregistré
352 messages
Popularité : +13 (17 votes)
Posté le 25 avril 2024 - 15:38
Bonjour,
Je pense qu'il manque le : "valeur".
SAI_
Date_visite
..
LiaisonFichier
=
"gpclDocument.p_Date_visite"
+
TAB
+
"valeur"
https://blogs.pcsoft.fr/fr/exploiter-pleinement-databinding-specifiant-plusieurs-proprietes-grace-liaisonfichier/281474976710700/read.awp
Bon DEV
Signaler
0
0
GB
#3
Membre enregistré
330 messages
Popularité : +8 (10 votes)
Posté le 25 avril 2024 - 20:42
Bonsoir
Merci de ta réponse
Ca ne fonctionne pas. Le champ n'est pas bindé. En affection direct avec indirection ça fonctionne, bien entendu.
Le problème vient du fait que c'est un objet dynamique, et que la propriété n'est pas décrite dans la classe en question (mais dans la classe fille).
j'ai fais un test en spécifiant une liaisionFichier sur une propriété décrite dans ma classe Mdocument et ça fonctionne.
Du coup :
Il faut passer par un objet dynamique de type Mdevis, qui pointe sur le Mdocument dynamique.
Le sourceversecran affectera les propriétés de Mdocument et Mdevis...
Je trouve ça un peu bancale et source d'erreur ? 2 versions identique du meme objet ...
Signaler
0
0
Philippe SB
#4
Membre enregistré
2 574 messages
Popularité : +222 (260 votes)
Posté le 26 avril 2024 - 03:56
Bonjour,
Sauf erreur de ma part il faut utiliser les ":"
SAI_
Date_visite
..
LiaisonFichier
=
":gpclDocument.p_Date_visite"
SEL_
variante_devis
..
LiaisonFichier
=
":gpclDocument.p_Variante"
Sai_Date_acceptation
..
LiaisonFichier
=
":gpclDocument.p_Date_acceptation"
--
Cordialement,
Philippe SAINT-BERTIN
Signaler
0
0
GB
#5
Membre enregistré
330 messages
Popularité : +8 (10 votes)
Posté le 26 avril 2024 - 10:30
Bonjour,
Justement... les : font bien pointer sur l'objet en question mais comme c'est un objet dynamique windev cherche la rubrique dans Mdocument et pas dans Mdevis.
l'erreur générée dit que la propriété p_Date_visite n'existe pas dans l'objet Mdocument
Signaler
0
0
bchanudet
#6
Membre enregistré
398 messages
Popularité : +13 (13 votes)
Posté le 26 avril 2024 - 12:04
Bonjour,
Votre paramètre étant typé en MDocument, même si c'est un MDevis, WinDev ne va considérer que les valeurs communes, donc celles de MDocument
Si vous voulez utilisez des valeurs de MDevis, il faut au choix soit passer le paramètre en type "MDevis dynamique", soit créer un MDevis dynamique temporaire et l'allouer depuis gpclDocument.
SI
gpcl
Document
..
Classe
=
MDevis
ALORS
pcl
TmpDevis
est un
MDevis dynamique
<
-
gpcl
Document
SAI_
Date_visite
..
LiaisonFichier
=
":pclTmpDevis.p_Date_visite"
SEL_
variante_devis
..
LiaisonFichier
=
":pclTmpDevis.p_Variante"
Sai_Date_acceptation
..
LiaisonFichier
=
":pclTmpDevis.p_Date_acceptation"
FIN
Signaler
0
0
GB
#7
Membre enregistré
330 messages
Popularité : +8 (10 votes)
Posté le 26 avril 2024 - 12:39
Bonjour,
En effet c'est la solution que j'ai adopté... et pour le coup, pas besoin de le faire par programmation. Je binde directement sur l'objet via la fenetre des 7 onglets...
Merci pour vos réponses
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte