Som maken in Navsion

AppieHeijn
Member Posts: 34
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<
Misschien een vraag die heel simpel is, maar toch.... [-o<
Navision versie: NL 3.70.B
0
Comments
-
Cursusprijs moet een normaal veld zijn.
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.Regards,Alain Krikilion
No PM,please use the forum. || May the <SOLVED>-attribute be in your title!0 -
Hoe zou die functie eruit zien? Waar kan ik die functies maken in de C/AL code?Navision versie: NL 3.70.B0
-
Om functies te maken moet je een ontwikkellicentie hebben en vervolgens kun je functies maken in alle soorten objecten (tabel, scherm, codeunit).
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 specialist0 -
tinoruijs wrote: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...
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?Navision versie: NL 3.70.B0 -
In de OnValidate van de 2 eerste velden (duur en dagprijs) moet je code schrijven:
BerekenCursusPrijs;
Dit roept de functie aan.
En de functie is gedefinieerd in de tabel met de volgende code:cursusprijs := duur * dagprijs;
Tino Ruijs
Microsoft Dynamics NAV specialist0 -
Edit: Ik heb het al voor elkaar. Hij past de berekening niet toe op de al aanwezige gegevens. Bedankt voor jullie hulp!
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 BerekenCursusPrijscursusprijs := Duur * Dagprijs;
De functie BerekenCursusPrijs is bij de C/AL code van elk veld terug te zien.Navision versie: NL 3.70.B0 -
Graag gedaan. Goed bezig!
Tino Ruijs
Microsoft Dynamics NAV specialist0 -
Ik heb nu ook een andere berekening gemaakt. Namelijk Het aantal inschrijvingen * cursusprijs = totaalbedrag. Deze berekening werkt nu ook maar het totaal bedrag wordt niet geupdate nadat iemand zich heeft ingeschreven. Ik moet dan eerst moet het lookup pijltje klikken van de cursusprijs en dat update hij het totaalbedrag. Een CurrForm.UPDATE() op het veld totaal bedrag werkt niet. Waar kan dit aan liggen?Navision versie: NL 3.70.B0
-
Cursusprijs is dus een flowfield op de cursuskop? Dan moet je voordat je in tabel cursuskop in code gebruik kunt maken van de waarde in Cursusprijs CALCFIELDS(Cursusprijs); plaatsen.
En je hebt volgens mij alleen in de OnValidate van het veld "Aantal inschrijvingen" de volgende regels code:CALCFIELDS(Cursusprijs); "Totaal bedrag" := Cursusprijs * "Aantal inschrijvingen";
Tino Ruijs
Microsoft Dynamics NAV specialist0 -
Je gaf net antwoord na mijn edit. De berekening werkt wel maar wordt niet geupdate na een inschrijving van een deelnemer. Ik moet eerst op de lookup pijl klikken die bij het selecteren van het cursusprijs veld verschijnt. Het totaal bedrag wordt dan (eventueel opnieuw) berekend.Navision versie: NL 3.70.B0
-
Heb je wel de functie aangeroepen vanuit de OnValidate van Aantal Inschrijvingen?
Tino Ruijs
Microsoft Dynamics NAV specialist0 -
Ik roep de functie (BerekenTotaalBedrag;) aan bij het veld aantal inschrijvingen en bij het veld cursusprijs. Ik had de functie ook aangeropen bij onLookup. Dan wordt de berekening uitgevoerd op het moment dat ik op het lookup pijltje klik. De berekening wordt niet automatisch gedaan.Navision versie: NL 3.70.B0
-
AppieHeijn wrote:Ik roep de functie (BerekenTotaalBedrag;) aan bij het veld aantal inschrijvingen en bij het veld cursusprijs. Ik had de functie ook aangeropen bij onLookup. Dan wordt de berekening uitgevoerd op het moment dat ik op het lookup pijltje klik. De berekening wordt niet automatisch gedaan.
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 specialist0 -
De berekening staat onder BerekenTotaal bedrag:
Totaalbedrag := Aantalinschrijvingen * cursusprijs;
Onder de onValidate van aantal inschrijvingen, Cursusprijs en totaalbedrag staatBerekenTotaalBedrag;
Navision versie: NL 3.70.B0 -
AppieHeijn wrote:De berekening staat onder BerekenTotaal bedrag:
Totaalbedrag := Aantalinschrijvingen * cursusprijs;
Onder de onValidate van aantal inschrijvingen, Cursusprijs en totaalbedrag staatBerekenTotaalBedrag;
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 specialist0 -
Dit werkt ook niet. Als ik de BerekenTotaalBedrag; onder de lookup zet van cursusprijs dan wordt de berekening wel gemaakt en het totaal bedrag getoond in het totaal bedrag veld.Navision versie: NL 3.70.B0
-
Ik denk dat je het beste naar soortgelijke oplossing kunt kijken in standaard NAV. Kijk daar hoe het gemaakt is en vergelijk het met jouw oplossing.
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 specialist0 -
Daarom heb ik een ander topic geopend met de laatste dingen die ik nog moet maken. Als ik die 5 punten heb dan is in principe de module af.Navision versie: NL 3.70.B0
-
AppieHeijn wrote:Daarom heb ik een ander topic geopend met de laatste dingen die ik nog moet maken. Als ik die 5 punten heb dan is in principe de module af.
8)
Tino Ruijs
Microsoft Dynamics NAV specialist0 -
Ik heb er al weer een vraag in het andere topic... :roll:Navision versie: NL 3.70.B0
Categories
- All Categories
- 73 General
- 73 Announcements
- 66.6K Microsoft Dynamics NAV
- 18.7K NAV Three Tier
- 38.4K NAV/Navision Classic Client
- 3.6K Navision Attain
- 2.4K Navision Financials
- 116 Navision DOS
- 851 Navision e-Commerce
- 1K NAV Tips & Tricks
- 772 NAV Dutch speaking only
- 617 NAV Courses, Exams & Certification
- 2K Microsoft Dynamics-Other
- 1.5K Dynamics AX
- 320 Dynamics CRM
- 111 Dynamics GP
- 10 Dynamics SL
- 1.5K Other
- 990 SQL General
- 383 SQL Performance
- 34 SQL Tips & Tricks
- 35 Design Patterns (General & Best Practices)
- 1 Architectural Patterns
- 10 Design Patterns
- 5 Implementation Patterns
- 53 3rd Party Products, Services & Events
- 1.6K General
- 1.1K General Chat
- 1.6K Website
- 83 Testing
- 1.2K Download section
- 23 How Tos section
- 252 Feedback
- 12 NAV TechDays 2013 Sessions
- 13 NAV TechDays 2012 Sessions