Gültigkeit: Windows-Formulare
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.
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]",
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) |
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. |
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",
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 zwischen zu speichern und weiter zu verarbeiten. Gehen Sie folgendermaßen vor:
Extras >> Variablen...
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.DataGrid
die Variable zu, indem Sie als Ereignis CSV
wählen.Alternativ kann auch direkt eine Datenbank ausgelesen werden.
DataGrid
aus. Jedes Feld wird einer Tabellenspalte zugewiesen.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: