Sorteert een tabel.

Beschrijving

De functie Sorteren sorteert een tabel op basis van een formule.

De formule wordt geëvalueerd voor elke record van de tabel en de resultaten worden gebruikt om de tabel te sorteren. De formule moet resulteren in een getal, tekenreeks of booleaanse waarde. De formule kan niet resulteren in een tabel of record.

Velden van de record die op dat moment wordt verwerkt, zijn beschikbaar in de formule. U kunt deze velden gewoon bij naam noemen, net als met andere waarden. U kunt in de hele app ook naar eigenschappen van besturingselementen en andere waarden verwijzen. Voor meer informatie bekijkt u de volgende voorbeelden en Werken met een recordbereik.

Als u eerst op één kolom wilt sorteren en vervolgens op een andere, sluit u een Sorteren-formule in een andere formule in. U kunt bijvoorbeeld deze formule gebruiken om een tabel Contactpersonen eerst te sorteren op de kolom Achternaam en vervolgens op de kolom Voornaam: Sorteren( Sorteren( Contactpersonen, Achternaam ), Voornaam ).

De functie SorterenOpKolommen kan ook worden gebruikt om een tabel te sorteren die is gebaseerd op een of meer kolommen.

De lijst met parameters voor SorterenOpKolommen bevat de namen van de kolommen waarop u wilt sorteren en de sorteerrichting per kolom. Sorteren wordt uitgevoerd in de volgorde van de parameters (eerst gesorteerd op de eerste kolom, daarna op de tweede, enzovoort). Kolomnamen worden opgegeven als tekenreeksen, waarbij dubbele aanhalingstekens vereist zijn indien rechtstreeks opgenomen in de lijst met parameters. Bijvoorbeeld: SorterenOpKolommen( TabelKlanten, "Achternaam" ).

U kunt SorterenOpKolommen combineren met een besturingselement Vervolgkeuzelijst of Keuzelijst zodat gebruikers de kolom kunnen selecteren waarop zij willen sorteren.

Naast sorteren in oplopende of aflopende volgorde, kan SorterenOpKolommen sorteren op basis van een tabel met één kolom met waarden. U kunt bijvoorbeeld records sorteren op basis van de naam van een weekdag door [ "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag" ] op te geven als sorteervolgorde. Alle records met maandag komen dan eerst, gevolgd door dinsdag, enzovoort. Gevonden records die niet in de sorteertabel worden weergegeven, worden aan het einde van de lijst geplaatst.

Tabellen vormen een waarde in PowerApps, net als een tekenreeks of getal. Ze kunnen worden doorgegeven aan en geretourneerd uit functies. Sorteren en SorterenOpKolommen wijzigen een tabel niet. In plaats daarvan gebruiken ze een tabel als argument en retourneren ze een nieuwe tabel die is gesorteerd. Zie working with tables (werken met tabellen) voor meer informatie.

Delegering

Indien mogelijk worden filter- en sorteerbewerkingen door PowerApps gedelegeerd naar de gegevensbron, waarna de resultaten op aanvraag per pagina worden weergegeven. Als u bijvoorbeeld een app start waarin een besturingselement Galerie wordt weergegeven met daarin verschillende gegevens, wordt in eerste instantie alleen de eerste set met records overgebracht naar het apparaat. Als de gebruiker gaat scrollen, worden er aanvullende gegevens opgehaald uit de gegevensbron. Het resultaat is een snellere starttijd voor de app en toegang tot zeer grote gegevenssets.

Delegering is echter niet altijd mogelijk. Het verschilt per gegevensbron welke functies en operatoren ze ondersteunen voor delegering. Als volledige delegering van een formule niet mogelijk is, wordt er in de ontwerpomgeving een waarschuwing weergegeven bij het deel dat niet kan worden gedelegeerd. Een oplossing is dan om de formule zo aan te passen dat deze alleen functies en operatoren bevat die kunnen worden gedelegeerd. In deze lijst ziet u welke gegevensbronnen en bewerkingen kunnen worden gedelegeerd.

Als delegering niet mogelijk is, wordt er door PowerApps slechts een klein aantal records opgehaald om lokaal mee te werken. De filter- en sorteerfuncties worden dan toegepast op een beperkte set records. De inhoud van het besturingselement Galerie is dan mogelijk niet volledig, wat verwarrend kan zijn voor gebruikers.

Zie Overzicht van delegeren voor meer informatie.

Syntaxis

Sorteren( Tabel, Formule [, Sorteervolgorde ] )

  • Tabel - vereist. Tabel die u wilt sorteren.
  • Formule - vereist. Deze formule wordt geëvalueerd voor elke record van de tabel en de resultaten worden gebruikt om de tabel te sorteren. U kunt verwijzen naar kolommen in de tabel.
  • Sorteervolgorde - optioneel. Geef Sorteervolgorde.Aflopend op om de tabel in aflopende volgorde te sorteren. Sorteervolgorde.Oplopend is de standaardwaarde.

SorterenOpKolommen( Tabel, NaamKolom1 [, Sorteervolgorde1, NaamKolom2, Sorteervolgorde2, ... ] )

  • Tabel - vereist. Tabel die u wilt sorteren.
  • NaamKolom(men) - vereist. De namen van de kolommen waarop moet worden gesorteerd, als tekenreeksen.
  • Sorteervolgorde(n) - optioneel. Sorteervolgorde.Oplopend of Sorteervolgorde.Aflopend. Sorteervolgorde.Oplopend is de standaardinstelling. Als meerdere Kolomnamen worden opgegeven, moeten alle kolommen behalve de laatste een Sorteervolgorde bevatten.

SorterenOpKolommen( Tabel, NaamKolom, SorteervolgordeTabel )

  • Tabel - vereist. Tabel die u wilt sorteren.
  • NaamKolom - vereist. De naam van de kolom waarop moet worden gesorteerd, als tekenreeksen.
  • SorteervolgordeTabel - vereist. Eén kolomtabel met waarden om op te sorteren.

Voorbeelden

Voor de volgende voorbeelden gebruiken we de gegevensbron IJsjes, die de gegevens in deze tabel bevat:

Formule Beschrijving Resultaat
Sorteren( IJsjes, Smaak )

SorterenOpKolommen( IJsjes, "Smaak" )
Sorteert IJsjes op de kolom Smaak. De kolom Smaak bevat tekenreeksen. Hierdoor wordt de tabel alfabetisch gesorteerd. Standaard wordt oplopend gesorteerd.
Sorteren( IJsjes, Aantal )

SorterenOpKolommen( IJsjes, "Aantal" )
Sorteert IJsjes op de kolom Aantal. De kolom Aantal bevat getallen. Hierdoor wordt de tabel numeriek gesorteerd. Standaard wordt oplopend gesorteerd.
Sorteren( IJsjes, Aantal, Sorteervolgorde.Aflopend )

SorterenOpKolommen( IJsjes, "Aantal", Sorteervolgorde.Aflopend )
Sorteert IJsjes op de kolom Aantal. De kolom Aantal bevat getallen. De sortering verloopt dus numeriek. De sorteervolgorde is opgegeven als Aflopend.
Sorteren( IJsjes, Aantal + OpBestelling ) Sorteert IJsjes op de som van de kolommen Aantal en OpBestelling voor elke afzonderlijke record. De som is een getal. Hierdoor wordt de tabel numeriek gesorteerd. Standaard wordt oplopend gesorteerd. Omdat we op een formule sorteren en niet op onbewerkte kolomwaarden, is er geen equivalent met behulp van SorterenOpKolommen.
Sorteren( Sorteren( IJsjes, OpBestelling ), Aantal )

SorterenOpKolommen( IJsjes, "OpBestelling", Oplopend, "Aantal", Oplopend )
Sorteert IJsjes eerst op de kolom OpBestelling en vervolgens op de kolom Aantal. Opmerking: "Pistache" was hoger vermeld dan "Vanille" bij de eerste sortering op basis van OpBestelling. Daarna verschoven ze naar hun juiste plaats op basis van Aantal.
SorterenOpKolommen( IJsjes, "Smaak" [ "Pistache", "Aardbei" ] ) Sorteert IJsjes op de kolom Smaak op basis van de tabel met één kolom die "Pistache" en "Aardbei" bevat. Records met een Smaak "Pistache" wordt eerst weergegeven in het resultaat, gevolgd door records die "Aardbei" bevatten. Waarden in de kolom Smaak zonder overeenkomst, zoals "Vanille", worden weergegeven na de items die wel een overeenkomst hebben.

Stap voor stap

Als u deze voorbeelden zelf wilt uitvoeren, maakt u de gegevensbron IJsjes als een verzameling:

  1. Voeg een knop toe en stel de eigenschap BijSelecteren ervan in op deze formule:
    ClearCollect( IJsjes, { Smaak: "Chocolade", Aantal: 100, OpBestelling: 150 }, { Smaak: "Vanille", Aantal: 200, OpBestelling: 20 }, { Smaak: "Aardbei", Aantal: 300, OpBestelling: 0 }, { Smaak: "Muntchocolade", Aantal: 60, OpBestelling: 100 }, { Smaak: "Pistache", Aantal: 200, OpBestelling: 10 } )

  2. Bekijk een voorbeeld van de app, klik op de knop en druk op Esc om terug te keren naar de standaardwerkruimte.

  3. Selecteer Verzamelingen in het menu Bestand om de verzameling weer te geven die u zojuist hebt gemaakt en druk op Esc om terug te keren naar de standaardwerkruimte.

Sorteren

  1. Voeg een andere knop toe en stel de eigenschap BijSelecteren ervan in op deze formule:
    ClearCollect( SorterenOpSmaak, Sorteren ( IJsjes, Smaak ) )

    De vorige formule maakt een tweede verzameling, met de naam SorterenOpSmaak, die dezelfde gegevens als IJsjes bevat. De nieuwe verzameling bevat echter de gegevens, die alfabetisch in oplopende volgorde gesorteerd zijn op de kolom Smaak.

  2. Druk op F5, selecteer de nieuwe knop en druk op Esc.

  3. Selecteer Verzamelingen in het menu Bestand om beide verzamelingen weer te geven en druk op Esc om terug te keren naar de standaardwerkruimte.

  4. Herhaal de laatste drie stappen, maar wijzig de naam van de verzameling die u wilt maken en vervang de formule Sorteren door een andere formule uit de tabel met voorbeelden eerder in deze sectie die gebruikmaakt van Sorteren.

SorterenOpKolommen

  1. Voeg een andere knop toe en stel de eigenschap BijSelecteren ervan in op deze formule:
    ClearCollect( SorterenOpAantal, SorterenOpKolommen( IJsjes, "Aantal", Oplopend, "Smaak", Aflopend ) )

    De vorige formule maakt een derde verzameling, met de naam SorterenOpAantal, die dezelfde gegevens als IJsjes bevat. De nieuwe verzameling bevat echter de gegevens, numeriek gesorteerd op de kolom Aantal in oplopende volgorde en vervolgens op de kolom Smaak in aflopende volgorde.

  2. Druk op F5, selecteer de nieuwe knop en druk op Esc.

  3. Selecteer Verzamelingen in het menu Bestand om alle drie verzamelingen weer te geven en druk op Esc om terug te keren naar de standaardwerkruimte.

  4. Herhaal de laatste drie stappen, maar wijzig de naam van de verzameling die u wilt maken en vervang de formule SorterenOpKolommen door een andere formule uit de tabel met voorbeelden eerder in deze sectie die gebruikmaakt van SorterenOpKolommen.