Results 1 to 3 of 3

Thread: Many-to-many en GUI ontwerp

  1. #1

    Many-to-many en GUI ontwerp

    Hallo hallo,

    In mijn VCL database (data-aware components) applicatie heb ik meerdere many-to-many situaties. Nu zou ik graag een multiselect GUI control gebruiken, zodat de eindgebruiker direct meerdere opties kan selecteren. Iemand misschien een suggestie waar ik dit kan vinden?

    Bij voorbaat dank!

  2. #2
    Da's best lastig. Het editen doe je meestal toch in 1 to many vorm. Niet elke X heeft tenslotte de zelfde Y's, dus je zal doorgaans 1 X kiezen en daar n Y's aan linken (of andersom). Dus gebruik als het lijstje niet zo lang is een checklistbox, of anders een gridje met een selectie of een incremental search.
    Je kan een soortgelijke GUI gebruiken om Y's te kiezen voor 1 X en om X'en te kiezen voor 1 Y, maar mX koppelen aan nY lukt volgens mij haast alleen door twee lijsten naast elkaar te zetten en er lijntjes tussen te trekken. Dat kan voor een overzicht in sommige specifieke gevallen nog wel nuttig zijn, maar GUI voor het invoeren van die relaties werkt het denk ik niet lekker, zeker als die lijsten eenmaal meer dan 10 items bevatten.

    Als je dat zou willen, dan zou je lijntjes kunnen trekken tussen de lijsten (maar dan zit je vast aan een muis), of je kan in de ene lijst 1 item selecteren waarna je in de andere lijst meerdere items kan selecteren a la checklistbox. Eventueel kan je een advanced selectie maken waarin je in beide lijsten meerdere items kan selecteren of deselecteren om in één keer meerdere relaties toe te voegen of te verwijderen, maar ik denk dat dat lastig uit te leggen is aan de gebruiker. Wellicht een instelbare optie maken.

    Als je zo'n UI ook nog data-aware wilt bouwen, dan moet je toch echt zelf aan de bak. Elke relatie zal ook een rij zijn in je database, dus je kan dan met 1 checkboxje meerdere rijen invoegen. Je krijgt dan een component met twee lookup datasets en een volledig vrije hand in invoegen en verwijderen in een derde dataset. Volgens mij is er geen bestaand data-aware control dat daarbij in de buurt komt.
    Last edited by GolezTrol; 31-Jan-17 at 11:13.
    1+1=b

  3. #3
    Ik heb het nog niet volledig getest, maar volgens mij heb ik een redelijk oplossing gevonden. In mijn applicatie maak ik gebruik van kbmMW (middleware) hiermee kan ik joins resolven naar de database en virtuele tabellen aanmaken. Wat ik doe is dat ik een virtuele tabel aanmaak op basis van een outer join van één many kant. Aan deze virtuele tabel voeg ik veld met de PK van de andere many kant toe d.m.v. een parameter. Ook voeg ik een boolean veld toe die als functie heeft om aan te geven of de er een record bestaat in de koppeltabel(of moet worden toegevoegd). Tijdens het resolve proces heb ik dan de beschikking over alles wat ik nodig heb, 2 PK's en het boolean veld dat aangeeft of er al dan niet een record moet worden toegevoegd aan de koppeltabel(Of gedelete). Op deze manier kan ik ook gewoon een dbgrid gebruiken met checkboxen.

    Nu nog even kijken of het in de praktijk ook echt werkt

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •