| Startseite | Inhalt
StarBasic / OpenOffice.org Basic FAQ
Fragen und Infos: starbasic@dannenhoefer.de

Zurück Vor |
| 7.2.1 Wie kann man Zellbereiche sortieren?
Um Zellbereich zu sortieren gibt es die Methode "Sort" eines Bereiches. Um diese Methode zu verwenden muss man aber einige Parameter setzen. Dazu werden zwei neue Structs erzeugt. Einer für bestimmte Properties und einer für die Festlegung der Sortierfeldes. Man kann auch mehrere Sortierfelder verwenden. Beim Sortierfeld wird die Spalte, die Sortierrichtung (Aufwärts/Abwärts) und der Feldtyp bestimmt. Mögliche Feldtypen sind: com.sun.star.util.SortFieldType.ALPHANUMERIC, Sortierung von Text com.sun.star.util.SortFieldType.NUMERIC, Sortierung von Zahlen com.sun.star.util.SortFieldType.AUTOMATIC, Typ wird erkannt Die Sortierrichtung wird mit "isascending" festgelegt. True = Aufsteigend False = Absteigend Das Feld wird durch die Position, beginnend bei 0, festgelegt. Zusätzlich kann man noch festlegen ob Groß- und Kleinschreibung beachtet wird. Dies geht aber auch über die Sortierkriterien. Als nächstes müssen die Properties ergänzt werden. "SortFields", für das neue erzeugt Struct "SortColumns", false Zeilen werden sortiert, true Spalten. "ContainsHeader", wenn true wird die erste Zeile nicht mitsortiert "IsCaseSensitive", Groß-/Kleinschreibung Sub SortiereBereich Dim SortProps(2) As new com.sun.star.beans.PropertyValue Dim SortFeld(0) As new com.sun.star.table.TableSortField oDatei = ThisComponent oSheet = oDatei.Sheets(0) oBereich = oSheet.getCellRangeByName("A1:D20") SortFeld(0).Field = 0 SortFeld(0).IsAscending = True SortFeld(0).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC SortProps(0).Name = "SortFields" SortProps(0).Value = SortFeld() SortProps(1).Name = "SortColumns" SortProps(1).Value = False SortProps(2).Name = "ContainsHeader" SortProps(2).Value = true oBereich.Sort(SortProps()) End Sub Möchte man über zwei oder drei Felder (mehr lässt OO/SO nicht zu) sortieren muss dies im Struct entsprechend festgelegt werden. Dim SortFeld(1) As new com.sun.star.table.TableSortField SortFeld(0).Field = 0 SortFeld(0).IsAscending = True SortFeld(0).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC SortFeld(1).Field = 1 SortFeld(1).IsAscending = True SortFeld(1).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC |
Seitenanfang |

2003 - 2009 von Michael Dannenhöfer |
Letzte Aktualisierung: 06.04.2009