Jump to content
  • 0

Portaal met resultaten


Rony Rabijns

Question

Ik heb één tabel met één veld, gevuld met data die niet uniek is.

Op de layout waarop een willekeurig record getoond wordt uit die tabel, moet ook een portaal staan, met daarin enkel en alleen de unieke waarden van dat veld uit alle records.

 

Bijvoorbeeld:

- tabel met 6 records

- het veld "data" bevat de waarden "1","2","2","3","3","1".

- het portaal mag dan enkel de waarden "1", "2" en "3" bevatten.

 

Welk is de meest aangegeven methode om dit (dynamisch) te bekomen?

Link to comment

19 answers to this question

Recommended Posts

  • 0

@Hiker:

Het moet een portaal zijn. De bedoeling is om met die unieke waardes te gaan werken als zouden het records zijn.

 

@Harry:

Zo deed ik het tot nu ook, maar dat is niet dynamisch genoeg naar mijn zin. Met de import die je voorstelt, moet je nog altijd handmatig een script starten, of eventueel via een plugin triggeren.

Ik wil eigenlijk een relationele oplossing vinden. Op die manier ben ik totaal onafhankelijk van scripts, plugins en data.

 

Ik ben er nu toch al een tijdje mee bezig, en het is een flinke uitdaging om een relationele oplossing te vinden. Maar ik ben er van overtuigd dat ze d'er is. :-)

Link to comment
  • 0

Dag pjotter,

De velden worden gevuld vanuit een import (80%) en handmatig (20%).

 

Ik kan met een schaduwtabel werken, zo deed ik het ook al. Dat is de oplossing zoals Harry ze ook voorstelde. Maar dat wil ik niet. De unieke waardes moeten on-the-fly getoond worden.

Als ik in de tabel een record bijmaak met een uniek gegeven, wil ik dat onmiddellijk zien in het portaal. Bij voorkeur niet via een script (cfr import), maar relationeel.

Link to comment
  • 0
Lach je me nu uit?

Neenee, helemaal niet! Het zal mijn jeugdig enthousiasme geweest zijn. Het was inderdaad een hersenbreker... :D

 

Oh, dan is het goed. :-D

 

Misschien is het een goed idee dat je hier een korte beschrijving geeft hoe je oplossing werkt en wat de gebruikte techniek is? Zo heeft iedereen er later ook nog iets aan.

Link to comment
  • 0
Misschien is het een goed idee dat je hier een korte beschrijving geeft hoe je oplossing werkt en wat de gebruikte techniek is? Zo heeft iedereen er later ook nog iets aan.

 

Inderdaad, hieronder wat meer info. De denkpiste die ik volgde, was hoe je verschillende records met een zelfde waarde, naar 1 en slechts 1 record met deze waarde kon doen verwijzen. Op deze manier toon je enkel die records met een unieke waarde. Je moet erin slagen om op de een of andere manier een veel-op-één relatie te creëren.

 

Dit klinkt nogal abstract, maar volg even mee:

- Allereerst creëren we een zogenaamde self-join, waarbij we de tabel met waarden aan zichzelf linken. In de relationship graph, gaat het om 'Uniek 2' en 'Uniek 3'

- De link wordt gelegd tussen het veld data in 'Uniek 2' en hetzelfde veld data in 'Uniek 3', wat dus niet-unieke waarden bevat over de records heen (bv 2 komt meerdere keren voor)

- Een record aan de linkerkant (Uniek 2), heeft een match met mogelijk meerdere records met dezelfde waarde aan de rechterkant (Uniek 3)

- Je creëert nu ahw een vehikel om voor verschillende records met dezelfde waarde, toch iets te maken, dat naar slechts 1 record verwijst. Dit doe je met het veld 'cFirstID'. cFirstID verwijst naar de ID (unieke identificatie record) van de eerst matchende record aan de rechterzijde. Belangrijk is dat je begrijpt dat, van de linkerkant uit bekeken, records met dezelfde waarden, alle dezelfde waarde zullen hebben in cFirstID, nl. de record van de eerst aangemaakte record met de betreffende waarde. Klinkt raar, want aan de linkerkant bevatten nu records met een zelfde waarde in data, nu ook een gemeenschappelijke waarde in cFirstID. Maar het gaat erom dat de ID - per definitie - elk record wél uniek identificeert aan de rechterkant, en data niet. Beeldend uitgedrukt, maak je een soort bruggetje.

- Om nu in de portal lijnen te tonen met een unieke waarde, volstaat het om aan de lnkerkant (Uniek 4) het veld cFirstID te matchen met ID (Uniek 5). Dit betekent dan dat aande linkerkant, verschillende records met een zelfde waarde, alle naar het eerste records met die waarde verwijzen in 'Uniek 5'. Je creëert dus op een kunstmatige manier een veel-op-een relatie.

 

Hopelijk verduidelijkt dit een en ander. In bijlage een kleine update, want in de relatie van 'Uniek 4' naar 'Uniek 5', is de extra match van data naar data in feite niet nodig

 

 

- Jeroen

Uniek.fp7

Link to comment
  • 0

Wat een schitterende oplossing is dit!! Ongelooflijk.

 

Zelf was ik hier ook naar op zoek in mijn geposte vraag van 18 nov. jl., maar vermoedde dat dit onmogelijk was. Ik loste het op met een extra tabel (in de app. die ik aan het bouwen ben een heel aantal extra tabellen zelfs) en een – automatisch geactiveerd – script. Maar dit is zoveel beter, 100% solide, perfect gewoon.

Link to comment
  • 0

Enthousiast deze oplossing toegepast hebbende (9 portalen met (berekende) resultaten op 1 layout en een tabel met (slechts) 6000 records) moet ik toch een kanttekening maken: De snelheid. Deze zakt terug naar een onprettig niveau naarmate de tabel zich verder vult met records. Naar de betreffende layout navigeren en voordat de portalen dan zijn opgebouwd en je weer eens wat kunt gaan doen ben je toch al gauw 20 a 30 seconden verder. Verlaat je de layout en kom je (na niet al te lang) terug dan staat alles er wel meteen. Maar duurt het daarentegen wat langer voor je weer eens terugkeert, dan moet de inhoud van de portalen weer worden berekend en kun je weer snel even op en neer naar de koffieautomaat. Als de layout eenmaal is opgebouwd werkt het super, maar telkens tegen die wachttijd aanlopen wordt toch snel vervelend.

Link to comment

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