Je programme actuellement un soft (regard vers C0unt0 :pleure: ) et j’essaie de corriger un bug bien chiant… sans succès.
Voilà mon problème :
L’appli tourne en Windev 7 sur un système de données HyperFile
Après avoir rempli une table fichier avec un ConstruitTableFichier() basé sur une requête SQL, j’essaie de changer les titres des colonnes qui sont desespérément vide.
La syntaxe de type " NomFenetre.NomTableFichier.NomColonne…Libellé = "Nom de la colonne" renvoie une erreur de type1017 : le champs machin de la table machin est inconnu.
A noter que la fonction TableEnumereColonne(NomTableFichier, 1) me renvoie toujours _COL1, malgré l’utilisation de AS dans la requête SQL.
Enfin, même le code suivant ne marche pas : {« NomFenetre.NomtableFichier. » + TableEnumèreColonne(Table_FICHIERS_tries,1) + « …Libellé »} = « Nom de la colonne »
Comment régler ce problème ?
Help please !
PS : le premier qui rigole de la syntaxe de Windev ou qui chie sur Windev sera considéré comme un boulay !
Le_Jedi_Fou proof !
Suite à une conversation avec Le sur irc (au passage, merci Le !), je suis arrivé tout à fait par inadvertance sur une petite note en bas de page d’aide sur la fonction ConstruiTableFichier() qui disait ceci :
Colonnes
Les colonnes créées portent les noms « _COL1 », « _COL2 », « _COL3 », etc. Ces colonnes sont accessibles par programmation via l’opérateur d’indirection { }.
Il n’est pas possible d’écrire :
TABLE1._COL1…Largeur = 120 // Génère une erreur « _COL1 inconnu »
Il faut écrire : {« TABLE1._COL1 »}…Largeur = 120
En fait, POUR CE CAS DE FIGURE, il n’y a qu’une syntaxe possible ! Mes essais énumérés plus haut qui étaient logiquement corrects sont tombés à l’eau puisque seule la syntaxe ci-dessus est admise après un ConstruitTableFichier()
J’espère que mon expérience aura été profitable à d’autres…
Non, je ne crache toujours pas sur Windev et continue de vomir sur PowerBuilder.
[quote]Par ailleurs, je te rappelle que je suis en version 7 ![/quote]ah oui c vrai…par contre sur la 5.5 c sur je viens de tester
sinon ta essayé avec une table memoire ?
Euhhhh, après demande à un collègue qui s’y connait bien et suite à un doute de ma part, ce n’est pas tout à fait vrai. Les accolades sont valables pour casiment tout sauf les noms de variables, d’après lui.
Par ailleurs, je te rappelle que je suis en version 7 ! Il y a sûrement des choses qu’ils ont corrigé depuis la 5.5 !
Merci de te pencher sur mon problème en tout cas !
[quote]{“NomFenetre.NomtableFichier.” + TableEnumèreColonne(Table_FICHIERS_tries,1) + “…Libellé”} = “Nom de la colonne”[/quote] c’est normal que sa marche pas car l’utilisation de {} est reservé aux champs des fichiers .fic on peut pas les utiliser pour des variables classiques (je me suis deja fait avoir…)
pour te repondre a ton pb, 2 sec fo ke je cherche et ke je reflechisse un peu (en plus de mon pb a moi…)
[Edit1] : j’ai cassé la home donc je repare
[Edit2] ta essaye de passer par une table memoire ?? car les tables fichiers ne sont pas du tout facile a manipuler !!
par exemple dans une table fichier si tu modif un champ par programmation, la variable Table…Modifié ne se met pas a jour alors que dans une table memoire oui…essaie sa pourrait ptet marcher…
Euhhhh, à ce jour, je ne dénombre que trois développeurs Windev dans la cafzone : Donjohn, Le et moi (bien que développeur Windev soit une bien grand appellation pour mon cas).
En fait, c’est surtout dû au hasard que Donjohn et moi postions en même temps une demande d’aide sur Windev !
Il est vrai que Windev est incomparable avec la programmation que tu fais (admiration inside) puisqu’il s’agit d’applis de gestion, mais c’est une très bonne solution, contrairement à d’autres (regard insistant sur cette bouse de PowerBuilder).