Ga naar inhoud
  • 0

Relatie probleem?


Optic

Vraag

Beste Mensen,

 

Na vele uren proberen, zoeken, lezen enz. kom ik er niet uit bij het volgende probleem, wellicht is er hier iemand die een constructie kan bedenken. Wat ik probeer te maken is een applicatie om recepturen te maken voor producten.

 

Ik heb een tabel met 'specificaties' hierin staan alle grondstoffen aan codes en kunnen de componenten van iedere grondstof met percentages toegevoegd worden. Bijvoorbeeld grondstof A0001 bevat 50% component 001 & 50 % 002.

 

Door middel van een join tabel is deze verbonden met een andere tabel met de componenten hierin, in de join tabel worden ook de percentages component in iedere grondstof opgeslagen.

 

Daarnaast heb ik een tabel 'Recepturen, deze is dmv een join tabel verbonden met 'specificaties'. In de join tabel van recepturen naar specificaties worden eveneens de percentages grondstof in een receptuur opgenomen.

 

Tot nu toe werkt het allemaal prima. Ik kan componenten aan grondstoffen toevoegen, grondstoffen aan recepturen. Ook kan ik alle componenten van dit product bekijken in een 2e tabblad dmv een portal maar hier gaat het mis.

 

Bij het overzicht van componenten in deze portal wil ik ook het percentage component in het receptuur zien, dat kan dmv een simpele berekening en dit werkt ook wel maar totdat dezelfde grondstof in een 2e receptuur gebruikt wordt, dan worden de percentages uit het eerste receptuur overgenomen.

 

Heeft iemand een idee hoe ik dit op kan lossen? Ik zou die persoon zeer dankbaar zijn.

 

Groet,

Optic

 

 

(Edit: login = admin/admin)

aangepast door Gast
Link naar reactie

7 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Probleem is eigenlijk, dat je in de context waarin je de berekening maakt, je niet bewust bent van de huidige receptuur, nl. de actieve record op de receptuurlayout van waaruit je de portal ziet. De berekening geeft nl. de waarde van JoinTable_Gcode_Hcode::Percentage van de eerste match. Als je dezelfde grondstof aan een 2de receptuur toevoegt, dan zijn er meerdere gerelateerde Percentages in JoinTable_Gcode_Hcode, maar je berekening zal slechts rekening houden met de waarde van de eerste match. Nog anders gezegd: op je layout kijk je stroomafwaarts, maar je berekening "kijkt" stroomopwaarts, en volgt een andere logica.

 

Je moet dus een manier zoeken om duidelijk te maken dat je je berekening wil maken voor een welbepaalde receptuur (H_code). Dit kan je m.i. enkel doen d.m.v. een global (gHuidigeH_code) toe te voegen aan Jointable_INCI_Grondstof, die gescript wordt vanuit de receptuur layout, en waarin de H_code van de huidge receptuur wordt weggeschreven. Deze global verwerk je in een multi-predicate relatie van Jointable_INCI_Grondstof direct naar JoinTable_Gcode_Hcode. Op deze manier is het uiteraard niet meer mogelijk dat de gebruiker vrij navigeert doorheen de recordset, maar ga je knoppen moeten gebruiken om de global te scripten.

 

Een alternatief is, dat je het stroomafwaarts bekijkt, en in JoinTable_Gcode_Hcode een berekening maakt waarin je bv. in een komma gescheiden lijst, de percentages van de componenten per grondstof weergeeft... Je ziet dan geen individuele percentages meer per componentlijn, maar een overzicht per grondstoflijn...

 

- Jeroen

Link naar reactie
  • 0

Inmiddels een paar uur verder :P

 

Ik heb de global toegevoegd aan join_inci_grondstof en verbonden met join_gcode_hcode, zoals je eerder poste. Ook een scriptje gemaakt op de receptuur lay-out welke de HCode van de actieve record in de global plaatst, echter wil het nog niet werken, de percentages blijven hetzelfde.

 

Ik snap in ieder geval je opzet, morgen weer verder.

 

Groet,

Optic

Link naar reactie
  • 0

Optic,

 

Omdat ik vanmiddag een minuutje tijd had 8) , hierbij een werkend voorbeeld.

 

Wat er toegevoegd werd:

- globaal veld gH_Code in jointabel INCI_Grondstof

- nieuwe table occurrence (TO) obv deze tabel, voor nieuwe relatie tss jointabel INCI-Grondstof en jointabel Grondstof-Receptuur.

- calculation werd aangepast: context voor berekening is nieuwe TO

 

Je kan zien dat het nu wel werkt, door op de receptuur layout naar de tab 'INCI's' te gaan, en dan de global gH_code handmatig te vullen met de H_code van de receptuur erboven. Aan jouw om dit verder te automatiseren ...

Test.fp7

Link naar reactie
  • 0

Hallo,

 

Ik ben inmiddels bijna klaar met deze receptuur module.

 

Echter zou ik nog de mogelijkheid in willen bouwen om (sub-)recepturen aan recepturen toe te voegen als grondstof en eventueel dit mee te nemen in de component berekening.

 

De makkelijkste manier om dit te realiseren is om de sub-receptuur in recepturen aan te maken, vervolgens de H-Code op te nemen in de tabel specificaties. Maar dit zou betekenen dat je alle inci's van dit sub-receptuur handmatig zou moeten invoeren.

 

Jeroen, weet jij misschien een betere oplossing om dit te realiseren?

 

Groet,

Optical

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