Visualiser diverses tables (tutoriel général IBX)
Remonter à Tutoriel : Utilisation de InterBase Express pour accéder à une base de données
Cette section crée une fiche qui vous permet de visualiser différentes tables d'une base de données. Elle utilise la base de données EMPLOYEE, qui est installée avec RAD Studio.
La fiche ressemble à la figure suivante après le placement des composants :
Sommaire
Créer la fiche
Commencez en ajoutant une autre fiche VCL au projet. Dans le Gestionnaire de projets, cliquez avec le bouton droit sur le projet puis cliquez sur l'élément de menu Ajouter nouveau > Fiche VCL.
Adaptez les propriétés de la nouvelle fiche :
- Définissez Caption sur "Table/View Switcher".
- Définissez Name sur "FrmViewDemo".
- Définissez la propriété Height de la fiche sur 330, et Width sur 400.
- Définissez OldCreateOrder sur true.
Enregistrez la fiche :
- Pour Delphi, enregistrez le fichier sous Frmviews.pas.
Ajouter des composants de base de données
Ajoutez d'abord les composants de base de données. Par la suite, vous configurerez les composants orientés données pour obtenir les données des composants de base de données. Puisque les composants de base de données ne sont pas visuels, vous pouvez les placer n'importe où sur la fiche, mais vous devez éviter que les composants visuels soient masqués.
- Faites glisser un composant TIBDatabase, représentant une connexion de base de données InterBase, sur la fiche. Double-cliquez sur le nouveau TIBDatabase pour afficher l'éditeur de composants de base de données. Définissez les propriétés du TIBDatabase en remplissant la boîte de dialogue :
- Dans ce tutoriel, vous utilisez la base de données EMPLOYEE, installée avec RAD Studio. Son chemin est typiquement
C:\Utilisateurs\Public\Documents\Embarcadero\Studio\21.0\Samples\Data\EMPLOYEE.GDB
. Si vous définissez le nom d'utilisateur et le mot de passe, la propriété LoginPrompt peut être définie sur false.
Remarque : Si vous incorporez le mot de passe dans l'application, comme c'est le cas dans cet exemple, tout utilisateur a accès à cette base de données sans se connecter.
- Ajoutez un TIBTransaction à la fiche. Définissez la propriété DefaultTransaction du TIBDatabase sur "IBTransaction1".
- Placez un TIBDataSet sur la fiche. Définissez la propriété Transaction sur "IBTransaction1". Connectez ce composant TIBDataSet à la base de données en définissant sa propriété Database sur "IBDatabase1" à l'aide du menu déroulant. Définissez la propriété Name sur "VaryingDataSet".
- Ajoutez un TDataSource à la fiche. Ce composant sert d'interface entre l'ensemble de données TIBDataSet] et les contrôles orientés données. Définissez la propriété DataSet du TDataSource sur "VaryingTable" à l'aide du menu déroulant. Définissez la propriété Name sur "VaryingDataSet".
Ajouter des composants visuels
Ajoutons maintenant les composants qui affichent les données de la base de données, en les connectant aux composants de base de données.
Ajoutez deux composants TPanel, en les positionnant comme illustré dans la figure ci-dessous. Ces TPanels fournissent un cadre de travail pour le positionnement des composants visuels. Positionnez-les comme illustré dans la figure ci-dessous, en remplissant la fiche.
Ajoutez des composants au TPanel "Panel1".
- Placez un TDBNavigator sur "Panel1" pour naviguer parmi les enregistrements de la base de données. Définissez DataSource sur "VaryingTableSource". Le TDataSource sert d'interface entre l'ensemble de données TIBDataSet et les contrôles orientés données.
- Ajoutez un TSpeedButton au "Panel1".
- Pour définir la face du bouton, dans l'inspecteur d'objets du TSpeedButton, cliquez sur le bouton points de suspension (...) en regard de la propriété Glyph pour afficher la boîte de dialogue Editeur d'images. Cliquez sur le bouton Charger... pour choisir un fichier bitmap pour la face du bouton. Vous pouvez obtenir un bitmap au format désiré depuis l'exemple CsDemos, dans les TSpeedButtons de l'unité Frmviews. Sélectionnez le TSpeedButton, ouvrez l'éditeur d'images, cliquez sur Enregistrer... et enregistrez dans un fichier bitmap.
- Définissez GroupIndex sur 1.
- Définissez Name sur "BtnShowEmployeeClick".
- Ajoutez un autre TSpeedButton et placez-le juste à côté de l'autre TSpeedButton. Définissez ses propriétés Glyph et GroupIndex comme vous l'avez fait pour l'autre TSpeedButton.
- Placez un TBitBtn sur le côté droit de "Panel1". Définissez les propriétés suivantes :
- Définissez Glyph comme vous l'avez fait pour les TSpeedButtons.
- Définissez Kind sur "bkClose" depuis le menu déroulant. Ce paramétrage permet au bouton d'exécuter une commande pour fermer la boîte de dialogue quand vous cliquez sur le TBitBtn.
- Définissez Caption sur "&Quitter". Ainsi l'appui sur
ALT+x
est identique à un clic sur le bouton. . - Définissez Name sur "BtnShowPhoneListClick".
Ajoutez un composant au TPanel "Panel2".
- Placez un TDBGrid sur "Panel2". Redimensionnez-le pour remplir le TPanel. Définissez DataSource sur "VaryingTableSource" depuis le menu déroulant.
Ajouter du code
Terminez la fiche en ajoutant une routine et en créant des gestionnaires d'événement pour les TSpeedButtons. Vous n'avez pas besoin d'un gestionnaire d'événement pour le TBitBtn, car ce bouton a déjà une commande associée à son clic.
Ajoutez une routine ShowTable qui montre la table indiquée.
Delphi
Ajoutez cette procédure dans la partie private
de la section type
de Fmrview.pas :
procedure ShowTable(ATable: string);
Vous pouvez utiliser l'achèvement de classe en appuyant sur CTRL-MAJ-C
pour créer un stub pour cette fonction dans la section implementation
.
Ajoutez ce code pour la nouvelle procédure :
procedure TFrmViewDemo.ShowTable( ATable: string );
begin
Screen.Cursor := crHourglass; { show user something's happening }
VaryingDataSet.DisableControls; { hide data changes from user }
VaryingDataSet.Active := FALSE; { close the table }
VaryingDataSet.SelectSQL.Text:= 'SELECT * FROM '+ ATable; { update the name }
VaryingDataSet.Open; { open the table }
VaryingDataSet.EnableControls; { paint the changes }
Screen.Cursor := crDefault; { reset the pointer }
end;
ShowTable
effectue toutes les actions nécessaires pour afficher les données de la table donnée. En particulier, ShowTable
définit TIBDataSet.SelectSQL pour sélectionner les données depuis la table en cours.
Enfin, ajoutez les gestionnaires d'événement. Dans l'onglet Conception, double-cliquez sur le premier TSpeedButton. Ceci ajoute un prototype pour le gestionnaire d'événement et crée un code de stub. Placez le code suivant dans la section implementation
pour la procédure :
procedure TFrmViewDemo.BtnShowEmployeeClick(Sender: TObject);
begin
ShowTable('EMPLOYEE');
end;
De la même façon, ajoutez un gestionnaire d'événement pour le second TSpeedButton, en utilisant le code suivant :
procedure TFrmViewDemo.BtnShowPhoneListClick(Sender: TObject);
begin
ShowTable('PHONE_LIST');
end;
Ces routines appellent simplement ShowTable
pour définir la table que vous visualisez.
Afficher la fiche de visualisation de la table
Modifiez la fiche principale créée dans Créer une fiche principale afin que le bouton de cette fiche affiche la fiche que vous venez de créer.
Delphi
Ajoutez le code suivant au début de la section implementation
de Frmmain.pas afin que la fiche principale connaisse l'unité FrmViews que vous venez d'ajouter :
uses
FrmViews; { The View Demo }
Ajoutez ensuite un gestionnaire d'événement pour le bouton de la fiche principale en double-cliquant sur ce bouton dans l'onglet Conception de Frmmain.pas. Utilisez le code suivant pour le gestionnaire d'événement :
procedure TFrmLauncher.BtnViewsClick(Sender: TObject);
begin
FrmViewDemo.ShowModal;
end;
ShowModal affiche la fiche en tant que boîte de dialogue modale. Ainsi, l'application ne s'exécute pas tant que la boîte de dialogue n'est pas fermée. Dans ce cas, la boîte de dialogue principale est en attente tant que la fiche de visualisation de la table est visible.
Exécuter l'application
Construisez et exécutez l'application. La fiche principale s'affiche :
Cliquez sur le bouton pour afficher la fiche de visualisation de la table :
Notez que le TDBGrid est vide car aucune table n'a été sélectionnée. Cliquez sur le TSpeedButton de gauche pour afficher la table EMPLOYEE :
Un clic sur l'autre TSpeedButton montre la table PHONE_LIST.
Un clic sur le TBitBtn intitulé Close ferme la fiche de visualisation de la table.