Jump to content
  • 0

Portaal sorteren


Monty

Question

Posted

Ik moet sorteringen doen in een portaal, maar de gebruiker moet de keuze kunnen maken op welke kolom.

 

B.v. eerste kolom A-Z en derde kolom Z-A, in dezelfde sorteringscall.

 

Iedere aanwijzing welkom.

11 answers to this question

Recommended Posts

  • 0
Posted

Allereerst welkom op dit forum, je zult hier zeker veel vragen en antwoorden vinden over FM.

Je vraag zal dan ook al vast wel eens voorbij zijn gekomen. Gebruik eens de zoek functie :)

  • 0
Posted

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.

  • 0
Posted

Creëer een tab object en maak voor alle denkbare sorteercombinaties een tab aan. Plaats op iedere tab hetzelfde portaal, elk met een andere sorteervolgorde. Verberg de tabheaders. Laat de user op een aparte layout of dialoogvenster zijn sorteervolgorde kiezen en bepaal n.a.v. die keuze welke tab je toont.

  • 0
Posted

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.

  • 0
Posted

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

  • 0
Posted

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)
)
)

  • 0
Posted

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.

  • 0
Posted
... 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.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...