Anzeigen verschiedener Tabellen (Allgemeines IBX-Tutorial)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Tutorial: Mit InterBase Express auf eine Datenbank zugreifen

In diesem Abschnitt wird ein Formular für die Anzeige verschiedener Datenbanktabellen erstellt. Das Formular verwendet die Datenbank EMPLOYEE, die mit RAD Studio installiert wird.

Nach dem Hinzufügen der Komponenten sieht das Formular folgendermaßen aus:

FormViewFinal.png


Erstellen des Formulars

Fügen Sie zunächst dem Projekt ein weiteres VCL-Formular hinzu. Klicken Sie dazu in der Projektverwaltung mit der rechten Maustaste auf das Projekt, und wählen Sie den Menüeintrag Neue hinzufügen >VCL-Formular.

Legen Sie die Eigenschaften des Formulars fest:

  • Setzen Sie die Eigenschaft Caption auf "Table/View Switcher".
  • Setzen Sie Name auf "FrmViewDemo".
  • Ändern Sie die Eigenschaft Height des Formulars in 330 und die Eigenschaft Width in 400.
  • Setzen Sie OldCreateOrder auf true.

Speichern Sie das Formular:

  • Delphi: Speichern Sie die Datei unter dem Namen FrmViews.pas.

Hinzufügen von Datenbankkomponenten

Fügen Sie zuerst die Datenbankkomponenten hinzu. Später konfigurieren Sie die datensensitiven Komponenten, um Daten aus den Datenbankkomponenten abzurufen. Da die Datenbankkomponenten nicht visuell sind, können sie sich an einer beliebigen Position im Formular befinden. Positionieren Sie diese Komponenten aber so, dass sie keine visuellen Komponenten verbergen.

  • Platzieren Sie eine TIBDatabase-Komponente, die eine InterBase-Datenbankverbindung repräsentiert, auf dem Formular. Doppelklicken Sie auf die neue TIBDatabase-Komponente, um den Datenbankkomponenten-Editor anzuzeigen. Legen Sie die Eigenschaften für die TIBDatabase-Komponente in diesem Dialogfeld fest:

DBCompEdtIBX.png


In diesem Tutorial wird die Datenbank EMPLOYEE verwendet, die mit RAD Studio installiert wird. Der Pfad lautet: C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Data\EMPLOYEE.GDB. Wenn Sie den Benutzernamen und das Passwort angeben, kann die Eigenschaft LoginPrompt false sein.

Hinweis: Wenn Sie, wie in diesem Beispiel, das Passwort in die Anwendung einbetten, kann jeder auf die Datenbank ohne Anmeldung zugreifen.

  • Platzieren Sie eine TIBDataSet-Komponente auf dem Formular. Setzen Sie die Eigenschaft Transaction auf "IBTransaction1". Verbinden Sie diese TIBDataSet-Komponente mit der Datenbank, indem Sie die Eigenschaft Database im Dropdown-Menü auf "IBDatabase1" setzen. Setzen Sie die Eigenschaft Name auf "VaryingDataSet".
  • Fügen Sie dem Formular eine TDataSource-Komponente hinzu. Diese Komponente dient als Schnittstelle zwischen der TIBDataSet]-Datenmenge und den datensensitiven Steuerelementen. Setzen Sie die Eigenschaft DataSet der TDataSource-Komponente im Dropdown-Menü auf "VaryingDataSet". Setzen Sie die Eigenschaft Name auf "VaryingTableSource".

Hinzufügen visueller Komponenten

Fügen Sie nun die Komponenten zur Anzeige der Datenbankdaten hinzu, und verbinden Sie sie mit den Datenbankkomponenten.

Fügen Sie zwei TPanel-Komponenten hinzu, und ordnen Sie sie wie in der folgenden Abbildung an. Diese TPanel-Komponenten dienen als Rahmen zum Anordnen der visuellen Komponenten. Positionieren Sie sie, wie in der folgenden Abbildung, so, dass sie das gesamte Formular ausfüllen.

FormView1.png


Fügen Sie der TPanel-Komponente "Panel1" folgende Komponenten hinzu.

  • Platzieren Sie für die Navigation in den Datensätzen der Datenbank eine TDBNavigator-Komponente auf "Panel1". Setzen Sie DataSource auf "VaryingTableSource". Die Komponente TDataSource dient als Schnittstelle zwischen der TIBDataSet und den datensensitiven Steuerelementen.
  • Fügen Sie "Panel1" eine TSpeedButton-Komponente hinzu.
    • Zur Auswahl eines Symbols für TSpeedButton klicken Sie im Objektinspektor auf die Ellipsenschaltfläche (...) neben der Eigenschaft Glyph, um das Dialogfeld Bildeditor zu öffnen. Klicken Sie auf die Schaltfläche Laden..., um eine Bitmap-Datei für das Symbol auszuwählen. Ein Bitmap im erforderlichen Format finden Sie im Beispiel CsDemos in der Unit Frmviews bei TSpeedButton. Wählen Sie die TSpeedButton-Komponente aus, öffnen Sie den Bildeditor, klicken Sie auf Speichern..., und speichern Sie das Bitmap in einer Bitmap-Datei.
    • Setzen Sie die Eigenschaft GroupIndex auf 1.
    • Setzen Sie die Eigenschaft Name auf BtnShowEmployeeClick
  • Fügen Sie eine weitere TSpeedButton-Komponente hinzu, und platzieren Sie sie rechts neben der anderen TSpeedButton-Komponente. Setzen Sie deren Eigenschaften Glyph und GroupIndex entsprechend der ersten TSpeedButton-Schaltfläche.
  • Platzieren Sie eine TBitBtn-Komponente auf der rechten Seite von "Panel1". Setzen Sie die folgenden Eigenschaften:
    • Setzen Sie Glyph analog zu den TSpeedButton-Schaltflächen.
    • Setzen Sie im Dropdown-Menü die Eigenschaft Kind auf "bkClose". Mit dieser Einstellung führt die Schaltfläche einen Befehl zum Schließen des Dialogfeldes aus, wenn Sie auf die TBitBtn-Schaltfläche klicken.
    • Setzen Sie Caption auf "E&xit". Das Tastenkürzel ALT+X führt dann dieselbe Aktion wie das Klicken auf die Schaltfläche aus.
    • Setzen Sie die Eigenschaft Name auf BtnShowEmployeeClick

Fügen Sie der TPanel-Komponente "Panel2" eine Komponente hinzu.

  • Platzieren Sie eine TDBGrid-Komponente auf "Panel2". Ändern Sie deren Größe so, dass sie die gesamte TPanel-Komponente ausfüllt. Setzen Sie DataSource im Dropdown-Menü auf "VaryingTableSource".

Hinzufügen des Quellcodes

Vervollständigen Sie das Formular durch Hinzufügen einer Routine und Erstellen von Ereignisbehandlungsroutinen für die TSpeedButton-Komponenten. Für TBitBtn ist keine Ereignisbehandlungsroutine erforderlich, weil dieser Schaltfläche bereits ein Befehl zugeordnet ist.

Fügen Sie die Routine ShowTable hinzu, die die angegebenen Tabellen anzeigt.

Delphi

Fügen Sie dem private-Bereich des Abschnitts type von FrmViews.pas diese Prozedur hinzu:

procedure ShowTable(ATable: string);

Sie können mit der Klassenvervollständigung (öffnen mit STRG+UMSCH+C einen Stub für diese Funktion im implementation-Abschnitt erstellen.

Fügen Sie den folgenden Code in die neue Prozedur ein:

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 führt alle zum Anzeigen der Daten einer gegebenen Tabelle erforderlichen Aktionen aus. Insbesondere setzt ShowTable die Eigenschaft TIBDataSet SelectSQL, um Daten von der aktuellen Tabelle auszuwählen.

Fügen Sie zum Abschluss die Ereignisbehandlungsroutinen hinzu. Doppelklicken Sie auf der Registerkarte Design auf die erste TSpeedButton-Schaltfläche. Dadurch wird ein Prototyp für die Ereignisbehandlungsroutine hinzugefügt und Stub-Code dafür erstellt. Fügen Sie den folgenden Code in den implementation-Abschnitt für die Prozedur ein:

procedure TFrmViewDemo.BtnShowEmployeeClick(Sender: TObject);
begin
  ShowTable('EMPLOYEE');
end;

Fügen Sie eine Ereignisbehandlungsroutine für die zweite TSpeedButton-Schaltfläche mit dem folgenden Code auf dieselbe Weise hinzu:

procedure TFrmViewDemo.BtnShowPhoneListClick(Sender: TObject);
begin
  ShowTable('PHONE_LIST');
end;

Diese Routinen rufen nur ShowTable zum Festlegen der jeweiligen Tabelle auf.

Anzeigen des Formulars für die Tabellendarstellung

Ändern Sie das Hauptformular, das Sie im Abschnitt Erstellen des Hauptformulars angelegt haben, damit die Schaltfläche das gerade erstellte Formular anzeigt.

Delphi

Fügen Sie Folgendes am Anfang des implementation-Abschnitts von Frmmain.pas ein, damit das Hauptformular die gerade hinzugefügte Unit FrmViews finden kann:

uses
   FrmViews;   { The View Demo }

Fügen Sie anschließend eine Ereignisbehandlungsroutine für die Schaltfläche des Hautformulars hinzu, indem Sie auf der Registerkarte Design von Frmmain.pas auf diese Schaltfläche doppelklicken. Verwenden Sie den folgenden Quellcode für die Ereignisbehandlungsroutine:

procedure TFrmLauncher.BtnViewsClick(Sender: TObject);
begin
  FrmViewDemo.ShowModal;
end;

ShowModal zeigt das Formular als modales Dialogfeld an, damit die Anwendung erst weiter ausgeführt wird, wenn das Dialogfeld wieder geschlossen ist. In diesem Fall wartet das Hauptdialogfeld so lange, bis das Tabellenformular angezeigt wird.

Ausführen der Anwendung

Compilieren Sie die Anwendung, und führen Sie sie aus. Das Hauptformular wird angezeigt:

MainFormRunTime.png


Klicken Sie auf die Schaltfläche, um das Formular für die Tabellendarstellung anzuzeigen:

FrmViewRunTime.png


Beachten Sie, dass die TDBGrid-Komponente leer ist, weil noch keine Tabelle ausgewählt wurde. Klicken Sie auf die linke TSpeedButton-Schaltfläche, um die Tabelle EMPLOYEE anzuzeigen:

FrmViewRunTimeAction.png


Wenn Sie auf die andere TSpeedButton-Schaltfläche klicken, wird die Tabelle PHONE_LIST angezeigt.

Durch Klicken auf die TBitBtn-Schaltfläche mit dem Titel Schließen wird das Formular zur Tabellendarstellung geschlossen.

Zurück

Erstellen des Hauptformulars

Weiter

Hinzufügen eines Datenmoduls