Ga naar inhoud
  • 0

Artikelen samenvoegen


Gerard Exis

Vraag

Beste mensen,

 

ik zou graag de mogelijkheid hebben om artikelen samen te kunnen voegen maar tevens ook als zelfstandig artikel te behouden in de database.

 

Het volgende doet zich voor:

Op mijn website verkoop ik b.v. een gasfles, deze heeft dan een artikelcode (natuurlijk), echter aan dit artikelcode is via een jointabel meerder codes van leveranciers gekoppeld, de goedkoopste wordt gefilterd.

Nu verkoop ik deze gasfles ook als set met toebehoren, dit set bestaat uit 2 gasflessen, slangen, t-stuk en vulmond.

Als ik deze verkoop, doe ik handmatig de verkoop corrigeren naar verkoop van de artikelen apart, natuurlijk met andere kortingen om de juiste verkoopprijs te krijgen. Nu krijg ik meer van dit soort artikelen, dus nu is het niet leuk meer :mrgreen:

 

Ik weet echt niet waar te beginnen, ik heb te maken met het voorraadniveau, deze moet uit de lossen artikelen gehaald worden.

Dus het "losse" artikel met laagste voorraad is bepalend voor het voorraadniveau van de "set" .

Bij verkoop moet de verkoop van een set omgezet worden naar verkoop van "losse" artikelen.

Bij bestelling van een "set" die niet op voorraad is moet dit ook worden omgezet naar "losse" artikelen die besteld dienen te worden bij de leveranciers.

 

Waar is het begin ? :(

Kan iemand mij op pad helpen ?

Link naar reactie

16 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Relaties lijken me hier de beste oplossing, en dan vooral een relatie tussen artikelen onderling via een tussentabel waarin aangegeven wordt welke artikelen in een set zitten. Waarbij de voorraad van de set wordt bepaald door het laagste aantal van de onderliggende artikelen.

Wat je nu handmatig doet is natuurlijk ook te scripten. Ik heb een voorkeur om dat met berekeningsvelden te doen (en zoeken via een relatie) omdat die altijd uitgerekend worden terwijl scripts altijd een achterstand hebben dus minder actueel zijn. En met voorraadbeheer in een multi-user omgeving is dat wel belangrijk.

 

Ik wil best meehelpen met een voorbeeldbestandje maar het hangt van jouw kennisniveau af waar ik mee zou kunnen beginnen. Wellicht handig als je zelf een basaal voorbeeldbestandje maakt tot zover als je kan komen en dat hier plaatst??

 

Mvg,

René

Link naar reactie
  • 0

Beste Rene,

 

alvast dank voor je reactie, geef weer een beetje moed :D

 

Als eerste, mijn kennisniveau is eigenlijk nihil. Wat jaren terug heb ik FM (12) aangeschaft en kwam toen voor het eerst in aanraking met hetgeen wat achter een database zit. Ik heb toen een database gemaakt (zelf uitdokteren en hulp van vele mensen hier) waar ik tot een paar weken geleden dagelijks mee gewerkt heb, super blij was ik ermee. Al die jaren dus eigenlijk niet meer mee bezig geweest (bedoel dus aanpassen etc.. van de database), toch blijft het knagen, je weet dat het beter kan, anders kan en ook je bedrijf veranderd waardoor onbelangrijke zaken ineens belangrijk worden en andersom. Dus FM16 aangeschaft (als we toch nieuw moeten bouwen dan maar gelijk met een nieuwere versie) en weer van voren af begonnen. Intussen werk ik er al mee, ondanks dat het nog niet klaar is. Maar goed wordt weer een lel van een verhaal zo......... dus to the point :mrgreen:

 

Als eerste probeer ik uit te leggen hoe ik de artikelen in mijn database heb staan (want dit is denk ik wel belangrijk voor de kenners om te weten).

Ik heb een tabel met artikelen leverancier, dit zijn dus alle artikelen met prijzen, artikelcodes van de leveranciers etc.. (dus mijn bestellijsten worden hiervan uit gemaakt zodat ik de juiste info voor de leveranciers op de bestellijst heb staan). Deze staan in relatie met een "join tabel" . Dit tabel heb ik de sorteerfunctie ingeschakeld op de laagste inkoopprijs.

Vervolgens loopt de relatie via dit join tabel door naar een tabel "artikelen website" . In dit tabel staat alle artikelen die ik op mijn website heb staan met eigen unieke artikelcodes. Dus 1 "web artikel" kan gerelateerd staan aan 5 "leverancier artikelen".

 

Stap 1. Het ophalen van voorraadniveau.

Nu is mijn idee als volgt: ik maak een join tabel en een "artikel samenvoeg tabel" via dit tabel ga ik meerdere "web artikelen" aan 1 "web artikel" (dit is dus het artikelnummer wat gebruikt wordt op de web site voor het betreffende set).

Vervolgens laat ik per onderliggend artikel de voorraad niveau ophalen uit de tabel "artikelen website" en laat dit tabel sorteren op voorraadniveau, de laagste komt bovenaan en dit wordt gezien als het voorraad niveau voor de set.

Zit ik de goede kant op te denken, of is dit een doodlopende weg ?

Link naar reactie
  • 0

heb een join tabel gemaakt en een tabel "onderliggend artikel" . Als ik hier het artikelnummer invul wordt deze automatisch aan het artikelnummer gekoppeld van "de set" , dus dat gaat goed. Echter gegevens ophalen van de onderliggende artikelen lukt niet, omdat via de join tabel wordt gezocht op het artikelnummer van "de set" 8O

 

Hoe kan ik het beste de gegevens uit een ander tabel ophalen in dit geval ?

Link naar reactie
  • 0

Algemene tip: gebruik niet de term web of website omdat de plek waar de informatie naar toe gaat geen rol speelt en in de toekomst kan wijzigen.

 

Mijn voorstel:

- tabel Artikelen waarin losse artikelen en sets ingevoerd worden

- tussentabel waarin voor sets wordt aangegeven uit welke losse artikelen het bestaat

- een tabelvermelding om vanuit de tussentabel een relatie met de losse artikelen in de tabel Artikelen te maken

 

Bij orders, facturen e.d. is een mogelijkheid om bij het invoeren van artikel ID/code e.d. met scriptactivering een script uit te laten voeren om de voorraad van de losse artikelen van een set bij te werken. Wellicht door de losse onderdelen op de order/factuur op te nemen.

 

Ik vermoed dat de prijzen en de leveranciers (inkoop) redelijk los staan van de sets en losse artikelen (voorraad). Daarom daarnaast:

- tabel Leveranciers (of algemener Bedrijven e.d.)

- tussentabel tussen Artikelen en Leveranciers om prijs e.d. per leverancier vast te leggen.

 

Heb je hier wat aan?

 

Mvg,

René Ros

http://www.fmtraining.nl

aangepast door Gast
Link naar reactie
  • 0

Dank je wel voor de uitleg,

 

op dit moment ziet het er als volgt uit:

 

een tabel waarin de artikelen (los en sets) staan, een tussen tabel, en dan een tabel met de artikelen van de leveranciers.

elk artikel heeft namelijk meerder leveranciers.

de inkoopprijzen worden in een aparte tabel gehouden zodat het voor mij makkelijk is om elk jaar de nieuwe prijzen in te voeren.

De gegevens van de leveranciers (incl. kortingspercentages) staan ook in een aparte tabel.

Voorraad in en uit staan ook in aparte tabellen, daarnaast heb ik nog een tabel voor artikelen onderweg (transport Nederland-Roemenie), dus de voorraad is eigenlijk onderverdeeld in drie tabellen.

 

- tussentabel waarin voor sets wordt aangegeven uit welke losse artikelen het bestaat

deze heb ik gemaakt, in dat tabel staat het artikelnummer van de set gekoppeld aan het artikelnummer van de "losse" artikelen.

echter omdat de losse artikelen en de sets in dezelfde tabel staan loopt het hier naar mijn idee verkeerd, ik krijg geen gegevens van de "losse" artikelen via deze relatie door.

 

- een fabelvermelding om vanuit de tussentabel een relatie met de losse artikelen in de tabel Artikelen te maken

sorry, dit begrijp ik niet.

Link naar reactie
  • 0
een fabelvermelding om vanuit de tussentabel een relatie met de losse artikelen in de tabel Artikelen te maken

sorry, dit begrijp ik niet.

 

Was autocorrect-fout: tabelvermelding.

Bij Database beheren, tab Relaties voeg je niet tabellen toe maar tabelvermeldingen. Er kunnen meerdere tabelvermeldingen gemaakt worden voor dezelfde echte tabel (zie tab Tabellen) zodat een tabel meerdere keren in het relationele schema kan bestaan. Daardoor kunnen er meerdere relaties tussen tabellen gemaakt worden, zelfs naar dezelfde tabel.

Het vervelende is dat de knop linksonder in het scherm Tabel noemt terwijl het eigenlijk een tabelvermelding is. Tot zover in een notendop maar hopelijk geeft het je een beter idee van wat ik eerder bedoelde.

 

Daarin gaf ik ook aan om de inkoop/leveranciers los te zien van de sets/artikelen, dat herhaal ik bij deze.

 

Mvg,

René Ros

Link naar reactie
  • 0

Beste Rene,

 

dank voor je reactie, waardeer ik zeer.

 

Ik heb geprobeerd te doen wat jij omschrijft, echter zonder resultaat. Op zeker ga ik in de mist met die tabelvermelding.

Ik heb even (zoals jij al in een vorige reactie aangaf te doen) een voorbeeld bestandje bijgevoegd, in grote lijnen het betreffende deel van mijn database nagemaakt.

 

Ik hoop dat je even tijd heb om hier even naar te kijken. Het gaat mij er niet om dat je het even oplost (ik weet zeker met jouw kennis dat dit niets voorsteld) maar dat ik er achter kan komen waar ik de fout in ga. Ik wil hier echt wat van leren.

 

Alvast hartelijke dank,

Voorbeeld exis.fmp12

Link naar reactie
  • 0

Heb het zojuist gevonden.

 

1. probleem, niet goed lezen wat er staat :oops:

2. ik begon met het eind, dus de verkeerde tabel. Omdat de voorraad in het tabel artikel staat moet ik deze dupliceren, vervolgens deze aan het tabel onderliggende artikel relateren.

 

In ieder geval, door Rene ben ik blijven zoeken en nadenken wat er fout ging, uiteindelijk niet alleen opgelost maar ook weer wat geleerd. Super !! alsnog bedankt.

Link naar reactie
  • 0

Nu pas tijd om er even naar te kijken.

 

De tabel Onderliggende artikel is niet nodig. In het voorbeeld bestand heb ik een tweede tabelvermelding van de tabel Artikelen toegevoegd met de naam 'Artikelen 2'. Dubbelklik maar op die tabelvermelding en je ziet welke tabel er werkelijk onder zit.

Dergelijke 'extra tabellen' (tabelvermelding) voeg je toe met de knop 'Een tabel toevoegen' linksonder in de knoppenrij. Die knopnaam klopt dus eigenlijk niet...

 

Dat maakt 'Omdat de voorraad in het tabel artikel staat moet ik deze dupliceren' waarschijnlijk overbodig. De grote truk is om geen dubbele gegevens in je database te hebben, als dat wel het geval is dan is er een betere oplossing... :-)

 

Mvg,

René

Voorbeeld%20exis.fmp12

aangepast door Gast
Link naar reactie
  • 0
Ik wil dit nog wel wat bouder stellen: Een database met dubbele gegevens (niet-genormaliseerd heet dat officieel) is een foute database.

 

Probeer ik eens beleefd te zijn!

Ik heb het idee dat maar weinig mensen in de FM-wereld die de term 'normaliseren' iets zegt, en al helemaal niet de methodieken om daar toe te komen. Wie hebben er hier een informatica-opleiding gevolgd?

 

Mvg,

René

Link naar reactie
  • 0

Helemaal eens voor wat betreft het datamodel. Maar wat betreft interface-ontwikkeling kan je er soms niet om heen om in een tabel gerelateerde informatie vast te leggen, bijv via een lookup, omwille van de performance. En voor bepaalde data is dat m.i. helemaal niet erg.

 

De kunst is dan om de strikte normalisatie te combineren met dit soort ontwerpbeslissingen.

Ook kan de lookup een truc zijn om een momentopname te maken van een bepaald stukje informatie.

Link naar reactie
  • 0

Hallo beste mensen,

 

dank voor de uitleg, zit momenteel op een parking in Zuid-Spanje (effe vakantie). Heb grootste ruzie met de vrouw als ik nu ook nog eens mijn tijd achter de computer besteed, dus effe snel bij deze:

 

de beste wensen voor 2018 en alvast bedankt, als ik thuis ben zal ik dit eens op mijn gemak lezen en kom ik hier nog op terug.

Link naar reactie
  • 0
Nu pas tijd om er even naar te kijken.

 

Terug van vakantie, ik zou hier nog op terug komen. bijdeze.

 

 

De tabel Onderliggende artikel is niet nodig. In het voorbeeld bestand heb ik een tweede tabelvermelding van de tabel Artikelen toegevoegd met de naam 'Artikelen 2'. Dubbelklik maar op die tabelvermelding en je ziet welke tabel er werkelijk onder zit.

Dit heb ik exact eender gedaan.

 

Door deze tabelvermelding heb ik via de relatie alle gegevens van de "onderliggende artikelen" , zoals voorraad niveau, kostprijs e.d.

 

Nu nog gaan uitdokteren hoe ik de voorraadmutaties ga verwerken :?

 

Dergelijke 'extra tabellen' (tabelvermelding) voeg je toe met de knop 'Een tabel toevoegen' linksonder in de knoppenrij. Die knopnaam klopt dus eigenlijk niet...

 

Dat maakt 'Omdat de voorraad in het tabel artikel staat moet ik deze dupliceren' waarschijnlijk overbodig. De grote truk is om geen dubbele gegevens in je database te hebben, als dat wel het geval is dan is er een betere oplossing... :-)

 

 

Mvg,

René

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