Dokumentation
Dokumentationen nedan ingår i BeeBase-distributionen och finns även tillgänglig i PDF.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
11. Sortering
För varje tabell i din databas kan du ange i vilken ordning dess poster ska visas. Detta kapitel beskriver hur du kan ange en sorteringsordning och vilka konsekvenser det har.
| 11.1 Empty order | Om du inte vill sortera dina poster. | |
| 11.2 Order by fields | Enkel sortering genom att jämföra fält. | |
| 11.3 Order by a function | Anpassad sortering. | |
| 11.4 Changing orders | Hur man anger en sorteringsordning. | |
| 11.5 Reorder all records | Om posterna någonsin blir osorterade. |
11.1 Tom Sortering
Som standard har varje nyligen skapad tabell en tom sortering. Detta innebär att om du matar in en ny post infogas den skapade posten på den aktuella positionen, det vill säga, efter den aktuella posten i tabellen. Om du ändrar några fält i en befintlig post förblir postens position i tabellen oförändrad.
11.2 Sortera efter Fält
Ibland är det användbart att ha posterna sorterade efter ett visst fält, t.ex. efter fältet `Namn' om tabellen har ett sådant.
I BeeBase kan du ange för varje tabell en lista med fält efter vilka dess poster ska sorteras. Alla poster sorteras först efter det första fältet i denna lista. Om två poster är lika i ett fält bestämmer nästa fält i listan ordningen. För varje fält kan du ange om posterna ska sorteras stigande eller fallande.
För att bestämma ordningen på fält används reglerna i följande tabell:
Typ Ordningsrelation
Heltal NIL < MIN_INT < ... < -1 < 0 < 1 < ... < MAX_INT
Val (Valvärden behandlas som heltal)
Reellt tal NIL < -HUGE_VAL < ... < -1.0 < 0.0 < 1.0 < ... < HUGE_VAL
Sträng NIL < "" < ... < "a" < "AA" < "b" < ...
Memo (Strängjämförelse görs skiftlägesokänsligt)
Datum NIL < 1.1.0000 < ... < 31.12.9999
Tid NIL < 00:00:00 < ... < 596523:14:07
Boolesk NIL < TRUE
Referens NIL < valfri_post
(Själva posterna är inte jämförbara för sortering)
|
Om du har angett en sorteringsordning för en tabell omordnas posterna automatiskt när du lägger till en ny post eller ändrar ett sorteringsrelevant fält i en post.
11.3 Sortera efter en Funktion
Ibland vill du ha ett mer komplext sorteringsschema än en enkel fältlista som beskrivs i föregående avsnitt. Till exempel kan en fältlista inte innehålla referensfält, så det är inte möjligt att sortera dina poster efter ett referensfält. Anledningen till detta är att med referensfält kan BeeBase inte hålla dina poster sorterade hela tiden (se Comparison function i BeeBase-programmerings- kapitlet för mer detaljer).
BeeBase erbjuder dock också möjligheten att ange en jämförelsefunktion för att sortera dina poster. Du kan ange vilken funktion som helst som du har skrivit med hjälp av BeeBase-programredigeraren. Funktionen kommer att anropas med två postpekare och det returnerade värdet bör återspegla ordningen på de två posterna. Funktionen kan använda alla operationer för att jämföra posterna, och kan därför t.ex. jämföra poster med hjälp av referensfält. För mer information om denna mekanism, se Comparison function.
Om du bestämmer dig för att använda en jämförelsefunktion för att sortera en tabell, observera att BeeBase inte alltid kan upptäcka när poster i tabellen måste omordnas eftersom beroendena är okända. Använd menyalternativet `Tabell - Sortera om alla poster' när poster blir osorterade.
11.4 Ändra Sorteringsordningar
För att ange en sorteringsordning för den aktuella tabellen, välj menyalternativet `Tabell - Ändra sorteringsordning'. Detta öppnar ett fönster som innehåller
- namnet på tabellen i fönsterrubriken.
- ett valfält `Typ' där du anger
om tabellen ska sorteras med hjälp av en `Fältlista'
eller genom att använda en `Jämförelsefunktion'.
Beroende på tillståndet för `Typ' kan du mata in
data i följande objekt.
För en sortering med hjälp av en fältlista finns följande objekt:
- en lista över alla fält i tabellen som kan användas i
sorteringslistan. Denna lista placeras i vänstra delen av fönstret.
Om du dubbelklickar på ett namn infogas namnet
i sorteringslistan vid den aktuella markörpositionen.
- den aktuella listan över fält som används för sortering.
Denna lista placeras i den högra delen av fönstret.
Det översta objektet i denna lista är det första fältet i
sorteringslistan. Du kan omorganisera objekt genom att dra dem till
andra positioner i listan. För att lägga till ytterligare fält, dra dem
från fältlistan till sorteringslistan.
Du kan ta bort ett fält från sorteringslistan
genom att dra objektet ut ur sorteringslistan och släppa det
på fältlistan.
Varje post i sorteringslistan har en pilsymbol som pekar uppåt eller nedåt på vänster sida. Du kan växla pilens tillstånd genom att dubbelklicka på den. Om en pil pekar uppåt är sorteringsordningen för detta fält stigande, om den pekar nedåt är den fallande.
För en sortering med hjälp av en jämförelsefunktion finns följande objekt:
- ett fält `Funktion för att jämföra poster'
där du kan ange namnet på en funktion som ska anropas
för att jämföra två poster i tabellen.
Du kan använda popup-knappen till höger om strängfältet för
att välja ett namn från en lista över alla funktionsnamn.
Om du lämnar fältet tomt används en tom sortering.
För mer information om hur man använder en jämförelsefunktion,
inklusive argumenten som skickas till den, se Comparison function.
Dessutom finns följande knappar:
- en knapp `Rensa' som rensar alla fält för en tom sortering.
- två knappar `Ok' och `Avbryt' för att lämna fönstret.
För att ange en ny fältsorteringslista, välj `Fältlista' i fältet `Typ' och tryck på knappen `Rensa'. Använd sedan dra och släpp som beskrivs ovan för att bygga upp en ny lista med fält. Om du vill ha en tom sortering lägger du helt enkelt inte till några fält till sorteringslistan.
När du är klar med att ange sorteringsordningen, tryck på knappen `Ok'. BeeBase kommer då att sortera om alla poster i tabellen.
11.5 Sortera om Alla Poster
Om du någonsin tror att vissa poster i en tabell har blivit osorterade, t.ex. när du använder en jämförelsefunktion för sortering, kan du välja menyalternativet `Tabell - Sortera om alla poster' för att sortera alla poster.
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated on September, 6 2025 using texi2html



