Jump to content
  • 0

Relatie probleem?


Optic

Question

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)

Edited by Guest
Link to comment

7 answers to this question

Recommended Posts

  • 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 to comment
  • 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 to comment
  • 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 to comment
  • 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 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...