Visualiser diverses tables (tutoriel général IBX)

De RAD Studio
Aller à : navigation, rechercher

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 :

FormViewFinal.png


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.

DBCompEdtIBX.png

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.

  • 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.

FormView1.png

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 :

MainFormRunTime.png


Cliquez sur le bouton pour afficher la fiche de visualisation de la table :

FrmViewRunTime.png

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 :

FrmViewRunTimeAction.png

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.

Précédent

Créer une fiche principale

Suivant

Ajouter un module de données