SOG-Helpcenter Logo SOG Business - Software

Erweiterte Funktionen des ObjectList-Controls


Neben den normalen Funktionen des Controls stehen nach Aktivierung der erweiterten Funktionen folgende zusätzliche Funktionen zur Verfügung:...

 

Weitere Funktionen in der Toolbar des Control

 

 

Speichert die aktuelle Ansicht.

Löscht die aktuelle Ansicht aus der aktuellen Maskenvariante. Ist die Ansicht in keiner der Vater-Maskenvarianten enthalten, wird die Ansicht vollständig entfernt.

 

Spaltenkonfiguration


 
 

 

Eigenschaften von Ansichten


Über das Kontextmenü des Controls "Tabelle" - "Aktuelle Ansicht (xxx) konfigurieren" gelangen Sie in den Konfigurationsdialog der aktuellen Ansicht.
Die Optionen haben folgende Bedeutung:

Die Eigenschaften haben folgenden Bedeutung:

 

 

Alle Zellen im Voraus befüllen

true: Alle zur Ausgabe konfigurierten Zellen werden in Form einer Hintergrund geladen.
false: Zellen nach denen weder gruppiert noch sortiert wird, werden erst dann geladaen, wenn sie zur Anzeige benötigt werden.

Anzahl Kopfzeilen

Legt fest, wieviele Textzeilen in der Überschrift eines ObjectList-Controls dargestellt werden können. Standard: 1

Automatische Aktualisierung

Anzahl Sekunden, nach denen die Liste automatisch neu gelesen wird.
0 bedeutet: Keine automatische Aktualisierung.
Werte größer 0 aber kleiner als 30 werden automatisch auf 30 Sekunden korrigiert.

CheckListmodus

true: Der Control funktioniert als "Mehrfachselektions" Control. Dieser Modus kann nur verwendet werden, wenn die Anwendung entsprechend vorbereitet ist.

Einblenden einer Selektionsspalte

true: Es wird eine zusätzliche Selektionsspalte erzeugt. Diese vereinfacht das Selektieren mehrerer Zeilen mit der Maus.

Feste Spalten

Legt fest, wie viele Spalten in der Ansicht des Controls "Fest" gestellt werden, und beim horizontalen Scrollen nicht mit verschoben werden. Durch diese Option ist es möglich dafür zu sorgen, dass bestimmte Spalten immer am Kopfende des Controls verbleiben.

Die Einstellung hat keinen Effekt, wenn Untertabellen in der ansicht konfiguriert worden sind. Dies ist eine technische Limitierung des eingesetzten Controls.

Focus nach Datenload auf Control setzen

true: Nach der Darstellung der gelesenen Daten bekommt der Control den Eingabefocus.

Gesamtsumme

Legt fest, ob eine Gesamtsummenzeile dargestellt werden soll.

Gruppen expandieren

true: Gruppen sind Anfangs expandiert.

Gruppensummen

Steuert die Bildung und Anzeige von Gruppensummen. Dabei kann gesteuert werden, ob Gruppensummen auch dann angezeigt werden sollen, wenn die Gruppen selbst nicht expandiert sind.

Gruppierung sichtbar

true: Das Gruppierungsfenster im Kopf des Controls ist sichtbar.

Keine Aktualisierung bei Maskenreaktivierung

true: Keine Automatische Aktualisierung wenn über den ActiveSkin Hauptreiter auf die Maske zurückgewechselt wird.

Selektion nicht zeigen, wenn Control inkativ

true: Wenn der Control nicht den Eingabefocus besitzt, wird eine einmal getroffene Auswahl nicht visualisiert.

Sortierung und Gruppierung bei Einzelaktualisierung verhindern

Steuert, ob bei Anzeigeaktualisierung von Einzelzeilen diese durch Gruppierung oder Sortierung ihre Position verändern dürfen. Dieser Schalter kann Listen mit z. B. vielen spontanen Aktualisierungen beruhigen.

Spalten verstecken wenn gruppiert

true: Gruppierte Spalten werden nicht mehr in der Spaltenliste angezeigt.

Spaltengrößen automatisch festlegen

Sind die Spalten eigentlich zu klein, werden sie vergrößert. Sind sie zu Groß, werden sie verkleinert.

Spaltengruppenhöhe

 Ist hier ein Wert größer 0 eingestellt, wird die maximale Höhe einer Spaltengruppe auf diesen Wert begrenzt. Ist in keiner spalten eine Gruppenhöhe definiert, so wird die fehlende Höhe mit leeren Spalten aufgefüllt.

Spaltenüberschriften sichtbar

Steuert die Anzeige der spaltenüberschriften. Standardmäßig sind Spaltenüberschriften sichtbar.

Spontane Aktualisierung erlauben

true: Wenn für die angezeigten Daten eine spontane Aktualisierung programmiert ist, wird die Liste automatisch aktualisiert, wenn sich Daten ändern.
false: Die Liste wird nicht automatisch aktualisiert. Dadurch wird die Anzeige ruhiger. Bei einer sehr hohen Frequence von Änderungen der Daten kann es sonst ggf. zu einem Flackern oder zu Problemen bei der Bedienung kommen.

Tabellenüberschrift

Legt die Überschrift der Tabelle fest.

Untertabellen bei nur einem Datensatz automatisch expandieren

Hier kann gesteuert werden, ob Untertabellen automatisch angezeigt werden sollen, wenn nur ein Datensatz in der Haupttabelle vorhanden ist. Initialwert: Eigenschaft wird aus die Design-Eingenschaften "GridAutoExpandOnSingleRow" ermittelt. Expand: Bei nur einem Datensatz in der Haupttabelle wird automatisch expandiert. NoExpand: Es wird nicht automatisch expandiert.

 

Dynamische Untertabellen anzeigen

true: Werden im verbundenen Selector relational verbundene Daten genutzt, werden automatisch die durch die Relation betroffenen Datensätze als Untertabellen dargestellt. Eine manuelle Festlegung von fest angezeigten Untertabellen ist damit nicht mehr möglich.
false: Es werden nur manuell konfigurierte Untertabellen dargestellt. Nur wenn diese Option auf "false" steht, ist es möglich, Untertabellen manuell zu konfigurieren.

 
Globale und ansichtsspezifische Eigenschaften


Bei den Eigenschaften einer Spalte wird unterschieden, ob diese "Global" für alle konfigurierten Ansichten gelten, oder aber pro Ansicht unterschiedlich konfiguriert werden können.
Die Eigenschaften, die sich in der Eigenschaftengruppe "Global" befinden, werden global gespeichert. Eine Änderung wirkt sich auf alle konfigurierten Ansichten aus.
Unter Umständen wirkt die Änderung in anderen Anzeigecontrols aber erst, wenn ActiveSkin neu gestartet wird, da die Ansichtenkonfiguration dort bereits vollständig geladen und zwischengespeichert wurde.

Globale Eigenschaften sind im Nachfolgenden mit "Globale Eigenschaft" kenntlich gemacht.

Bedeutung der einzelnen Eigenschaften einer Spalte


Die Eigenschaften der Spalten haben folgende Bedeutung:

 

Bedingte Formatierungsgruppe

Durch Angabe eines Gruppennamens wird eine "Bedingte Formatierung" eingeschaltet. Für alle dargestellten Werte einer Formatierungsgruppe wird der Anteil der aktuellen Zelle an der Gesamtsumme farblich dargestellt.

Jeden Wert zulassen

Bei Eingabetabellen kann hier eingestellt werden, ob nur Werte einer Auswahlliste oder ob jeder beliebige Wert zulässig ist.

Kein Automatischer Editiermodus

Bei Eingabetabellen kann hier eingestellt werden, das bei Navigation über die Tastatur der Control bei erreichen dieser Zelle nicht in den Eingabemodus wechselt. Dadurch wirkt die Enter-Taste Maskenauslösend.

Selektionsspalte

Globale Eigenschaft. true: Die Spalte wird als "Selektionsspalte" verwendet. Wird in den Eigenschaften der Ansicht festgelegt, dass der Control im "CheckList" Modus arbeitet, sollte genau eine "Selektionsspalte" definiert werden.

Anzahl angezeigter Zeilen

Globale Eigenschaft. Wird hier ein Wert > 0 eingetragen, kann sich der Inhalt der Spalte über mehr als eine Textzeile erstrecken. Um den Text darzustellen wird die Höhe der aktuellen Zeile dynamisch angepasst.

Ausrichtung

Über die Ausrichtung kann festgelegt werden, ab der Inhalt einer Spalte links- oder rechtsbündig angezeigt wird. Der Standard definiert, dass numerische und Datums-Felder rechtsbündig sowie alphanumerische Felder linksbündig angezeigt werden.

Format

Globale Eigenschaft. Fomatstring für die Aufbereitung des Datenfelds zur Anzeige. Bei Datumsfeldern kann hier z. B. gesteuert werden, welcher Anteil der Zeitinformation angezeigt wird. Der Formatstring muss zum Datentyp passen.
Siehe Formatierungsangaben

Wertanzeige

Globale Eigenschaft. Hier kann gesteuert werden, wie die Darstellung von Werten erfolgen soll, für die Auswahllisten definiert sind. Mögliche Einstellungen: Initialwert: Die Darstellung wird zentral, über eine Designeinstellung gesteuert. Wert: Es wird nur der Datenwert dargestellt. ReferenzWert: Es wird nur der Referenzwert aus der Auswahlliste dargestellt. ReferenzwertWert: Beide Werte werden dargestellt.
Ist unter "Sortierung" die Auswahl "Initialwert" getroffen worden, steuert die Wertanzeige gleichzeitig die Sortierreihenfolge.

Zellen hervorheben

Globale Eigenschaft. true: Die Zelle wird hervorgehoben. (Mit einer anderen Farbe) Die Hervorhebungsfarbe kann über eine Designeinstellung festgelegt werden.

Anzahl Gruppenspalten

Anzahl Spalten, die bei mehrzeiligen Ansichten innerhalb der Tabelle von der Spalte belegt werden sollen.

Anzahl Gruppenzeilen

Anzahl Zeilen, die von der Spalte belegt werden sollen.

Expansionsfunktion für Gruppen

Hier kann ein Ausdruck hinterlegt werden, der bestimmt, ob die Gruppe dieser Spalte automatisch auf- bzw. zugeklappt wird.
Der Ausdruck muss immer einen Wahrheitswert (bool) liefern und auf dem Datenfeld ${grpval} basieren. Ergibt der Ausdruck 'true' wird die Gruppe aufgeklappt.
Hier kann immer nur der ermittelte Gruppierungswert (abhängig vom Gruppierungsinterval) verwendet werden. Ein Zugriff auf die Eigenschaften der Datenobjekte ist nicht möglich.
Es ist jedoch möglich bei mehrfach Gruppierungen für jede Gruppierungsebene einen Ausdruck zu hinterlegen.

Gruppierungsinterval

Globale Eigenschaft. Gibt an, in welchem Intervall Gruppen gebildet werden. Für Datumsfelder kann z. B. definiert werden, oder eine Gruppe pro Stunde, pro Tag, pro Jahr o. ä. gebildet werden soll.
In Feldauswahl zeigen

In einer neue Spalte

Bei mehrzeiligen Ansichten wird diese Spalte immer in der ersten Zeile einer neuen Spalte dargestellt.

Sortierung

Globale Eigenschaft. Geben Sie hier an, wie die Daten sortiert werden sollen. Hinweis: Auch bei der Sortierung "WertReferenzwert" wird intern nur nach "Wert" sortiert.
Eine Sortierung abweichend von "Wert" oder "WertReferenzwert" kann zu Performanceeinbußen führen.
Initialwert: Sortierreihenfolge ergibt sich aus dem Attribut "Wertanzeige".

Sortierung erlaubt

Globale Eigenschaft. true: Nach dieser Spalte kann sortiert werden. False: Nach dieser Spalte kann nicht sortiert werden.

Überschrift

Globale Eigenschaft. Spaltenüberschrift. Ist hier nichts angegeben wird die Standardüberschrift verwendet.

AggregateCustomFunction

Wird diese Eigenschaft auf "true" gesetzt, so erfolgt die Berechnung der Aggregatswerte über eine programmierte Funktion (ISOGCustomAggregate). Diese Funktion muss von der SOG Entwicklung in der Datenklasse ggf. per Script implementiert werden. Dadurch ist gewährleistet, dass Aggregate nach unterschiedlichsten Algorhythmen berechnet werden können.

AggregateFormat

Fomatstring für die Aufbereitung der Summenzeile des Datenfelds zur Anzeige. Bei Datumsfeldern kann hier z. B. gesteuert werden, welcher Anteil der Zeitinformation angezeigt wird. Der Formatstring muss zum Datentyp passen.
Siehe Formatierungsangaben

AggregateFunction

Möglichkeit zur Einstellung einer AggregateFunction. Hier kann gesteuert werden, dass für eine Spalte eine Summe erstellt wird. Es können jedoch nicht nur Summen gebildet werden, sonder auch andere Funktionen verwendet werden: Anzahl Werte, Durchschnitt, Standardabweichung, etc.

Zeilen Aggregatsfeld

Legt das Datenfeld, oder die benötigten Zusätzlichen Angaben für Zeilen-Aggregatsfunktionen fest.

Zeilen Aggregatsfunktion

Ermöglicht die Festlegung von speziellen Aggregatsfunktionen.
Siehe Zeilen-Aggregatsfunktionen.

Dynamische Designklasse

Bietet die Möglichkeit die Designklasse, und damit z. B. die Hintergrundfarbe, einer Zelle dynamisch zu bestimmen.
Die Festlegung der Designklasse erfolgt über einen berechneten Ausdruck.
Der Ausdruck muss dabei den Namen der gewünscht Designklasse liefern. Ein leerer String definiert eine nicht abweichende Designklasse. Ein Beispiel für einen einfachen Ausdruck wäre:

ifelse(
  ${m_konto} == 35100 ; 'rot';
  ${m_konto} == 88080 ; 'gruen';
  '' )

Dieser Ausdruck würde die Farbe der Zelle, in der er festgelegt wurde, auf 'rot' setzen, wenn das aktuelle Datenobjekt in der aktuellen Zeile im Datenfeld "m_konto" den Wert "35100" aufweist. Bei konto "88080" würde die Zelle 'gruen' dargestellt. In allen anderen Fällen "normal".
Beispiel für die rot-Darstellung von negativen Werte:

ifelse( ${m_wert} < 0 ; 'rot'; '' )



Beispiel für eine mehrzeiligen Text.

Festlegung von Untertabellen


Existieren zu einem Datenobjekt Relationen, die eine 1:n Beziehung des Datenobjektes zu anderen Daten festlegen, können Untertabellen definiert werden, die der Benutzer einfach über ein Kreuz auf- und zuklappen kann.
Zur Definition von Untertabellen wählen Sie aus dem Kontextmenü die Funktion "Tabelle - 'Datentyp' Untertabellen definieren".
Sie erhalten eine Liste von festgelegten Untertabellen. Über die Schaltflächen "Neu" und "Löschen" können Sie die Liste erweitern und vermindern.
Klicken Sie auf "Neu". Wählen Sie nun in den Eigenschaften des neuen Eintrags aus der Auswahlliste der Eigenschaft "Funktion" eine der angebotenen Relationen aus.
Bestätigen Sie mit "Ok".
Sie erhalten nun ein Kreuz vor jeder Tabellenzeile. Durch klicken auf das Kreuz wird die entsprechende Untertabelle geöffnet. Bei erster Verwendung sind nun zuerst die Spalten der Untertabelle zu konfigurieren. Klicken Sie dazu auf die erste Zelle der neuen Untertabelle mit der rechten Maustaste, wählen Sie aus dem Kontextmenü "Tabelle - 'Datentyp' Spalten konfigurieren".
Hinweis: Auch Untertabellen können mit weiteren Untertabellen ausgestattet werden! Die Anzeige von Datensätzen in Untertabellen ist auf 1.000 begrenz.

Serverseitige Sortierung


Im Allgemeinen kann die Sortiermögichkeit des ObjectList-Controls gerne genutzt werden, um die dargestellten Daten nach bestimmten Kriterien zu sortieren. Werden jedoch sehr viele Datensätze dargestellt, benötigt die Sortierung durch den ObjectList-Control relativ viel Zeit.
Eine Alternative besteht darin, die Sortierung durch den Datenbankserver durchführen zu lassen!
Schalten Sie die Sortierung des ObjectList-Controls ab, indem sie mit gedrückter Strg-Taste auf die Sortierspalten klicken. Entfernen Sie auch Gruppierungsfelder, da nach Gruppierungsfeldern immer auch sortiert wird.
Geben Sie in den Eigenschaften der aktuellen Ansicht des verbundenen ObjectSelector-Controls unter "SQL Sortierung" die SQL-Datenfelder an, nach denen Sie sortieren möchten.
Verwenden Sie dort ein Komman als Trennzeichen zwischen den Datenfeldern, und das Schlüsselwort "desc" um eine absteigenden Sortierung zu erreichen.
Geben Sie hier "NONE" ein, um zu erreichen, dass nicht sortiert wird.

Verwendung von Aggregatsfunktionen


Der ObjectList-Control bietet zwei unterschiedliche Arten von Aggregatsfunktionen. Die erste Gruppe von Aggregaten erlaubt die Bildung z. B. von Summen, die in einer eigenen Zeile des Controls pro Gruppe oder für alle Datensätze gebildet und angezeigt werden.
Die zweite Gruppe von Aggregaten erlaubt die Darstellung von z. B. laufenden Summen oder Prozenten des Gesamt- oder Gruppenwertes innerhalb der Dateinzeile als eigenes Datenfeld.

Konfiguration einer Summe in einer einzelnen Gruppenfuß und Gesamtsummenzeile


Legen Sie in der Konfiguration der anzuzeigenden Spalte (Ctrl-F) in der Eigenschaft "AggregateFunction" eine Aggregtsfunktion fest.
Mögliche Aggregatsfunktionen sind dabei:

 

Count

Anzahl Werte

Sum

Summe der Werte

Avarage

Duchschnittswert

Min

Minimalwert

Max

Maximalwert

StdDeviation

Standardabweichung

ValueCount

Anzahl Werte

Legen Sie nun in der Konfiguration der Ansicht (Ctrl-G) in der Eigenschaft "GroupTotal" fest, wann ein Gruppenwert ausgegeben werden soll.Mögliche Werte sind:

 

Never

Keine Gruppensummen

Allways

Gruppensummen immer ausgeben.

ExpandedGroups

Gruppensummen nur für expandierte Gruppen.

Legen Sie über die Eigenschaft "TotalRow" fest, ob eine Gesamtsumme ausgegeben werden soll, oder nicht.

 

 

Zeilen-Aggregatsfunktionen


Rufen Sie die Spaltenkonfiguration des Control sauf (Ctrl-F)
Markieren Sie die Spalte, für die sie eine eigene Aggregatsspalte anlegen wollen. Die Spalte muss zu diesem Zeitpunkt sichtbar sein!
Klicken Sie auf "Neues Aggregat".
Klicken Sie nun auf "Eigenschaften" um die Eigenschaften des neuen Aggregats festzulegen.
Tragen Sie eine Überschrift ein. Wählen Sie in der Eigenschaft "Zeilen Aggregatsfunktion" eine der möglichen Aggregatsfunktionen.
Beispiel einer laufenden Summe:

Mögliche Funktionen sind:

 

LaufendeSumme

Bildet eine laufende Summe. In der letzte Zeile befindet sich damit die Gesamtsumme aller Werte.

LaufendeGruppenSumme

Bildet eine laufende Summe pro angezeigter Gruppe. In der letzten Zeile einer jeden Gruppe befindet sich nun die Gesamtsumme der Gruppe.

Prozent

Errechnet den Anteil des Wertes an der Gesamtsumme aller Werte in Prozent.

ProzentGruppe

Errechnet den Anteil des Wertes an der Gesamt-Gruppensumme aller Werte in Prozent.

ExpandValue

Der unter "Aggregatsfeld" definierte Text wird über die Expand-Funktion der Variablenauflösung expandiert. Über "${Feldname}" kann der Inhalt von aktuellen Variablen eingefügt werden. Über diesen Weg ist es zwar auch möglich, kleiner Berechnungen vorzunehmen, generell gilt jedoch, dass für Berechnungen und komplexere Ausdrücke "ExpandNumericValue" verwendet werden sollte.
Der Zugriff auf Daten, die durch Relationen verbunden sind sollte vermieden werden!

ExpandNumericValue

Der unter "Aggregatsfeld" definierte Text wird über die ExpandNumericValue-Funktion der Variablenauflösung expandiert.
Der Name der Funktion lautet zwar "NumericValue", es können aber auch Ausfdrücke formuliert werden, die andere Datentypen wie z. B. Texte, Daten oder Zeitspannen zurückliefern.
Über "${Feldname}" kann der Inhalt von aktuellen Variablen eingefügt werden. Über Operatoren (+, -, *, /) und Klammern kann ein Ausdruck formuliert oder Funktionen aufgerufen werden.
Verwenden Sie die Auswahlschaltfläsche "..." um einen Ausdruckseditor aufzurufen. Im Ausdruckseditor kann der aktuelle Ausdruck unter Anderem geprüft und ausprobiert werden.
ExpandNumericValue erlaubt auch der Zugriff auf Daten, die durch Relationen verbunden sind ist hier möglich.

Script

Legen Sie in "Zeilen Aggregatsfeld" einen Klassennamen einer ActiveSkin-Script Klasse fest, die über die Schnittstelle "ISOGValueBuilder" in der Lage ist, einen Datenwert zu bilden. Über die Schreibweise "dyn.DynObjekt" kann auch auf ein SOG ERP (VACOS) DynamicObject zugegriffen werden, dass dann z. B. bestimmte Standardkonvertierungen durchführen kann.
Nach dem in "Zeilen Aggregatsfeld" festgelegten Klassennamen kann noch zusätzlich - mit einem Komma getrennt - ein Parameter angegeben werden, der dem ISOGValueBuilder mitteilt, was worauf sich die Konvertierung bezieht.

Standard-Script-Aggregatsfunktionen


Über Angabe von "Script" als Aggregatsfunktion, und eine der folgenden Konvertierungsfunktionen, können Standardkonvertierungen, z. B. für die Formatierung von Datumsfeldern festgelegt werden:

 

dyn.InMonat,m_termin

Das Datenfeld "m_termin", das einen DateTime-Datumswert liefern muss, wird in einer Monatsschreibweise "NN/JJJJ" dargestellt. Die Sortierung erfolgt dabei "kalendarisch" und nicht alphabetisch.

dyn.InQuartal,m_termin

Das Datenfeld "m_termin", das einen DateTime-Datumswert liefern muss, wird in einer Quartalsschreibweise "Q N/JJJJ" dargestellt. Die Sortierung erfolgt dabei "kalendarisch" und nicht alphabetisch.

dyn.InWocheKalendarisch,m_termin

Das Datenfeld "m_termin", das einen DateTime-Datumswert liefern muss, wird in einer Wochenschreibweise "KW NN/JJJJ" dargestellt. Die Sortierung erfolgt dabei "kalendarisch" und nicht alphabetisch. Für die Umrechnung in Wochen wird der kalendarische Algorhythmus angewendet, bei dem z. B. der 1.1. zur 53 KW des Vorjahres gehören kann.

dyn.InWocheStatistisch,m_termin

Das Datenfeld "m_termin", das einen DateTime-Datumswert liefern muss, wird in einer Wochenschreibweise "KW NN/JJJJ" dargestellt. Die Sortierung erfolgt dabei "kalendarisch" und nicht alphabetisch. Für die Umrechnung in Wochen wird der statistische Algorhythmus angewendet, bei dem z. B. der 1.1. immer zur 1 KW des Jahres gehört.

dyn.InAlter,m_termin

Das Datenfeld "m_termin", das einen DateTime-Datumswert liefern muss, wird in einer Altersschreibweise dargestellt. Bei dieser Schreibweise wird das Alter eines Eintrag in Stunden, Minuten, oder Tagen angegeben.

Sichtbarkeit der Toolbar


Die Toolbar des Controls wird dynamisch sichtbar oder unsichtbar gemacht. Wird der Control als eigenständiger Control verwendet, kann über das Kontext-Menü "Tabelle - Toolbar anzeigen" die Sichtbarkeit ein- und ausgeschaltet werden, und der letzte gewünschte Zustand wird in der Konfiguration des Controls gespeichert.
Wird der Control als Teil eines größeren z. B. innerhalb eine SOGListContainer Controls verwendet, so wird die Sichtbarkeit der Toolbar in Abhängigkeit des Zustandes des Vater-Controls geschaltet, und nicht eigenständig gespeichert.