|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Récupérer la définition d'un tableau de structure dans une classe |
Débuté par xof, 07 fév. 2024 17:04 - 6 réponses |
| |
| | | |
|
| |
Membre enregistré 282 messages |
|
Posté le 07 février 2024 - 17:04 |
Bonjour Est-il possible de récupérer le nom, et les propriétés, des membres d'une structure déclarée dans une classe, comme cela, par exemple. Je sais bien traiter les membres truc et toto, mais pas le tableau LesSelect.
MEAPX est un classe Procedure m_traite() scac40 est un Description de Variable sbourse est un Definition noccurrenceTableau est un entier sbourse=RécupèreDéfinition(objet) POUR TOUT scac40 de sdef.Variable Trace (scac40.Nom, scac40.Déclaration.Type, scac40.Définition.Nom,scac40.Définition.Type) FIN
StrucPourTableauSelect est une structure cod_soc est une chaine sur 500 cod_action est une chaine sur 15 cod_art est une chaine sur 22 NULLABLE lib_anom est une chaîne num_anom est un entier module est une chaine sur 10 NULLABLE FIN BDAPX_anombed est une Classe hérite de MEAPX truc est une chaîne toto est un numérique ... LesSelect est un tableau de StrucPourTableauSelect FIN
o_anomabed est un BDAPX_anombed o_anomabed:m_traite
A part les informations dans la trace et pour le tableau le nombre d'occurrences avec
{objet,scac40.nom}..occurence
D'avance, merci pour vos lumières
-- Christophe Charron |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 362 messages |
|
Posté le 07 février 2024 - 19:22 |
Bonsoir,
tu peux faire 2 classes :
1 classe Cstructure_tableau qui contiendra les membres correspondant à ta structure 1 classe Ctableau_structure qui aura un membre tableau de Cstructure_tableau
Dans la classe Cstrucutre_tableau tu peux y mettre les méthode qui agissent sur la structure Dans le classe Ctableau_structure les méthode qui vont agir sur le tableau (le nombre d'occurence, l'accès aux lignes etc)
SI toutefois j'ai bien compris ton besoin |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 282 messages |
|
Posté le 07 février 2024 - 20:00 |
Merci pour ta réponse. J'essaierai cela demain et je te tiens au courant.
-- Christophe Charron |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 282 messages |
|
Posté le 08 février 2024 - 09:07 |
Bonjour, C'est la définition des composantes d'un tableau qui pose problème. Que ce soit un tableau de structures, un tableau de classes, un tableau de chaines, d'entier ... Impossible de récupérer la nature des éléments du tableau. Même en essayant de m'inspirer de l'aide de l'éditeur https://doc.pcsoft.fr/fr-fr/?6010015
-- Christophe Charron |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 362 messages |
|
Posté le 08 février 2024 - 12:12 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 282 messages |
|
Posté le 09 février 2024 - 09:04 |
Bonjour et grand merci pour ton aide. J'arrive au résultat escompté, à savoir supprimer les espaces de droite, dans toutes les chaines et chaines de tableau d'un objet instancié. Le méthode est écrite dans la classe mère de toutes les classes
Procedure M_sansEspace() sdv est un Description de Variable sdef est un Definition noccurrenceTableau est un entier sdef=RécupèreDéfinition(objet) sdeftableau est une Definition POUR TOUT sdv de sdef.Variable SELON sdv.Définition.Type CAS 1 CAS 4 CAS 6 CAS 8 CAS 9 CAS 13 CAS 17 CAS 19 {sdv.Nom,indVariable}=SansEspace({sdv.Nom,indVariable}) CAS 26 CAS 34 noccurrenceTableau={objet,sdv.Nom}..Occurrence SI noccurrenceTableau<>0 ALORS sdeftableau=TableauInfo({objet,sdv.Nom},tiDéfinitionElément) POUR TOUT truc de sdeftableau.Variable SI truc.Définition.Type=19 ALORS POUR j=1 _À_ noccurrenceTableau {sdv.Nom+"["+j+"]"+"."+truc.Nom,indVariable}=SansEspace({sdv.Nom+"["+j+"]"+"."+truc.Nom,indVariable}) FIN FIN FIN FIN CAS 36 CAS 37 AUTRE CAS Trace("???Merci de signaler au support???") Trace (sdv.Nom, sdv.Déclaration.Type, sdv.Définition.Nom,sdv.Définition.Type) Trace("???Merci de signaler au support???") FIN FIN
-- Christophe Charron |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 22 messages |
|
Posté le 28 avril 2024 - 12:08 |
Bonjour,
Je viens me greffer sur ce sujet où j'ai trouvé la réponse à une de mes questions, à savoir comment récupérer le type des instances qui composent un tableau via TableauInfo().
1er point, qui est juste une remarque pour ma culture technique personnelle. J'ai du mal avec la syntaxe qui est utilisée, je l'ai appliquée à mon code et ça fonctionne mais je n'arrive pas à la comprendre.
Ladite syntaxe dans mon code donne :
defTableau =TableauInfo({:m_pclTravail,monMembre.Nom},tiDéfinitionElément)
Alors que moi je l'aurais écrite comme suit et cela fonctionne de la même manière :
defTableau = TableauInfo({":m_pclTravail:" + monMembre.Nom,indVariable},tiDéfinitionElément)
2nd point, et c'est la qu'est mon problème, ce membre dont je récupère la description > :m_pclTravail:m_tabColisage est un tableau de tableau de Modèle (MAgencement). J'arrive à récupérer la définition du membre :m_pclTravail:m_tabColisage ce qui me donne évidement un tableau mais je n'arrive à comprendre comment récupérer la définition du tableau qui compose ce même tableau.
Dans mes tests je construit une chaine pour vérifier que je récupère les bonnes informations :
"Le membre m_bConfigurable est un booléen" "Le membre m_nID_Produit est un entier sur 8 octets" ... "Le membre m_nQuantité_par_carton est un entier sur 8 octets" ...
Arrivé au membre :m_tabColisage la ligne que je souhaite construire est :
"Le membre m_nID_Produit est un tableau de tableau de MAgencement" mai je n'arrive à faire que "Le membre m_nID_Produit est un tableau"
Je ne sais pas si je suis clair ...
Par avance merci pour votre aide.
Cordialement. |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|