SOG-Helpcenter Logo SOG Business - Software

Das Arbeiten mit Panels


Controls und Panels

 
Die Objekte, die auf Masken platziert werden, nennt man "Controls". Es gibt unterschiedliche Arten von Controls. Ein "Textbox" Control stellt z. B. eine Eingabebox dar, in der der Benutzer Datenwerte in Form von Texten angezeigt bekommt und verändern kann. 

Dem gegenüber stellt ein "DisplayField" nur einen Control dar, der Daten anzeigen kann. 

Ein besonderer Control ist dabei ein "Panel". Ein Panel selbst ist im allgemeinen unsichtbar. Es stellt nur einen Behälter für weitere zu platzierende Controls dar. Jede SOG ActiveSkin Maske hat zu Anfang genau ein Panel namens "MainPanel". Auf diesem MainPanel müssen dann die gewünschten Controls platziert werden.

 

Platzierung von Controls in Panels

 
Ein Panel stellt dabei eine Art von Tabelle dar. Das Panel besteht aus Zellen, die in Zeilen und Spalten angeordnet sind. Die Breite einer Spalte ergibt sich automatisch aus der Breite des breitesten enthaltenen Controls. Controls können in einem Panel nicht an beliebiger Stelle platziert werden, sondern jeweils nur in eine Zelle. Jede Zelle kann nur genau einen Control (oder aber keinen Control) enthalten. 

Ist ein Panel in den Editor-Modus geschaltet, so hat es genau zwei Zeilen und eine Spalten mehr als notwendig, damit es Ihnen möglich ist, in die freien Zellen rechts und unten neue Controls zu platzieren. 

Ist ein Panel nicht in den Editor Modus geschaltet, so hat es genau so viele Zeilen und Spalten wie notwendig, um alle enthaltenen Controls darzustellen.

 

Der Editor-Modus

 

Normalerweise werden Sie den Editor-Modus eines Panels aktivieren, indem Sie zuerst die erweiterten Funktionen aktivieren.

Dadurch werden zum einen alle Titelzeilen aller Panels angezeigt, auch wenn diese normalerweise unsichtbar wären.

Außerdem erhält jedes Panel in der Titelleiste zwei Konfigurationsschaltflächen, die jedoch nur sichtbar sind, wenn die Maus über der Titelleiste des Panels schwebt.

 

 
Klicken Sie hier auf die Konfigurationsschaltfläche  um das gewünschte Panel in den Konfigurationsmodus zu setzen.

 

Alternativ können Sie bei eingeschalteten erweiterten Eigenschaften den Cursor in einen Control innerhalb des Panels setzen und dort die Tastenkombination Strg-E drücken, um das Panel in den Editor-Modus zu schalten.
Außerdem kann der Editor-Modus über das Rechte Maus Kontextmenü des Panels aktiviert werden (sofern die erweiterten Eigenschaften aktiv sind).

 

 

Ist der Editor-Modus eines Panels aktiviert, werden alle enthaltenen Zellen farblich hervorgehoben. Es stehen rechts zwei leere Spalten und unten 2 leere Zeilen zur Verfügung, um neue Controls zu platzieren. Um vorhandene Controls herum entstehen Bereiche in die geklickt werden kann, auch wenn die Zelle einen Control enthält.

 

Das Panel kann den Eingabefocus besitzen und stellt diesen dar, indem die jeweils aktuelle Zelle gelb hervorgehoben wird.

Durch anklicken einer anderen Zelle oder durch Benutzung der Cursor-Tasten kann der Eingabefocus auf einen andere Zelle gesetzt werden.

 

Festlegen des Inhaltes einer Zelle

 

Um den Inhalt einer Zelle festzulegen, müssen Sie den Zellenkonfigurationsdialog aufrufen.

Besitzt das Panel den Eingabefocus und ist die gewünschte Zelle die aktuelle (ist gelb hervorgehoben), kann der Zellenkonfigurationsdialog durch Drücken der Enter-Taste aktiviert werden.

Alternativ können Sie an einer beliebigen freien Stelle einer Zelle einen Doppelklick ausführen, um den Zellenkonfigurationsdialog der Zelle anzuzeigen.

Über das Rechte Maus Kontextmenü kann der Dialog über den Menüpunkt "ActiveSkin / Panel NAME / Zelle bearbeiten" aufgerufen werden.

 

Konfigurationsnamen

 

Über Konfigurationsnamen kann eingestellt werden, ob Konfigurationen unterschiedlicher Controls jeweils eigene Ausprägungen haben, oder in einer gemeinsamen Konfiguration gespeichert werden.

Wird die Konfiguration in gemeinsamen Dateien gespeichert, wirken Änderungen auf allen Masken, auf denen diese Kofnigurationen verwendet werden.

Konfigurationsnamen können aus einem Maskennamen und einem durch einen Punkt getrennten Konfigurationsnamen bestehen. Enthält der Name keinen durch einen Punkt getrennten Maskennamen, wird der aktuelle Maskenname automatisch davor gehängt.

 

Folgende Präfixe haben einer Sonderbedeutung:

 

global.

Verweist auf eine globale Konfiguration. (Über alle Masken gleich)

local.

Verweist auf eine maskenspezifische Konfiguration. Der aktuelle Maskenname wird noch davor gehängt. (Standard für Namen ohne Punkte)

explicite.

Name enthält einen expliziten Maskennamen. Der Namensanteil nach dem Präfix wird 1:1 verwendet. (Standard für Namen mit Punkt)

 

 

Der Zellenkonfigurationsdialog

 

 

Über den Zellenkonfigurationsdialog kann festgelegt werden, welcher Control in der Zelle angezeigt wird und mit welchen Daten dieser Control verknüpft wird.

Hinweise zur Konfiguration einzelner Controls finden Sie in den nachfolgenden Control bezogenen Unterkapiteln.

 

Weitere Tastenkombinationen während des Editor-Modus

 

Befindet sich ein Panel im Editor-Modus, und besitzt es den Eingabefocus, sind folgende weitere Tastenkombinationen verfügbar:

 

Taste

Funktion

Enter

Aufruf des Zellenkonfigurationsdialoges

Entf

Löscht die aktuelle Zelle

Cursortasten

Legt die aktuelle Zelle fest.

Shift - Cursortaste

Markiert ein Rechteck von Zellen.

Strg - Cursortaste

Einstellung der Anzahl Zeilen und Spalten, über die sich der Control in der aktuellen Zelle erstrecken soll.

Strg - F5

Einfügen einer Zeile mit leeren Zellen

Strg - F6

Löschen der Zeile von Zellen, in der sich die aktuelle Zelle befindet.

Strg - F7

Einfügen einer leeren Zelle. Alle Zellen unterhalb der aktuellen werden nach unten verschoben.

Strg - F8

Löschen der aktuellen Zelle. Alle Zellen unterhalb der aktuellen werden nach oben verschoben.

Strg - F9

Einfügen einer Spalte mit leeren Zellen.

Strg - F10

Löschen der Spalte, in der sich die aktuelle Zelle befindet.

Strg - F11

Einfügen einer leeren Zelle. Alle Zellen rechts der aktuellen, werden nach rechts verschoben.

Strg - F12

Löschen der aktuellen Zelle. Alle Zellen unterhalb der aktuellen werden nach links verschoben.

Esc

Beendet den Editor-Modus

Strg - E

Schaltet das unterliegende Panel in den Editor-Modus.

Strg - C

Kopiert den aktuellen Control in die Zwischenablage

Strg - X

Kopiert den aktuellen Control in die Zwischenablage und löscht die aktuelle Zelle.

Strg - V

Fügt den Control in der Zwischenablage in die aktuelle Zelle ein.

Strg - L

Fügt ein zu dem Control in der Zwischenablage passendes Label in die aktuelle Zelle ein.

 

Gleichzeitiges markieren mehrerer Zellen

 

Wird die Shift-Taste gedrückt gehalten, während die Cursortasten genutzt werden, wird ein Rechteck von Zellen markiert.

 

 

Sie können nun bestimmte Funktionen auf diese Sammlung von Zellen anwenden, löschen oder kopieren.

 

Punkte in Control und Konfigurationsnamen

 

Bitte beachten Sie, dass Punkte bei der Namensvergabe von Controls und Konfigurationsnamen eine Sonderbedeutung haben.

Vergeben Sie normalerweise Namen, die keine Punkte enthalten.

Durch die Angabe von "Maskenname.Controlname" können Sie sich auf die Konfiguration eines Elementes beziehen, dass in einer anderen Maske, oder z. B. global konfiguriert wurde.

Intensive Verwendung findet dies bei der Konfiguration von ObjectList-Controls. Hier wird z. B. als Konfigurationsname immer "global.list1" verwendet was dafür sorgt, dass alle ObjectList Controls immer eine einheitliche, globale Konfiguration erhalten.

Um jedoch nicht versehentlich solche Konfigurations-Überlappungen zu produzieren, sollten Sie normalerweise keine Punkte in Konfigurationsnamen oder Controlnamen verwenden.

 

Designklassen

 

Über den Zellenkonfigurationsdialog können Sie die Designklasse einer Zelle einstellen.

Diese Möglichkeit soll keinesfalls dazu genutzt werden, um Überschriften, Gruppen oder Blöcke innerhalb der Masken zu bilden.

Nutzen Sie dazu Unterpanels oder GroupBoxen.

 

Designklassen können dazu genutzt werden, um bestimmte Informationen einzeln hervorzuheben. Also einem Control z. B. eine andere Hintergrundfarbe zu geben.

 

Tragen Sie dazu in dem Datenfeld "Designklasse" im Zellenkonfigurationsdialog den Namen einer Designklasse ein oder wählen Sie den Namen aus dem Auswahldialog.

Alternativ können auch berechnete Designklassen verwendet werden. Dazu kann der Name der Klasse über einen berechneten Ausdruck festgelegt werden, so dass sich die Farbgebung von Controls je nach Datenlage ändern kann.

 

Beispiel: ifelse( ${aart} == 2; 'Cell=basis' ; 'Cell=red_2' )

 

In diesem Beispiel wird je nach Inhalt des Datenfeldes "aart" entweder die Standard Designklasse oder die Designklasse "Cell=red_2" verwendet.

 

Platzieren von neuen Controls

 

Klicken Sie auf doppelt auf eine leere Zelle, um den Zellenkonfigurationsdialog zu dieser Zelle aufzurufen.

 

 

 

Wählen Sie dort einen Controltyp und ggf. weitere Einstellungen aus, die für diesen Control notwendig sind.

 

 

Nach Bestätigung des Dialoges mit "Ok" wird der neue Control in der gewählten Zelle angezeigt.

 

 

Einfügen eines Labels zu einem Control

 

Um zu einem Control ein passendes Label einzufügen, können Sie die Zelle des Controls als aktuelle Zelle festlegen, dort die Tastenkombination Strg-C drücken, dann die gewünschte Zielzelle auswählen und dort die Tastenkombination Strg-L drücken. Es wird nun in der zuletzt gewählten Zelle ein zu dem ausgewählten Control passendes Beschriftungs-Label eingefügt.

 

Weitere Paneleigenschaften

Nach Aktivierung der erweiterten Funktionen befindet sich in der Titelleiste eines Panels die Eigenschaften-Schaltfläche  die nur zu sehen ist, wenn die Maus über der Titelleiste schwebt.

Durch Klicken auf diese Schaltfläche oder über die entsprechende Rechte Maus Kontextfunktion kann der Eigenschaftendialog des Panels angezeigt werden.

 

 

Cursor Expansion

Das Panel wird automatisch aufgeklappt, wenn der Cursor auf einen enthaltenen Control gesetzt werden soll

Dynamic Expansion

true: Der Benutzer kann entscheiden, ob das Panel expandiert wird oder nicht. false: Das Panel wird immer wie eingestellt dargestellt

Expanded

true: Panel ist expandiert.

Expansionsbutton anzeigen

true: Bietet die Möglichkeit das Panel auf- und zuzuklappen.

Horizontale Tabreihenfolge

True: Die Tabreihenfolge ist horizontal. False: Vertikale Tabreihenfolge.

Panelscript

Legt den Namen eines Panelscriptes fest, über das Funktionen in diesem Panel programmiert wurden.

Text

Überschrift des Panels. Wird für das MainPanel einer Maske kein Text gesetzt, wird der Titel des Dialogschritts angezeigt. Soll kein Titel angezeigt werden, muss "Text" auf ein Leerzeichen eingestellt werden.

Titelzeile anzeigen

true: Erzwingt die Anzeige der Titelzeile

Globale Spaltenbreite: Anzahl Spalten

Legt fest, wie viele Spaltenbreiten global wirken

Globale Spaltenbreite: Gruppennamen

Spalten mit dem gleichen Gruppennamen werden aufeinander ausgerichtet.

Globale Spaltenbreite: Spaltenoffset

Legt den Startwert der globalen Spaltenanpassung fest

 

Globale Spaltenbreiten

 

Durch die Festlegung einer globalen Spaltenbreite über mehrere Panels hinweg kann dafür gesorgt werden, dass z.B. die erste Spalte von Labeln über mehrere Panels hinweg eine einheitliche Breite bekommen.

Dafür müssen in den betroffenen Panels die Eigenschaften "Globale Spaltenbreite - Gruppenname" und "Globale Spaltenbreite - Anzahl Spalten" einheitlich eingestellt werden.

 

Achtung: Werden Panels, die den gleichen Gruppennamen haben, ineinander verschachtelt, kann es zu einem "Bildschirmflackern" kommen, das endlos fortgesetzt wird, da das Vaterpanel die Breite seiner Kinder bestimmt, die Kinder aber auch die Breite des Vaters.

Dieser Zustand kann zur Zeit nur beendet werden, indem ActiveSkin über den Task-Manager beendet wird.

 

Liegt ein solcher Zustand vor, kann mit dem Kommando "pn -trcswitch hhpxNoSharedSizeGroup" vorübergehen die Einstellung der globalen Spaltengruppen verhindert werden. Das Problem kann nun gelöst werden, indem die Gruppennamen so angepasst werden, dass Panels gleichen Namens nicht mehr ineinander verschachtelt sind. Abschließend muss ActiveSkin wieder beendet und normal gestartet werden. Das Problem sollte dann behoben sein.

 

Tabulationsreihenfolge

 

Die Reihenfolge, in der Controls durch die Tab-Taste nacheinander angesprungen werden, muss nicht für jeden Control einzeln festgelegt werden.

Jedoch kann in den Paneleigenschaften eingestellt werden, ob die Reihenfolge eher horizontal oder vertikal vergeben wird.

 

In den Zelleneigenschaften kann außerdem eine Tabulationsgruppe festgelegt werden. Dadurch kann sichergestellt werden, dass Controls einer Tabulationsgruppe nacheinander angesprungen werden, auch wenn sie sich nicht an die vorgegebene Reihenfolge halten.

 

 

In diesem Beispiel sind die Felder "Staat / Plz / Ort" alle mit der gleichen Tabulationsgruppe eingerichtet worden.

 

Wird das Panel auf eine horizontale Tabreihenfolge eingestellt, erfolgt das Anspringen der Felder in folgender Reihenfolge:

 

 

Bei einer vertikalen Tabreihenfolge in folgender Reihenfolge:

 

 

Das Ändern der Tabreihenfolge wirkt erst nach Neuladen der Maske z.B. mit der Tastenfunktion Strg-5.