Anleitung

Das neue Formular aus dem ersten Teil des Tutorials wird jetzt als Subform in das Hauptmenü eingebunden. Gehe hierzu in das Formular „Main Menu“ (ID: 330).

Formular Designer für das Hauptmenü

Dort siehst du im rechten Teil des Hauptmenüs eine leere graue Fläche. Diese graue Fläche ist ein Subform. Wenn du das Subform zur Seite schiebst, kannst du gut erkennen, dass dahinter noch weitere Subforms liegen. Jedes dieser Subforms stellt ein eigenes Formular dar, welches die Menüpunkte enthält. Auch du hast so ein Formular erstellt.

Klicke das ersten Subform an, kopiere es (STRG+C) und füge es anschließend wieder ein (STRG+V). Beim Kopieren wird das neue Subform so „unglücklich“ platziert, dass das ganze Formular vergrößert wird. Du musst deshalb das neue Subform exakt über die anderen Subforms legen und die ursprüngliche Formulargröße wieder herstellen.

Anschließend müssen die folgenden Eigenschaften des neuen Subforms angepasst werden:

  • „Name“ auf „HelloWorldMenu“
  • „SubFormID“ auf „Hello World Menu“ (den Namen des neuen Formulars)

Nun wird im linken Teil des Hauptmenüs ein weiterer Menüpunkt hinzugefügt. Ein Menüpunkt wird mit zwei Controls dargestellt. Zum einen mit einer PictureBox, die den blauen bzw. roten Punkt darstellt und zum anderen mit einem CommandButton. Der CommandButton ist der eigentliche Menüpunkt und stellt den Namen des neuen Moduls dar.

Und auch hier machen wir es uns leicht und kopieren die PictureBox und den CommandButton des letzten Menüpunktes und platzieren beide Controls exakt darunter.

Bei der PictureBox müssen zwei Eigenschaften angepasst werden:

  • „Name“ auf „HelloWorldPic“
  • „SourceExpr“ auf „xxx=CurrentMenuType“ (das xxx muss durch die ID des neuen Formulars ersetzt werden)

Der CommandButton erhält auch noch neue Eigenschaften:

  • „Name“ auf „HelloWorldBtn“
  • „CaptionML“ auf „DEU=Hello World;ENU=Hello World“

Gehe über „Ansicht“ – „C/AL Code“ in den „OnPush“-Trigger des CommandButtons und erstelle die folgende Programmzeile:

ChangeSubMenu(xxx);

Auch hier muss das xxx durch die ID des neuen Formulars ersetzt werden.

Jetzt müssen noch zwei bestehende Funktionen angepasst werden. Gehe deshalb als erstes in die Funktion „SetSubMenu“. In der letzten Zeile der Funktion müsste ein END stehen. Darüber erstellt du die beiden folgenden Programmzeilen:

xxx:
	CurrForm.HelloWorldMenu.VISIBLE := Visible;

Wie immer ist auch hier die Angabe xxx durch die ID des neuen Formulars zu ersetzen.

Die zweite Funktion, die angepasst werden müsste, ist die Funktion „InitMenuButtons“. Hier gehen wir ganz ans Ende der Funktion und erstellen die folgenden Programmzeilen:

IF NOT ShowMenuButton(DATABASE::"XXX") THEN BEGIN
	CurrForm.HelloWorldBtn.VISIBLE := FALSE;
	CurrForm.HelloWorldPic.VISIBLE := FALSE;
END ELSE BEGIN
	YPosition := YPosition + YDiff;
	CurrForm.HelloWorldBtn.YPOS := YPosition;
	CurrForm.HelloWorldPic.YPOS := YPosition;
END;

Das XXX in der ersten Programmzeile ist diesmal nicht durch die ID des neuen Formulars zu ersetzen, sondern durch den Namen einer Tabelle. Du solltest dich für eine Tabelle entscheiden, die in deinem neuen Modul benutzt wird.

Mit den o. g. Programmzeilen erreichen wir, dass die PictureBox und der CommandButton ein- bzw. ausgeblendet werden. Je nach dem, ob Zugriffsrechte bestehen oder nicht.

Speichere das Formular ab.