DataGrid

Aus Formupedia

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

DataGrid = Tabelle / Excel-Blatt

Dieses Control kann für die tabellarische Darstellung von Daten verwendet werden. Die Tabellendaten werden über die Eigenschaft CSV im CSV-Format festgelegt bzw. veränderte Inhalte ausgelesen. Ein Füllen des DataGrids kann auch direkt über eine Verbindung zu einer Datenbank erfolgen. Die Tabellendaten werden automatisch anhand der ersten sichtbaren Spalte sortiert. Optional kann der Nutzer durch Klick auf einen Spaltenkopf neu sortieren.

Es bestehen zwei Varianten das Control zu befüllen.

Variante 1: Das Tabellengerüst wird im Formular statisch vorgegeben. Auch der Inhalt des DataGrids kann auf diese Weise vorgegeben werden.

Variante 2: Einlesen des Tabellengerüstes und des Inhalts dynamisch zur Laufzeit des Formulars. Mithilfe einer CSV-Datei oder mit einem Datenbankzugriff kann das DataGrid komplett erstellt werden.

Wie diese beiden Möglichkeiten funktionieren, finden Sie ausführlich hier beschrieben.

Syntax

Egal, ob das DataGrid mittels einlesen einer CSV-Datei gefüllt oder der Inhalt statisch im Formular eingetragen wird, muss die folgende Syntax eingehalten werden:

Werte in Anführungszeichen und kommasepariert.

Die erste Zeile wird immer als Tabellenkopf definiert.

"[Kopf1]","[Kopf2]",...,"[Kopfn]",

"[Wert1]","[Wert2]",...,"[Wertn]",

Eigenschaften

Die hier erklärten Eigenschaften beziehen sich auf die speziellen Eigenschaften eines DataGrids. Alle Standardeigenschaften sind im allgemeinen Part der Controls beschrieben.

Eigenschaft Beschreibung
Entwurf/Design
Design Darstellung des DataGrids

Angabe: RO = ReadOnly = nur Lesen, RW = ReadWrite = Lesen und Schreiben

jeweils 3 Varianten zur Anpassung der Rand- und Spaltenkopfdarstellung stehen zur Verfügung

Spalte/Columns
AutoSizeColumns Automatische Spaltenbreite basierend auf Textlänge der Zellen oder Köpfe oder beides, bzw. gleichmäßige Ausdehnung auf Gesamtbreite.

In Webformularen wird nur zwischen None, Fill und ColumnHeader unterschieden, wobei eine Größenänderung durch den Anweder bei ColumnHeader nicht möglich ist.

ColHeaderVisible Anzeige der Kopfzeile als Überschrift für die Spalten.
ColWidth Festlegung der Spaltenbreiten (kommasepariert für mehrere Spalten) wenn kein AutoSizeColumns verwendet wird.
HideColumns

Ausblenden einzelner Spalten.

Angabe: kommaseparierte Liste der Nummern der auszublendenden Spalten, erste Spalte entspricht 0

OverwriteCols

Festlegung ob die Kopfzeile (Spaltenüberschriften) beim Auslesen von CSV-Daten mit diesen überschrieben werden kann.

Angabe: True (Ja) oder False (Nein)

SortMode Sortieren der Zellinhalte erlauben, wenn ja, welche Option. Wird beim Klick auf die Spaltenbezeichnung ausgeführt.

Angabe: NotSortable (keine Sortierung), Automatic (benutzergesteuert) oder Programmatic (alphabetische Vorsortierung bei CSV Zuweisung)

Zeile/Row
AllowAddRow Hinzufügen von Zeilen dem Formularanwender erlauben. Bedingt einen RWStyle.
AutoSizeRows Automatische Zeilenhöhe für Zellen oder Köpfe oder beides.

In Webformularen wird diese Einstellung ignoriert.

RowHeaderVisible Anzeige einer Hilfsspalte zur Darstellung der aktuellen Auswahl bzw. des Bearbeitungsmodus
Zelle/Cell
CellBackcolor

Hintergrundfarbe der Zellen

WrapMode

Darstellung des Inhalts einer Zelle (mehrzeilig, wenn Spalte zu klein)

Angabe: True (Ja) oder False (Nein)

Ereignisse

Ereignis Beschreibung
Clicked

Dieses Ereignis wird ausgelöst, wenn sich die selektierte Zelle eines DataGrids ändert.

Sie können dieses Ereignis benutzen, um ein DataGrid mit einer Auswahl von Datensätzen zu realisieren.

Die ausgewählte Zeile kann über die "selected" Eigenschaft angesprochen werden. Um den Inhalt einer Spalte der ausgewählten Zeile abzufragen folgt man dem Schema [@tbl_1.selected(X)], wobei X für die Spaltennummer steht (unabhängig der benutzerdefinierten Reihenfolge von Spalten).

DBLClicked

Dieses Ereignis wird ausgelöst, sobald der Nutzer irgendwo in dem DataGrid einen Doppelklick ausführt.

Verwenden Sie dieses Ereignis, um beispielsweise den ausgewählten Datensatz auf einer anderen Formularseite zu bearbeiten.

Wie funktioniert's?

Statisches Befüllen

Die erste Variante ist eine einfache statische Eintragung im Formular. Dazu wird das Ereignis CSV verwendet und entsprechend der syntaktischen Vorgabe gefüllt. Bitte beachten Sie, dass die Daten nicht durch den Formularnutzer, sondern durch den Formularersteller eingegeben werden.

"Nr.","Name","Vorname","Telefonnummer",
"1","Lehmann","Sabine","881",
"2","Schmitt","Hannelore","829",
"3","Schulz","Walther","857",
"4","Maier","Andreas","834",

Dynamisches Befüllen

Als Alternative kann zur Laufzeit des Formulars das DataGrid befüllt werden. Dazu kann eine einfache CSV-Datei dienen. Um die CSV-Datei zu verwenden, muss zunächst überprüft werden, ob die syntaktischen Anforderungen gegeben sind.

Vorsicht! Eine Microsoft Excel-Datei ist standardmäßig semikolonsepariert, die Verwendung von Anführungszeichen ist hier nicht als Standard für den Export eingestellt.

Im Formular wird eine Hilfsvariable notwendig, um die Daten aus der CSV-Datei zwischenzuspeichern und weiter zu verarbeiten. Gehen Sie folgendermaßen vor:

  1. Legen Sie eine Hilfsvariable an. Klicken Sie dazu F9 oder im Menü auf Extras >> Variablen...
  2. Gehen Sie in die Funktion, welche das DataGrid anzeigen soll. Rufen Sie im Bereich THEN das Kontextmenü auf. Wählen Sie den Eintrag Dateisystem >> Text aus einer Datei einlesen. Im erscheinenden Dialog wählen Sie zunächst die Quell-Datei und geben über die Schaltfläche ... die Hilfsvariable an.
  3. Jetzt weisen Sie dem DataGrid die Variable zu, indem Sie als Ereignis CSV wählen.

Alternativ kann auch direkt eine Datenbank ausgelesen werden.

  1. Bauen Sie eine Datenbank-Verbindung (Formular mit Datenbank verbinden) auf.
  2. Wählen Sie als Ausgabe-Control einfach das DataGrid aus. Jedes Feld wird einer Tabellenspalte zugewiesen.

Selektierte Zelle auslesen

Oft soll der Anwender eine Auswahl aus dem DataGrid treffen um basierend auf dieser weitere Formulardaten zu ergänzen. Dafür wird meist die ID des ausgewählten Datensatzes benötigt. Steht zum Beispiel die ID in der 2. Spalte eines DataGrids mit mit dem Namen tbl_1, gehen Sie wie folgt vor:

  1. Legen Sie eine Funktion an
  2. Wählen Sie im IF-Bereich das DataGrid an und vergleichen die "Clicked" Eigenschaft mit "true"
  3. Wählen Sie im THEN-Bereich das Ziel an (Variable, Label, TextBox, o.Ä.) und weisen Sie der "Text" Eigenschaft den Wert "[@tbl_1.selected(1)]" zu
Persönliche Werkzeuge