|
liaison d'un champ avec objet dynamique |
Iniciado por GB, abr., 24 2024 9:50 PM - 6 respostas |
| |
| | | |
|
| |
Membro registado 330 mensagems Popularité : +8 (10 votes) |
|
Publicado em abril, 24 2024 - 9:50 PM |
Bonsoir,
Je n'arrive pas a lier un champ à une propriété d'un objet dynamique :
Procedure MaFenêtre(gpclDocument 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 ?Mensagem modificada, abril, 24 2024 - 9:51 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 352 mensagems Popularité : +13 (17 votes) |
|
Publicado em abril, 25 2024 - 3:38 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 330 mensagems Popularité : +8 (10 votes) |
|
Publicado em abril, 25 2024 - 8:42 PM |
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 ... |
| |
| |
| | | |
|
| | |
| |
Membro registado 2.574 mensagems Popularité : +222 (260 votes) |
|
Publicado em abril, 26 2024 - 3:56 AM |
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 |
| |
| |
| | | |
|
| | |
| |
Membro registado 330 mensagems Popularité : +8 (10 votes) |
|
Publicado em abril, 26 2024 - 10:30 AM |
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 |
| |
| |
| | | |
|
| | |
| |
Membro registado 398 mensagems Popularité : +13 (13 votes) |
|
Publicado em abril, 26 2024 - 12:04 PM |
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 gpclDocument..Classe = MDevis ALORS pclTmpDevis est un MDevis dynamique <- gpclDocument SAI_Date_visite..LiaisonFichier = ":pclTmpDevis.p_Date_visite" SEL_variante_devis..LiaisonFichier = ":pclTmpDevis.p_Variante" Sai_Date_acceptation..LiaisonFichier = ":pclTmpDevis.p_Date_acceptation" FIN |
| |
| |
| | | |
|
| | |
| |
Membro registado 330 mensagems Popularité : +8 (10 votes) |
|
Publicado em abril, 26 2024 - 12:39 PM |
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 |
| |
| |
| | | |
|
| | | | |
| | |
|