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

Créer une table à partir du fichier externe

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Une fois le fichier ouvert, quelques lignes de code vont vous suffire pour en extraire diverses informations.
05:58

Transcription

Maintenant que nous avons pu ouvrir un fichier externe, nous allons essayer de remplir une table avec les données de ce fichier. Ça va être un petit peu plus délicat parce qu'il va s'agir de créer des colonnes pour chacune des rubriques du fichier et à priori on ne connaît pas le contenu du fichier donc on va essayer de créer les colonnes dynamiquement. Ça sera l'occasion de voir d'ailleurs comment on peut créer des champs, en l'occurrence des colonnes, dynamiquement. Je vais donc commencer par ajouter une table, qu'on pourrait aussi créer par programmation, mais là je vais la mettre directement. Ça sera une table qui sera remplie par programmation par contre, et en affichage oui évidemment, d'accord, donc Vertical tout va bien, une seule colonne de toute façon je vais la supprimer parce que j'en referai d'autres. Et je vais l'appeler TABLE_Contenu. J'ai quand même laissé une colonne parce qu'en fait il ne veut pas qu'on n'en mette pas du tout à ce niveau-là. C'est comme là, je ne peux pas la supprimer directement, mais je pourrais toujours la supprimer par programmation. Donc voilà notre table est ici, et je vais maintenant retourner dans le code pour aller faire quelques travaux sur cette table. Alors la première chose à faire, ça va être de supprimer la colonne qu'il ne nous laisse pas supprimer, pour confirmation je peux vous montrer si vous essayez d'aller dans la table et de supprimer cette colonne voyez que l'option n'est pas disponible. Donc on va le faire par programmation, c'est pas un problème, on se met donc dans le code du bouton et ici donc juste après, ça on va le garder en commentaire, juste après on va mettre un ChampSupprime, et là on lui donne le nom du champ qu'on veut supprimer en l'occurrence c'est le champ qui est dans la TABLE_Contenu et c'est la colonne SansNom1. Voilà. Et maintenant, on va créer donc les colonnes, alors ça c'est un petit peu plus délicat, pour faire ça on va donc créer des champs et pour créer un champ, on déclare déjà une variable type champ, donc je vais l'appeler C'est un Champ. Je l'appelle "c" pour pas l'appeler champ justement, puisque c'est donc réservé évidemment. Et je vais donc maintenant parcourir la liste des rubriques. Sachant que là on a demandé le détail donc on a plus d'informations que nécessaires en vérité enfin en tout cas pour l'exemple que je veux vous faire. Si vous regardez un peu la page d'aide de ListeRubriques comme vous le voyez ici, vous avez la possibilité de demander du détail alors si on n'avait pas demandé de détail on aurait eu juste les noms des rubriques séparés par des Retours Chariot, comme vous le voyez là. Comme on a demandé du détail on a le type, on a le type SQL, on a la taille etc, et on peut même aller encore plus loin. Donc là peut importe en fait. Ça va pas changer grand chose à un détail près sur le code. Ce qu'il faut que je fasse maintenant dans tous les cas j'ai une liste dans laquelle les éléments sont séparés par un Retour Chariot, comme c'était indiqué dans la page d'aide ici, voyez, Retour Chariot donc je vais justement parcourir cette liste en utilisant la syntaxe POUR TOUTE CHAÎNE Alors il faut que je lui donne un nom, je vais l'appeler par exemple UneRubrique, ça c'est ce que je vais extraire de la chaîne en fait, DE, et la chaîne elle-même c'est ListeRubriques, et il faut que je précise donc SEPAREE PAR RC. C'est peut-être la valeur par défaut, je sais pas, il faudrait vérifier dans la doc mais bon. En l'écrivant on est un peu plus sûrs de toute façon, attends on va enlever ça, voilà, de ce qu'on fait. Donc je parcours la liste des rubriques qui a été récupérée ici et chaque élément trouvé donc séparé par un "c" sera dans une rubrique. Et à partir de là donc, je vais créer les colonnes de la table. Donc pour faire ça, il faut utiliser un syntaxe un petit peu particulière propre à la création de champ, on écrit le nom du champ et on met une flèche dirigée vers le champ donc le symbole "inférieur moins" puis on utilise la fonction ChampCrée. Donc la flèche ça va être la petite flèche symbolisée ici on va remplacer un petit peu le "égale" dans cette syntaxe. Et ici donc je vais lui donner le nom de la table, alors je vais le mettre en dur mais je m'en souviens plus mais il est là, TABLE_Contenu, voilà, on pourrait éventuellement faire autrement je vous le dirai après, voilà, TABLE_Contenu.COL. Donc en fait je vais créer une colonne alors l'idée c'est de savoir comment je vais la nommer cette colonne donc je mets "col" parce que les colonnes commencent par "col" en général mais il faut que je mette quelque chose derrière, donc le plus simple pour rester logique et revenir sur ce qui se fait habituellement c'est de mettre à la suite de "col" le nom de la rubrique justement. Donc c'est là que je vais extraire la rubrique de une rubrique. Alors si je demande pas de détails, je mets directement sUneRubrique puisque j'obtiens directement le nom de la rubrique, je n'ai que ça dans la liste. Comme ici j'ai demandé le détail, il faut que j'extraie donc de la rubrique ici la première partie. Ce qui correspond au nom de la rubrique, je vais faire un ExtraitChaîne ExtraitChaîne de sUneRubrique virgule 1. Voilà j'extrais donc la première partie puisque la rubrique elle-même ici est constituée de plusieurs éléments le nom, la taille etc., et le type, séparés par une tabulation du coup. C'est ce que vous avez vu dans la boîte dialogue info tout à l'heure. Donc en écrivant ça je récupère le premier élément donc le nom de la rubrique ou alors vous enlevez le détail ici et vous mettez directement sUneRubrique. Ok je continue, je crée un champ de type, ça il faut le préciser sinon ça marche pas, de type colonne. Voilà, faut préciser largeur, hauteur etc. visibilité ou pas mais là je vais rester simple. Ce qu'on peut faire aussi pour compléter, pour que ce soit quand même un petit peu plus propre, c'est d'ajouter un titre, donc ce champ que j'ai crée a une propriété de champ, en fait là il nous les montre toutes parce qu'il ne sait pas vraiment de quel type de champ il s'agit. Là en l'occurrence c'est le titre qui m'intéresse. Et dans le titre je vais y mettre la même chose que ce que j'ai fait ici, c'est-à-dire donc si j'arrive à le sélectionner, voilà cette partie-là, Ok. Donc ça on va le tester tout de suite. Et on va voir ce que ça donne. Voilà. Donc je n'ai pas, attention, les données mais j'ai les colonnes. Voyez les colonnes qui ont été crées en fonction des rubriques. Alors maintenant il s'agit de les remplir ces colonnes, mais c'est un petit peu plus compliqué et ça nécessite d'utiliser ce qu'on appelle les indirections, c'est ce que nous allons voir tout de suite.

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
Date de parution :23 févr. 2016

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 !