Ga naar inhoud
  • 0

Portaal sorteren


Monty

Vraag

11 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Heb ik al gedaan, vandaar mijn vraag omdat de gevonden posts het allemaal hebben over het sorteren van 1 kolom.

 

Wat ik nodig heb is sorteren op 2 kolommen op hetzelfde ogenblik, waar de ene opgaand en de andere afgaand of omgekeerd moet kunnen gebeuren.

En de keuze moet door de gebruiker kunnen gemaakt worden.

 

De kolommen via de sortering op twee velden laten gebeuren kan niet, want dat is developer sort.

Ik heb een user sort nodig.

Link naar reactie
  • 0

Je kunt het ook rechtsreeks in het portal layout doen.

Dan heb je geen verschillende tabs nodig.

 

Met een calculatieveld en een, en nu zal ik waarschijnlijk een bunch geeks over mij krijgen, een repeating field.

 

Je maakt gebruik van de array van repeating fields om de sorteervolgorde bij te houden.

 

Scriptmatig, door gebruik te maken van een Get(ActiveModifierKeys), bepaalt de gebruiker de sorteervolgorde.

 

Je moet wel zorgen dat je aan het eind van de sorteerroutine de array weer leeg maakt.

Maar dat is een regeltje meer in je script.

 

Het is een techniek waar een repeating field ideale dienst bewijst, op voorwaarde dat je weet wat de mogelijkheden zijn van repeating fields, buiten het opslagen van simpel icons.

Link naar reactie
  • 0

Nog een mogelijkheid, per gebruiker in te stellen (dus niet één instelling voor alle gebruikers):

 

Maak een globaal veld aan waarin je de veldnaam presenteert waarop gesorteerd moet worden. Doordat het een globaal veld is, is de instelling geregeld per gebruiker.

Maak in het child-record een gecalculeerd veld aan, waar je via het GetField commando de inhoud ophaalt zoals in het globale veld is ingesteld.

Sorteer het portaal op het gecalculeerd veld.

 

Nadeel: het gecalculeerd veld is helaas niet geindexeerd. Bij zeer grote bestanden werkt het niet al te snel.

Nog een nadeel: bij Multi-User wordt het globale veld bij opnieuw starten teruggezet naar de standaard waarde.

Voordeel: alle gebruikers bepalen zelf op welke wijze de eigen sortering plaats vindt

Link naar reactie
  • 0

Voortbordurend op SuperWimmie, deze custom gebruik ik daarbij, denk dat-ie ooit bij Brian Dunning vandaan is gekomen.

 

/*
Function will convert any text string to a numeric value for sorting portals.
- Takes advantage of FileMaker's number spec, 400 places to either side of the decimal.
- If portal's related record set is likely to be small or limited, use the function in your portal sort calc.
- Otherwise, store result as a calculated field that can be referenced in your sort calc.
- If you store this function result, there is no need to index.


PARAMETERS:
text = 	The text string to convert
value = 	First digit or character
	Use "." and/or any number.  For simple sorts, use "."
	Using other values, you can achieve multi-level and custom sorts.

	You can use numbers to force a custom sort, ie. value lists, multi-level sorts)
*/

Let(
[
LEN = Length(text);
STRING = "0123456789abcdefghijklmnopqrstuvwxyz"
];
Case(LEN > 0;
SortNumeric(Right(text;LEN-1); value & Right("0" & Position(STRING;Left(text;1);1;1);2));
GetAsNumber(value)
)
)

Link naar reactie
  • 0

Kan je toch regelen?

 

Je kan net zoveel velden opgeven om de gebruiker te laten kiezen, je kan ook meerdere hoofd- en subsorteringen opgeven als je maar genoeg globale velden hebt om de gebruiker te laten kiezen.

In de formule kan je "Getfield (globaalveld1) & Getfield (globaalveld2) enz. opgeven, net wat je wilt.

Als je er een value list op de globale velden zet, kan de gebruiker bijna niet fout gaan.

Link naar reactie
  • 0
... als je maar genoeg globale velden hebt om de gebruiker te laten kiezen.

 

Daarom dat we 1 repeating field gebruiken.

 

Het is gemakkelijker om 1 veld te controleren/onderhouden dan verschillende.

 

Op die manier kun je op ieder veld sorteren descending of ascending op het zelfde ogenblik.

 

De repeatings maken het ook mogelijk om visueel (met de juiste icoontjes) aan te geven op welke manier welke kolom gesorteerd is.

 

En we laten alles via 1 script lopen met parameters.

 

Compact en simpel.

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...