Ordina una tabella utilizzando più colonne
TDF LibreOffice Document Liberation Project Blog comunitari Weblate Nextcloud Redmine Ask LibreOffice Donazione
Riepilogo
Questa pagina fornisce una procedura macro di LibreOffice Basic che ordina una tabella in base ai valori in più colonne. È un esempio tratto dal Capitolo 13 ("Calc come database") della Guida 7.0 Calc.
Descrizione
Un intervallo può essere ordinato utilizzando fino a tre colonne o righe in una macro. Ordinare con colonne o righe extra è facile come aggiungere campi di ordinamento extra a un descrittore di ordinamento. La macro seguente utilizza il foglio di valutazione della classe nelle celle $Foglio1.A1:H11 del foglio di calcolo collegato per illustrare come ordinare in base a due colonne. I record sono ordinati in ordine crescente, prima per i punteggi del Quiz #1 e poi per i punteggi del Quiz #2.
Codice
Sub SortByQuizScores
Dim oSheet
Dim oRange
Dim oSortFields(1) as new com.sun.star.util.SortField
Dim oSortDesc(0) as new com.sun.star.beans.PropertyValue
oSheet = ThisComponent.Sheets(0)
REM Imposta l'intervallo su cui ordinare
oRange = oSheet.getCellRangeByName("A1:H11")
REM Ordina in base al campo Quiz #1 nell'intervallo
oSortFields(0).Field = 4
oSortFields(0).SortAscending = True
oSortFields(0).FieldType = com.sun.star.util.SortFieldType.NUMERIC
REM Ordina in base al campo Quiz #2 nell'intervallo
oSortFields(1).Field = 5
oSortFields(1).SortAscending = True
oSortFields(1).FieldType = com.sun.star.util.SortFieldType.ALPHANUMERIC
REM Imposta i campi di ordinamento da utilizzare
oSortDesc(0).Name = "SortFields"
oSortDesc(0).Value = oSortFields()
REM Ora ordina l'intervallo!
oRange.Sort(oSortDesc())
End Sub
Questo Foglio di calcolo Calc contiene il codice soprastante Basic di LibreOffice.