PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Problème incoompréhensible avec "Aucune syntaxe ne correspond"
Problème incoompréhensible avec "Aucune syntaxe ne correspond"
Iniciado por Fuama, 28,ene. 2019 11:54 - 14 respuestas
Miembro registrado
25 mensajes
Publicado el 28,enero 2019 - 11:54
Bonjour, je viens à vous pour un problème dans une fenêtre de logiciel et je ne comprend pas du tout pourquoi. Pour vous donner une idée du projet, je fais un logiciel relié à une base de données afin de gérer celle-ci. Dans cette base je possède une table matériel reliée à une table installation et à une table attribution. Mon but ici est de créer une fenêtre où lorsque je clique sur une ligne de la table matériel, s'affichent les tables installation et attribution. De ce fait j'ai créé 2 fenêtres "2 tables reliées" (matériel et installation, matériel et attribution), j'ai copié ces tables sur ma fenêtre principale, copié les codes. Pour attribution ça fonctionne parfaitement mais pour installation windev ne veut rien savoir, quelqu'un saurait pourquoi s.v.p ? Merci d'avance de votre aide :)
Miembro registrado
1.640 mensajes
Publicado el 28,enero 2019 - 16:26
Hello,

Ben la comme ca.. il va falloir montrer ton code de selection de la table Materiel que l'on voit ce qui cloche.
Miembro registrado
25 mensajes
Publicado el 28,enero 2019 - 16:43
Yep pas de soucis !
// Filtre le fichier Attribution avec l'identifiant de Materiel
HFiltre(Attribution,IDMateriel,Materiel.IDMateriel, Materiel.IDMateriel)
// Réaffiche la table des Attribution
TableAffiche(Attribution,taInit)


// Filtre le fichier Installation avec l'identifiant de Materiel
HFiltre(Installation,IDMateriel,Materiel.IDMateriel, Materiel.IDMateriel)
// Réaffiche la table des Installation
TableAffiche(Installation,taInit)


Enfaite sur ma fenêtre j'ai la table materiel, la table attribution et la table installation. Ducoup chaque fois que je sélectionne une ligne dans la table matériel, les données qui lui sont liées s'affichent dans les tables attribution et installation, via le code mis au dessus. Ce code fonctionne pour attribution mais pas pour installation alors qu'il est identique que j'ai procédé de la même manière pour ajouter les tables attribution et installation.
Mensaje modificado, 28,enero 2019 - 16:51
Miembro registrado
1.640 mensajes
Publicado el 28,enero 2019 - 17:48
Tes tables portent le même nom que tes fichiers de données ?

A mon avis c'est une mauvaise idée et peut etre que l'editeur n'arrive pas a faire la distinction entre tes table et tes fichiers.
Renome tes tables avec un préfixe du style "TABLE_Installation" pour voir ce que ca donne.

Fait de meme pour les autres et recompile le tout.

Ca pourrait en effet expliquer l'erreur "Aucune syntaxe ne correspond"
Miembro registrado
25 mensajes
Publicado el 29,enero 2019 - 09:36
J'ai testé et même problème ... Cependant, j'ai remarqué que lorsque je changeais le nom de la table attribution, le moindre changement affichais des erreurs dans la liste en bas de l'écran alors que pour installation aucune erreur apparaissait peu importe le nom de la table.
Miembro registrado
37 mensajes
Publicado el 29,enero 2019 - 11:16
Bonjour Fuama (et les autres),
Comment tes champs Table sont-ils alimentées ? (table fichier, table mémoire, requête... ?).
As-tu essayé avec taRéExécuteRequête au lieu de taInit ?
J@ck
Miembro registrado
1.640 mensajes
Publicado el 29,enero 2019 - 12:16
Fuama a écrit :
> J'ai testé et même problème ... Cependant, j'ai remarqué que lorsque je changeais le nom de la table attribution, le moindre changement affichais des erreurs dans la liste en bas de l'écran alors que pour installation aucune erreur apparaissait peu importe le nom de la table.


Et quelles sont ces erreurs et ou sont elles situées ? Il doit y avoir du code quelque part qui pose problème.
Miembro registrado
25 mensajes
Publicado el 29,enero 2019 - 12:58
@Jack
Les tables sont crées à partir du contenu et de requêtes préfaites de Windev, j'ai utilisé le modèle "2 tables reliées" et donc je suis allé sélectionner matériel et attribution puis matériel et installation.
Je viens de tester taRéExécuteRequête et j'ai l'erreur là en lançant la page.

Erreur à la ligne 30 du traitement Sélection d'une ligne de Materiel.
Ce code contient encore des erreurs de compilation et ne peut pas être exécuté.

----- Informations techniques -----

Projet : Parc Info

Appel WL :
Traitement de 'Sélection d'une ligne de Materiel' (Fenêtre_ParcMatériel.Materiel), ligne 30, thread 0

Que s'est-il passé ?
Ce code contient encore des erreurs de compilation et ne peut pas être exécuté.

Code erreur : 1001
Niveau : erreur fatale (EL_FATAL)

Dump de l'erreur du module 'wd190vm.dll' (19.0.95.7).
Identifiant des informations détaillées (.err) : 1001
Informations de débogage :
Aucune syntaxe de TableAffiche ne correspond.
Informations supplémentaires :
EIT_PILEWL :
Sélection d'une ligne de Materiel (Fenêtre_ParcMatériel.Materiel), ligne 30
EIT_DATEHEURE : 29/01/2019 12:53:05

Assistance

- Recompilez le code


@François Oui il doit bien y avoir une erreur cependant je ne sais vraiment pas, j'ai fait exactement la même manip mais ça ne change rien alors qu'avant ça fonctionnait et que je n'ai rien changé depuis. Lorsque je lance avec taInit, j'ai l'erreur suivante qui se met.

Erreur à la ligne 30 du traitement Sélection d'une ligne de Materiel.
Ce code contient encore des erreurs de compilation et ne peut pas être exécuté.

----- Informations techniques -----

Projet : Parc Info

Appel WL :
Traitement de 'Sélection d'une ligne de Materiel' (Fenêtre_ParcMatériel.Materiel), ligne 30, thread 0

Que s'est-il passé ?
Ce code contient encore des erreurs de compilation et ne peut pas être exécuté.

Code erreur : 1001
Niveau : erreur fatale (EL_FATAL)

Dump de l'erreur du module 'wd190vm.dll' (19.0.95.7).
Identifiant des informations détaillées (.err) : 1001
Informations de débogage :
Aucune syntaxe de TableAffiche ne correspond.
Informations supplémentaires :
EIT_PILEWL :
Sélection d'une ligne de Materiel (Fenêtre_ParcMatériel.Materiel), ligne 30
EIT_DATEHEURE : 29/01/2019 12:58:21

Assistance

- Recompilez le code
Miembro registrado
1.640 mensajes
Publicado el 29,enero 2019 - 14:33
"rreur à la ligne 30 du traitement Sélection d'une ligne de Materiel."

Et tu es allé voir a la ligne 30 du code de sélection ?
Miembro registrado
25 mensajes
Publicado el 29,enero 2019 - 14:55
Oui, la ligne 30 correspond à
TableAffiche(Installation,taInit)
alors que la syntaxe est bonne . :/
Miembro registrado
1.640 mensajes
Publicado el 29,enero 2019 - 15:07
renomme ton tableau installation en TABLE_Installation et change ton code en :
TableAffiche(TABLE_Installation ,taInit)
Miembro registrado
25 mensajes
Publicado el 29,enero 2019 - 15:12
Cela fonctionne ! :) :merci: Cependant je ne vois pas pourquoi le logiciel refusait du-fait que seulement ce tableau et rien d'autre ne porte le nom installation :o
Miembro registrado
1.640 mensajes
Publicado el 29,enero 2019 - 16:10
Parceque tu as un fichier de données qui s'appelle Installation et un champ qui s'appelle installation.
Le compilateur a de quoi être perdu.

Je te conseille vivement d'activer la charte de programmation automatique depuis la description du projet :





Ou bien d'appliquer ta propre chartes, mais il est urgent de faire qq chose ou tu va être confronté sans cesse a ce problème.
Miembro registrado
25 mensajes
Publicado el 29,enero 2019 - 16:21
D'accord pas de soucis je vais faire ça, merci beaucoup de ton aide :)
Miembro registrado
37 mensajes
Publicado el 30,enero 2019 - 10:34
Bien vu François !...
Effectivement, utiliser une charte de programmation standard (que je n'aime pas mais c'est très subjectif) ou personnalisée va non seulement résoudre ce type de problème mais aussi rendre le code plus lisible (par exemple une variable locale et une variable globale peuvent avoir le même nom et un préfixage va permettre de les différencier.
Cela dit, sauf erreur de ma part, la charte de programmation ne s'applique pas aux fichiers et aux rubriques : c'et à l'utilisateur de les nommer correctement. Personnellement, j'applique la convention suivante. Un fichier étant une collection d'enregistrements, je termine le nom par un 's', par exemple 'Articles'. Si une rubrique du fichier (donc un élément de l'enregistrement) doit s'appeler 'Article', pas de 's' final. Ca vaut ce que ça vaut.

@Fuama :

Concernant HFiltre(), je te conseille de lire ceci : https://doc.pcsoft.fr/?3044196&verdisp=200
Et plus particulièrement cela :
Filtres ou requêtes ?
Les filtres sont conseillés lorsque la condition de sélection porte uniquement sur un seul fichier de données, une seule vue, ou une seule requête. Les filtres permettent de créer des conditions de sélection complexes sur les enregistrements, ou encore de sélectionner facilement les enregistrements présents dans un intervalle de valeurs.
Les requêtes sont conseillées dès lors que la sélection d'enregistrements doit être réalisée sur plusieurs fichiers de données.

Bon courage pour la suite.