Monty Posted October 30, 2009 Posted October 30, 2009 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. Quote
0 pjotter Posted October 31, 2009 Posted October 31, 2009 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 Quote
0 Monty Posted October 31, 2009 Author Posted October 31, 2009 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. Quote
0 hiker Posted October 31, 2009 Posted October 31, 2009 Als je dubbelklikt op een portaal (in layoutmodus) dan kun je zelf sorteervolgordes instellen. Quote
0 Monty Posted October 31, 2009 Author Posted October 31, 2009 Dat is net developer sort. Ik heb user sort nodig. Quote
0 hbrendel Posted October 31, 2009 Posted October 31, 2009 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. Quote
0 JeanWM Posted November 1, 2009 Posted November 1, 2009 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. Quote
0 SuperWimmie Posted November 2, 2009 Posted November 2, 2009 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 Quote
0 burggraaf Posted November 2, 2009 Posted November 2, 2009 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) ) ) Quote
0 hbrendel Posted November 2, 2009 Posted November 2, 2009 Deze methodes sorteren op één veld, maar ik begreep dat de OP meerdere velden in zijn sortering wil betrekken. Quote
0 SuperWimmie Posted November 2, 2009 Posted November 2, 2009 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. Quote
0 JeanWM Posted November 2, 2009 Posted November 2, 2009 ... 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. Quote
Question
Monty
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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.