Voor mijn project op school moet ik een module maken in navision voor het registreren cursussen. In de module moet ik ook gebruik maken van een som. Ik moet twee velden berekenen en de uitkomst in een ander veld plaatsen. Ik moet de duur x dagprijs = cursusprijs berekenen. Navision verteld mij dat ik van cursusprijs een SumIndexField moet maken maar een SumIndexField mag geen Flowfield zijn. Hoe maak ik dus een goede berekening?
Misschien een vraag die heel simpel is, maar toch.... [-o<
Navision versie: NL 3.70.B
0
Comments
Elke keer dat je dagprijs of duur veranderd, moet je cursusprijs aanpassen (In de OnValidate van de 2 eerste velden moet je code schrijven om cursusprijs te berekenen).
Het beste is om een nieuwe function te maken "BerekenCursusPrijs" die de cursusprijs berekend en die functie oproept in de OnValidate van beide andere velden.
Het nut om dan Cursusprijs als SumIndexField te maken hangt af of je verschillende records met dat veld in moet optellen om dan een groot totaal te hebben.
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!
De C/AL-code benader je door F9 te drukken als je een object aan het wijzigen bent.
De code in de functie wordt:
cursusprijs := duur * dagprijs;
Maar eigenlijk denk ik dat het bijna niet te doen is om "een module maken in navision voor het registreren cursussen" als je geen enkele NAV-cursus of ervaring hebt...
Tino Ruijs
Microsoft Dynamics NAV specialist
Tja, op het HBO moet het kunnen. Maar het lukt al wel redelijk. Ik heb al redelijk wat in elkaar geknutseld. Maar nu moet ik met het rekenen aan de slag en dat volg/snap ik nog niet helemaal.
Ik heb een functie aangemaakt zoals aan gegeven in het eerste reply BerekenCursusPrijs. Moet ik dan bij de cursusprijs de regel cursusprijs := duur * dagprijs; invullen bij die functie? En dan bij de duur en dagprijs de functie aanroepen? Maar hoe roep je die functie aan?
Dit roept de functie aan.
En de functie is gedefinieerd in de tabel met de volgende code:
Tino Ruijs
Microsoft Dynamics NAV specialist
Ik heb het precies gedaan zoals hier is beschreven maar toch werkt het niet. het type velden is decimal. Of moet ik nog op een bepaalde manier de waarde in het veld cursusprijs zien te krijgen?
In het de C/AL code van de tabel staat nu een functie BerekenCursusPrijs
De functie BerekenCursusPrijs is bij de C/AL code van elk veld terug te zien.
Tino Ruijs
Microsoft Dynamics NAV specialist
En je hebt volgens mij alleen in de OnValidate van het veld "Aantal inschrijvingen" de volgende regels code:
Tino Ruijs
Microsoft Dynamics NAV specialist
Tino Ruijs
Microsoft Dynamics NAV specialist
En de functie BerekenTotaalBedrag is gedefinieerd in de tabel? Ja, lees ik net in eerdere posts.
En de aanroep staat ook in de OnValidate van het veld "Aantal inschrijvingen" in de tabel?
Tino Ruijs
Microsoft Dynamics NAV specialist
Volgens mij hoeft BerekenTotaalBedrag alleen in de OnValidate van Aantal inschrijvingen te staan. Want Cursusprijs is een flowfield.
En totaalbedrag bereken je.
Tino Ruijs
Microsoft Dynamics NAV specialist
Volgens mij moet je er uit kunnen komen met de informatie die je nu hebt.
Of je gaat even met een ander onderdeel van de module aan de slag en kom op dit probleem later terug. Dat werkt vaak het beste. Even afstand nemen.
Tino Ruijs
Microsoft Dynamics NAV specialist
8)
Tino Ruijs
Microsoft Dynamics NAV specialist