Saskia Posted April 7, 2005 Posted April 7, 2005 Wie weet een oplossing voor mijn probleem: Ik genereer in een veld een unieke code door een samenvoegveld die er als volgt uit ziet: 113/<>/<> Nu wil ik graag dat het volgnummer iedere maand bij 001 begint. Kan ik dat maken en uiteraard zo ja, hoe? Bedankt voor het meedenken, Saskia Quote
0 Theo Tromp Posted April 7, 2005 Posted April 7, 2005 Maak twee velden Maandnummer en Volgnummer in een setting-bestand (een gerelateerd bestand met één record) waarin je het maandnummer van de actuele maand bewaard. Er zal in kunnen staan "200504". En vervolgens bepaal je het volgnummer met een scriptje: If Settings::Maandnummer <> (Year(status(currentdate) * 100) + Month(Status(Currentdate)) Set Settings::Maandnummer = (Year(status(currentdate) * 100) + Month(Status(Currentdate)) Set Settings::Volgnummer = 0 EndIf Set Settings::Volgnummer = Settings::Volgnummer + 1 Set Code = "113/<>/" & Settings::Volgnummer Er zullen ook wel andere manieren zijn. Het voorbeeld gaat uit van Filemaker 6, in Filemaker 7 heten de statusvelden anders. Veel succes Quote
0 JeanWM Posted April 7, 2005 Posted April 7, 2005 Je kunt het ook bereiken door in hetzelfde bestand te blijven. Maak een veld aan dat de Maandnummer geeft. Hiermee maak je een relatie Maandnr::Maandnr. Wat je nu wil bereiken is dat het volgnummer het max van deze relatie neemt + 1. FM zal janken dat dit niet gaat omdat het een circular is. Sorteer de relatie op volgnummer 'descending'. Dit zorgt ervoor dat maandnr::volgnummer je altijd de hoogste waarde zal geven en die waarde hebben we nodig. Maak een veldje bij: previous dat een lookup uitvoert via de relatie, met default 0, en laat volgnummer een berekening zijn previous + 1. Indien je meer dan een jaar dient te hebben, voeg je het jaartal toe aan het maandnummerveld. De lookup zal de circularity breken en het ook mogelijk maken dat previous kan geindexeerd en gestored worden. Beter zou eigenlijk zijn het geheel te scripten bij het aanmaken van records. Je hebt dan nog steeds je maandnummer en je volgnummer nodig en de relatie, maar geen previous, en volgnummer is een gewoon numberfield, geen calculatie. Voeg gewoon een stap toe aan het script: Set Field(volgnummer, Case(Maandnr::volgnummer > 0;volgnummer+1;1) HTH Serial+1.fp5 Serial+1.zip Quote
0 Saskia Posted April 10, 2005 Author Posted April 10, 2005 Heel erg bedankt voor jullie antwoorden. Maar nog een vraagje Jean. Ik heb dingen gedownload, maar hoe krijg ik die nu in mijn filemaker bestand? Vast heel simpel, maar ja, ik ben nog heel groen in filemaker. Saskia Quote
0 JeanWM Posted April 10, 2005 Posted April 10, 2005 ...heb dingen gedownload, maar hoe krijg ik die nu in mijn filemaker bestand? Klakkeloos overpennen was zelfs in de schoolperiode niet zo'n goede oplossing....(mijn studentjes proberen het ook altijd.... ...maar dat is dan zonder mijn 'evil mind' gerekend , ze weten nu wel beter ) (en neen, in het voorbeeldbestandje zitten geen valkuilen.... ) Het vraagt een beetje graafwerk. Het belangrijkste is het geheel te begrijpen. Maak een copy van het bestandje en graaf in het innerlijke om te zien hoe het in mekaar steekt. Dit is mijn behangpapierdeel.... Je schrijft in je eigen woorden wat, waar, hoe, waarom, welk, vanwaar komt en gaat.... Indien er iets fout loopt, geen man (vrouw) overboord, gewoon nieuwe copy maken.... Eens je alles uitgetekend hebt op papier, krijg je een inzicht hoe het werkt. Nu pas je alles aan aan je eigen bestand. Veld x in mijn bestand = Veld y in voorbeeld bestand enz. Probeer in je eigen bestand het geheel terug op te bouwen met je aantekeningen als basis. Indien het juist werkt, ben je al een stapje verder.... De volgende keer je de techniek nodig hebt, consulteer je je aantekeningen, de daarop volgende keer doe je het uit het hoofdje....weer een stapje hoger op de FM ladder. Zit je vast met iets....volop prachtmensen die je willen/zullen helpen hier.... HTH Quote
Question
Saskia
Wie weet een oplossing voor mijn probleem:
Ik genereer in een veld een unieke code door een samenvoegveld die er als volgt uit ziet: 113/<>/<>
Bedankt voor het meedenken,
Saskia
5 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.