Ga naar inhoud
  • 0

leeftijd op bepaalde datum berekenen


ad koster

Vraag

Ik moet een faktuur gaan maken waarbij de leeftijd van belang is.

Het gaat om een kwartaalnota waarbij kinderen t/m 12 jaar een lager bedrag hoeven te betalen dan ouderen.

Die nota's gaan uiteraard vooraf aan het kwartaal op de post en daardoor kan ik niet werken met de standaard berekening van leeftijden.

Ik wil daarom in de formule voor leeftijdberekening een aanpassing aanbrengen, waardoor hij kijkt naar een door mij in te voeren datum.

 

Ik gebruik deze formule nu:

Let ([vandaag = Get ( HuidigeDatum ) ;huidigjaar = Year ( vandaag ) ; verjaardag=Date (Month ( geboorte datum ) ; Day (geboorte datum) ; Year (vandaag)); geboortejaar = Year (geboorte datum)]; Case ( verjaardag>vandaag ; huidigjaar - geboortejaar - 1 ; huidigjaar - geboortejaar ))

 

Het lukt me echter niet om hier een variabel veld in te krijgen, met mijn minimale ervaring met Filemaker.

 

Wie helpt mij op weg? Bij voorbaat dank.

Ad

Link naar reactie

18 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Misschien heb je hier iets aan:

 

Let([
DateBirth = GetAsDate("15-05-1973");
DateCurrent = Get(CurrentDate);
DateTemp = Date(Month(DateBirth); Day(DateBirth); Year(DateCurrent))
];
Year(DateCurrent) - Year(DateBirth) - If(DateCurrent < DateTemp; 1)
)

 

Wat bedoel je precies met: "Het lukt me echter niet om hier een variabel veld in te krijgen"?

 

Groet,

Mark

Link naar reactie
  • 0

Hallo Mark,

 

Het komt ongetwijfeld omdat ik nog nooit iets met een datum heb gerekend, maar ik snap deze formule niet.

In mijn database komt de geboortedatum voor.

Daarnaast heb ik met de formule die ik in mijn vraag heb staan, de leeftijd steeds zichtbaar. (gewoon in jaren)

Nu wil ik echter weten wie er op 1 april 2010 ouder is dan 13 jaar. (dus in de toekomst)

De personen boven de 13 jaar krijgen een faktuur met een hoger bedrag.

 

Waar in de formule zou ik de gegevens die in mijn database staan, moeten invullen??

En zou die datum "15-05-1973" dan het variabele veld kunnen zijn??

Dus waar ik dan die 1 april 2010 in zou moeten vullen?

 

Ik heb al wat dingen uitgeprobeerd, maar krijg alleen onlogische getallen of vraagtekens op mijn scherm.

 

Bij voorbaat bedankt voor de hulp.

Ad

Link naar reactie
  • 0

Simpel redenerend:

De leeftijd per kwartaal is bepalend en dan wel >11 jaar (vanaf 12 jaar een andere prijs) Je stuurt elk kwartaal facturen uit dus moet je de leeftijd hebben van het lid op dat moment. Je kunt dan werken met een rekening datum? Maak een datum aan waar je naar kijkt bij het versturen van de factuur. Maak hier een global field van en dateer die op de 1e dag van het nieuwe kwartaal en bij het veersturen van de rekeningen zal het lid die leeftijd hebben bij het maken van de factuur. Ik heb even een voorbeeldje bijgevoegd. De contributie zit nu in de calculatie maar die kun je dus los halen ook de leeftijd kan je veel mooier berekenen maar het gaat even om het principe.

leeftijd.fp7

Link naar reactie
  • 0

Ik ben er helemaal uit!

Door het inpassen in de bestaande database, was het niet mogelijk om precies één van de voorbeelden die jullie aandroegen, toe te passen, maar deze voorbeelden leerden mij zoveel nieuwe dingen, dat ik nu een perfect werkende factuur kan draaien.

 

Iedereen heel hartelijk bedankt en omdat ik de smaak nu weer een beetje te pakken heb gekregen, ga ik binnenkort zeker meer verbeteringen aanbrengen in mijn base. Mogelijk laat ik dan weer van me horen, met nieuwe vragen.

 

Ad

Link naar reactie
  • 0

Dat wil ik natuurlijk graag doen. Alleen heb ik geen idee hoe ik een deel van mijn database kan mailen.

Ik heb hem daarom maar leeggemaakt en een paar adressen nieuw er in gezet, want anders stel ik het ledenbestand aan iedereen beschikbaar, wat uiteraard niet is toegestaan.

 

Het gaat om INVOERSCHERM KWARTAALDATUM en de daaronder staande faktuur, die de gegevens moet gebruiken.

Ik heb nu ook aparte invoervelden voor de bedragen in het scherm gemaakt. Een aanpassing op jouw voorbeeld.

De berekening heb ik, na de tip van TRIKKE, van de site die hij noemde.

 

Al met al ben ik heel wat wijzer geworden van dingen als GLOBAL en BEREKENEN.

Hoewel ik er nog lang niet alles van snap. Dat kan volgens mij nog lang duren, want ik doe veel te weinig met FM.

 

Nogmaals bedankt.

Ad

administratie de ziende 2010 Kopie.fp7.zip

Link naar reactie
  • 0

Even snel naar gekeken en inderdaad geef je zelf al aan dat je er nog niet veel van snapt :D

Even zonder gekheid is inderdaad een vreemde database op deze manier.

Ik vraag me dan af hoe komt het dat men als men er weinig van weet dan toch gekozen wordt voor bv filemaker? Wie bepaald dat dit nu allemaal in filemaker moet en dan ook nog zo opgebouwd? Hier kan nog een flinke inhaalslag gemaakt worden.

 

Dan de berekening ik zou hem iets anders opzetten. Niet geheel duidelijk is hoe deze wordt berekend (meerdere leden dan is de betaling lager) . Simpel redenerend zou ik zeggen: Bepaal aan de hand van de leeftijd wat voor lid het is en dan is ook bekend wat de contributie is. Vervolgens zou ik als ik een factuur zou maken de leeftijd laten berekenen als de factuur wordt verstuurd vanwege de betaling per kwartaal. Ik zou dan de 4 kwartalen tonen in een global, die je dus alleen gebruikt bij facturen maken. Vervolgens maak je daarna deze leeg en heb je weer de juiste leeftijd van het lid.

leeftijd.fp7

Link naar reactie
  • 0

Bedankt voor je reactie.

Eerlijk gezegd zou ik best meer van FM willen leren.

Daar heb je dan echter toch een soort opleiding voor nodig en die is voor een hobbyist best prijzig. Ik heb al eens zitten zoeken op internet en kom dan toch op bedragen van 600 - 700 euro voor een beginnerscursus. Daarna volgt nog een zelfde bedrag voor een vervolg. Dat is dan ook nog eens excl btw, die ik helaas niet kan aftrekken.

 

Ik ben met FM begonnen nadat ik een nieuwe Mac met had gekocht in 2003. Daar stond een demoversie van FM op en dat leek me leuk om eens iets mee te doen.

Het ledenbestand van de vereniging waarvan ik bestuurslid ben stond toen nog in een basic-programma dat een oud-lid in de 80-tiger jaren had geschreven. Dat was nog in de tijd van Mac OS9. Onder OSX draaide dat alleen nog in de Classic omgeving. Inmiddels zou het dus helemaal niet meer draaien, want de Classic omgeving bestaat niet meer sinds OS 10.4.

 

Ik heb toen het eerste stukje gebouwd met de hulp van dit zelfde forum.

De afgelopen jaren heb ik eigenlijk alleen maar allerlei nieuwe layouts aangemaakt.

Steeds als ik bepaalde doorsnedes nodig had, zoals startlijsten, opdruk voor certificaten, ledenlijsten en brieven, maakte ik er weer iets bij.

In principe kan het programma nu bijna alles wat ik nodig heb. Alleen niet op een mooie manier. Daar ben ik het volledig mee eens.

 

Een eerste stapje vooruit, vond ik het verbeteren van de faktuur waar de berekening van de leeftijd voor is bedoeld.

Tot op heden staat er gewoon op de faktuur dat leden t/m 12 jaar € 115,00 dienen over te maken en ouderen € 127,00.

Dus geen vast bedrag en daar werd dan ook misbruik van gemaakt, merkten we.

Als faktuurdatum stond altijd de printdatum (aangegeven met //) boven de brieven.

Dus je moest de faktuur altijd printen direct voor hij naar de post ging, want we hanteren de regel dat betaling binnen 2 weken een korting geeft van € 2,00.

Link naar reactie
  • 0

Voordeel van FM is dat een cursus niet echt nodig is als je even de tijd hebt. Veel is gewoon met wat geduld en zoeken (bv hier) te bereiken. Dat van de layouts was wel duidelijk en die 2 prijzen ook alleen zag ik ook nog iets van korting als er meerdere op een adres woonde? Contributie van 27,50 voor elk lid en 13,75 voor elk volgend gezinslid.

Gewoon wat geduld dan kom je vaak een heel eind. Uit je bericht begrijp ik dus dat men al met FM werkte in het begin en dat je dus als bestuurslid gewoon met de bestaande database verder gaat. Dan is het inderdaad wat lastig als men dit niet als hobby heeft maar dit noodgedwongen er bij moet doen. De praktijk is wel dat je nog veel kunt verbeteren aan de factuur zonder echt een wizzkid te moeten zijn. Ik zou echter zelf met de bestaande database gewoon verder werken zonder dit uit te breiden en dan daarnaast een nieuwe database opzetten die meer van deze tijd is. Daarmee kun je dan ook gaan experimenteren en rommelen zonder problemen. Als die dan naar je zin is kun je over op de nieuwe versie

succes

Link naar reactie
  • 0

Goeden avond,

Twee jaar geleden heb ik naar aanleiding van de tips op dit Forum een leeftijdsberekening in mijn database gebouwd.

Dit werkte tot vorige week probleemloos, maar nu dus niet meer.

Ik krijg nu steeds een verschil in de leeftijden.

Mijn eigen geboortedatum is 5-11-1951 en volgens de berekening ben ik nu plotseling 58 jaar.

 

Het enige dat ik vorige week heb gedaan, is opwaarderen van Leopard naar Snow Leopard.

Ik draai met Filemaker 11.

 

Heeft iemand een tip waaardoor dit zo plotseling kan komen en hoe ik het kan oplossen, want donderdag heb ik de berekening eigenlijk nodig voor het printen van fakturen van leden.

Jongeren betalen minder dan personen boven de 12 jaar.

 

Bij voorbaat dank voor de tip!

 

Ad

Link naar reactie
  • 0

Hoi Ad,

 

ik heb geen idee welke berekening je hebt toegepast en kan daarom ook geen enkele uitspraak doen waarom de berekening nu niet goed gaat. Ik heb wel even een abstracte leeftijdsformule opgezocht in mijn bestanden:

Let( [ 
x= Steekdatum ; 
g = Geboortedatum ; 
s = If ( x ≠ "" ; x ; Get ( CurrentDate ) ) ; 
y = Year ( s ) - Year ( g ) ; 
m = Month ( s ) - Month ( g ) ; 
d = Day ( s ) - Day ( g ) ] ; 
y + Case ( m < 0 or m = 0 and d < 0 ; -1 ))

De formule is iets langer dan strikt noodzakelijk, maar heeft als voordeel dat je de twee basisvariabelen slechts éénmaal hoeft in te vullen, zodat je hem zeer gemakkelijk in een bestand, script, variabele of een formule kan plakken ;-) In jouw geval zou je jouw formule met deze kunnen vergelijken en wellicht ontdek je waar het nu fout gaat. Alhoewel ik het vreemd vind dat het eerst prima heeft gewerkt en nu ineens niet meer.

Overigens kan je "Steekdatum" ook leeglaten, in dat geval wordt de huidige datum gebruikt. Je moet voor de goede werking op 2 punten letten:

1) Het vinkje bij "Do not evaluate when all referenced field are empty" moet "uit" staan en

2) Het resultaat van de berekening moet "unstored" zijn (als je een global gebruikt voor steekdatum gebruikt is dat automatisch al zo)

 

mvg, Menno

Link naar reactie
  • 0

Menno heel hartelijk bedankt voor je hulp.

In eerste instantie heb ik de werking van jouw formule vergeleken met de mijne, maar daar bleek de fout niet te zitten. Het is wel een andere formule, maar hij komt op het zelfde neer.

 

Je toegevoegde regeltjes bleken echter de oplossing te bieden.

Het vinkje dat je noemt bleek plotseling "aan" te staan.

Vraag me niet hoe dat kan, want ik heb al maanden niets meer aangepast in het programma.

Het werkte al bijna 2 jaar probleemloos.

 

Nogmaals bedankt, want met mijn beperkte FM-kennis, had ik dit waarschijnlijk nooit ontdekt.

 

Ad

Link naar reactie
  • 0

Dag mensen,

 

Als beginner van Filemaker zie ik de berekening van leeftijd voorbij komen. Ik ben ook op zoek naar zoiets. Alleen wil ik rekenen met een vaste datum elk jaar.

Ik wil graag de leeftijd weten van een persoon op 30 september ieder jaar. Kan de waarde x aangepast worden, zodat hier automatisch 30 september van het lopende jaar wordt geplaatst?

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