WinDev 21 : La gestion des bases de données HFSQL

Remplir la table avec les indirections

Testez gratuitement nos 1324 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Abordez les indirections qui, avec quelques lignes de code supplémentaires, vous permettent de parcourir et lire les données du fichier externe.
05:29

Transcription

Maintenant que notre table contient des colonnes correspondant aux rubriques, nous allons essayer de remplir les enregistrements. Alors on va pas tous les remplir parce que vous allez voir que la syntaxe qu'on va utiliser, qui sert de démo est pas tout à fait adaptée au remplissage de nombreuses colonnes, en tout cas ça serait long à écrire, alors pour faire simple on va rester sur les deux premières colonnes. Dans un premier temps il me faudrait les noms de ces colonnes, au moins les noms des rubriques, alors, on les a ici. Là on les a en détail c'est un petit peu trop, en fin de compte je préfèrerais avoir uniquement les noms donc une manière simple ici de faire c'est de copier-coller cette ligne, et de la redemander, de re-remplir la liste des rubriques, mais sans les détails, simplement avec le nom de la rubrique séparé par des Retours Chariot, donc ça c'est très bien? Maintenant je vais parcourir mon fichier. Alors le fichier on y accède à travers son alias, donc je vais écrire POUR TOUT fichier l'alias qu'on a utilisé au début donc pour le déclarer en externe. Et maintenant c'est là que ça va se compliquer un petit peu, parce que je vais vouloir utiliser un TableAjoute. TableAjouteLigne Table.. Ajoute.. Ligne. Donc le TableAjouteLigne attend le table, et ensuite les différents éléments de colonne, donc comme je vous ai dit on fera les deux ou trois premières. Et c'est là que ça se complique donc puisqu'il s'agit de désigner une des colonnes du fichier. Le problème c'est que le fichier on ne l'a que par son alias. Donc si j'écris fichier par exemple, point... le nom d'une rubrique, donc en l'occurrence, je sais même plus ce qu'il y avait, dans le fichier donc ça on va regarder tout de suite, je mets cette ligne en commentaire, je reteste... Voilà, on avait par exemple une colonne qui s'appelle EnCoursAutorisé Donc... Avec un accent. Puis Civilité, voilà. Et puis NumClient. Donc ici j'écrirai EnCours Autorisé avec l'accent... Voilà. Comme ça c'est ce que je veux mettre au niveau de cette colonne, et en suite pareil pour la deuxième colonne je mettrai autre chose, bon. Je vais m'arrêter sur la première pour vous montrer. J'essaye d'enregistrer ça, évidemment ça passe pas, d'accord. La syntaxe est pas reconnue parce que pour lui c'est pas un nom de fichier. Il y aurait certainement plusieurs manières de gérer ce problème-là, parce qu'il y a d'autres syntaxes possibles. Mais là en l'occurrence, l'idée c'est plutôt d'utiliser les indirections. Les indirections c'est quelque chose qui permet de désigner un élément, un fichier, une table, un champ etc. Par son nom ou par une variable qui contient son nom donc mais en chaîne de caractères, et en disant à WinDev : "Attention, ça c'est en fait un fichier" Ou c'est une table, ou c'est une colonne, ou un champ, etc. Donc là en l'occurrence, EnCoursAutorisé je le connais pas nécessairement, là je suis allé voir, j'ai triché un peu, je connais le nom de la rubrique, mais en vérité on va l'avoir dans cette liste. Par exemple la première rubrique c'est tout simplement le premier élément de la liste. Donc là il va plutôt falloir que je crée ma rubrique, que je constitue ma rubrique, avec mon fichier, en écrivant plutôt ceci : "fichier point", comme si c'était le nom du fichier réel, et je vais ajouter à ça le "Liste" Rubriques alors pas du tout entier évidemment, mais on va extraire de ListeRubriques le premier élément. Et on va utiliser la syntaxe, je lui précise, quel est le séparateur, parce que je crois bien que ExtraitChaînes par défaut attend des tabulations. Donc là je lui dis bien que c'est un Retour Chariot. Donc j'ai ici une liste des noms des rubriques séparés par un Retour Chariot. ExtraitChaînes de ListeRubriques 1 séparé par RC, ça va me récupérer tout simplement le premier élément de la liste. Pour la deuxième colonne je mettrai le deuxième élément etc. Mais ici, c'est là que c'est intéressant, c'est cette syntaxe, je désigne le nom du fichier "point" et j'y colle le nom de la rubrique. Tout ça, ça désigne donc le fichier et son champ, sa rubrique. Comme ça, ça fonctionnera pas. Si je laisse ça tel quel il va pas comprendre ce que je veux faire. Il faut ici mettre des accolades, ce sont les accolades qui vont dire à WinDev "Attention tu dois interpréter le contenu" "entre ces accolades" qu'en mettant en fait le nom du fichier que l'on va manipuler, le nom de l'élément que l'on va manipuler. On va tester ça vous allez voir ce que ça donne à l'exécution. Voilà. Alors ça c'est un montant numérique à priori, en EnCoursAutorisé c'est une valeur numérique, monétaire même plus exactement, donc ça a l'air de fonctionner. On va essayer d'ajouter la deuxième colonne sur le même principe, je vais tout simplement copier tout ça, le coller... Ajouter une virgule entre les deux, ce que j'ai oublié de faire, c'est pour ça qu'il y a une erreur, et par contre pour la deuxième colonne je prends évidemment la deuxième rubrique de la liste des rubriques. Toujours accrochée à mon nom de fichier que je ne connais pas, d'où l'intérêt des indirections, les accolades qui disent à WinDev : "Attention tu prends pas cette chaîne de caractères telle quelle," "il faut l'interpréter comme étant le nom du fichier et de sa rubrique." On va voir ce que ça donne, voilà, ça fonctionne, il faudrait bien sûr faire la même chose sur les autres colonnes. Probablement plutôt en utilisant une boucle pour traiter toutes les colonnes les unes après les autres. Mais vous avez compris le principe... Alors on pourrait aller très loin avec ça, on pourrait faire des calculs sur les données, en extrayant avec toujours HListeRubriques le type de données, enfin etc... Ça ouvre vraiment beaucoup de possibilités si ce n'est donc cette petite complexité de comprendre bien ce fonctionnement des indirections que je vous ai montrées ici.

WinDev 21 : La gestion des bases de données HFSQL

Découvrez les manipulations, les outils et les possibilités intéressantes des bases de données HFSQL dans WinDev. Installez, utilisez, et gérez le serveur HFSQL client/serveur.

2h03 (23 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
WinDev WinDev 21
Spécial abonnés
Votre/vos formateur(s) :
Date de parution :23 févr. 2016
Durée :2h03 (23 vidéos)

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !