Aantal vragen mbt Navision

AppieHeijnAppieHeijn Member Posts: 34
edited 2008-05-20 in NAV Dutch speaking only
Nog steeds ben ik bezig met Navision om een bepaalde "module" te maken. Nu heb ik nog een aantal verschillende vragen:
1. De som die ik in een ander topic heb gevraagd wil ik nu nog weer andere dingen mee doen. De uitkomst van een som staat als flowfield in het scherm cursuskop. Dit veld moet x het aantal inschrijvingen gedaan worden. De berekening werkt wel maar ik moet op een lookup pijl klikken om de uitkomst te krijgen in het veld totaal bedrag.http://www.mibuso.com/forum/viewtopic.php?t=25666
2. Bij een cursus kan een maximum aantal inschrijvingen opgegeven worden. Hoe zorg ik ervoor dat het maximum aantal inschrijvingen niet overschreven kan worden?
3. Ik moet een rapport maken waarbij ik gegevens nodig heb uit meerdere tabellen. Standaard rapport maken vanuit 1 tabel lukt wel.
4. Ook moet ik een factuur kunnen maken waarop er gekeken wordt welke personen meegedaan hebben aan een cursus. Elke klant geeft een bedrijfsnr op.
5. Een export maken naar een .csv bestand met gegevens vanuit meerdere tabellen.

Ik weet dat het veel vragen zijn. Maar ik moet het maken voor school en heb geen enkele evaring of cursussen gehad over navision. Alleen een 548 pagina's tellende pdf heb ik tot mijn beschikking... :?
Navision versie: NL 3.70.B

Comments

  • tinoruijstinoruijs Member Posts: 1,226
    1. zie andere post.
    2. If aantal > max aantal then ERROR('Mag niet!');
    3. Neem een kijkje bij andere rapporten in Navision waar meerdere tabellen gebruikt worden.
    4. Idem als 3.
    5. Even zoeken op dit forum en je zult veel posts vinden.

    Je hebt natuurlijk ook Mibuso en Dynamicsuser.net ter beschikking. Op beide sites is veel informatie te vinden. :wink:

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Punt 2: Moet ik dit bij het veld aantal inschrijvingen neerzetten? Maar onder welk punt? Ik heb nu op het veld aantal inschrijvingen onder onValidate IF Aantalinschrijvingen > Maxaantalinschrijvingen THEN ERROR('Cursus is volgeboekt!');
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Punt 2: Moet ik dit bij het veld aantal inschrijvingen neerzetten? Maar onder welk punt? Ik heb nu op het veld aantal inschrijvingen onder onValidate IF Aantalinschrijvingen > Maxaantalinschrijvingen THEN ERROR('Cursus is volgeboekt!');

    Als max inschrijvingen in tabel cursus staat, moet je eerst tabel cursus ophalen:
    recCursus.GET(cursuscode);
    

    En dan:
    IF Aantalinschrijvingen > recCursus.Maxaantalinschrijvingen THEN ERROR('Cursus is volgeboekt!');
    

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Het maximum aantal inschrijvingen staat in de tabel cursus. In de tabel cursuskop staat het veld aantal inschrijvingen. Het veld aantal inschrijvingen is een count van het aantal klanten waar bijvoorbeeld cursuscode 001 is.
    Tabel cursus - maxaantalinschrijvingen
    Tabel cursus - aantalinschrijvingen

    Moet ik de variabele recCursus defineren?
    Deze:
                           recCursus.GET(cursuscode);
                           IF Aantalinschrijvingen > recCursus.Maxaantalinschrijvingen THEN ERROR('Cursus is volgeboekt!');
    
    zet ik in de tabel cursuskop onder de onValidate van aantalinschrijvingen
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Moet ik de variabele recCursus defineren?

    Ja.

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Wat moet het datatype zijn? Als ik niets instel krijg ik een meldig dat het een type record zijn. Maar als ik dat er van maar krijg ik de melding dat de tabledata 0 niet aanwezig is.
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Wat moet het datatype zijn? Als ik niets instel krijg ik een meldig dat het een type record zijn. Maar als ik dat er van maar krijg ik de melding dat de tabledata 0 niet aanwezig is.

    datatype record. Subtype Cursus.

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Oké dit werkt nu. Alleen als ik dus het aantal inschrijvingen op 12 zet krijg ik de melding dat de cursus is volgeboekt. Ik kan wel gewoon meer klanten koppelen aan de cursus in de formulieren.
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    Dan moet je op het moment van koppelen van een klant controleren of de cursus al volgeboekt is.

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Welke actie moet ik daarvoor gebruiken? en waar moet ik die plaatsen?
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Welke actie moet ik daarvoor gebruiken? en waar moet ik die plaatsen?

    Hoe koppel je de klant aan een cursus? Als dat een nieuw record in tabel "klant-cursus" is, moet je in de OnInsert-trigger van die tabel controleren of de cursus vol is.
    recCursus.GET(cursuscode);
    recCursus.CALCFIELDS(aantal inschrijvingen);
    if recCursus.aantal inschrijvingen = recCursus.Max then error(vol);
    

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Als de klant geregistreerd wordt geeft hij een cursuscode op. Deze code wordt geteld in het veld aantal inschrijvingen. Dat veld staat in de cursuskop. In de tabel cursus wordt het maximum aantal inschrijvingen opgegeven. moet ik dan een nieuw veld aanmaken in de klant waar ik de bovenstaande code inzet?
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Als de klant geregistreerd wordt geeft hij een cursuscode op. Deze code wordt geteld in het veld aantal inschrijvingen. Dat veld staat in de cursuskop. In de tabel cursus wordt het maximum aantal inschrijvingen opgegeven. moet ik dan een nieuw veld aanmaken in de klant waar ik de bovenstaande code inzet?

    In de OnValidate van de cursuscode moet je controleren of "aantal inschrijvingen" gelijk is aan "max aantal inschrijvingen".
    if recCursusKop.aantal inschrijvingen = recCursus.Max then error(vol);
    

    Vooraf aan deze regel moet je de benodigde tabellen ophalen (dmv .GET of FIND('-')).

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    Ik heb dit in de tabel klant gezet:
    recCursus.GET(Cursuscode); 
    recCursuskop.CALCFIELDS(Aantalinschrijvingen);
    IF recCursuskop.Aantalinschrijvingen = recCursus.Maxaantalinschrijvingen THEN ERROR('vol');
    

    Maar helaas werkt dit niet.... :(
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Ik heb dit in de tabel klant gezet:
    recCursus.GET(Cursuscode); 
    recCursuskop.CALCFIELDS(Aantalinschrijvingen);
    IF recCursuskop.Aantalinschrijvingen = recCursus.Maxaantalinschrijvingen THEN ERROR('vol');
    

    Maar helaas werkt dit niet.... :(

    Je hebt ook een recCursuskop.GET(cursuscode); nodig.

    Je kunt trouwens beter een beschrijving geven van wat er niet werkt; krijg je een foutmelding? Compileert het niet?

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • azerty74azerty74 Member Posts: 82
    Ik denk dat het voor jou zeer interessant kan zijn om de training "C/Side Introduction in Microsoft Dynamics NAV 5.0 - Course 8874" eens te volgen. :mrgreen:
    Enerzijds omdat je toch enkele basics mist en anderzijds omdat er in deze training een gelijkaardige solution wordt maakt.
    Debugging is twice as hard as writing code. Therefore if you write the code as cleverly as possible you are by definition not smart enough to debug it.
  • AppieHeijnAppieHeijn Member Posts: 34
    @azerty74:
    Ik moet dit project voor school doen. Vanuit school geven ze geen cursussen o.i.d.

    Het werkt! :D:D Ik heb de key ook veranderd in de cursuskop naar cursuscode. Dit was namelijk kopnr. Met het invoegen van de laatste regel pakte hij ipv cursuscode het kopnr.
    Alleen is het nog zo als ik dus nog een extra klant wil inschrijven terwijl de cursus vol is krijg ik dus netjes de melding. Maar als ik dan op OK klik sluit hij het form af... Is dit standaard?

    Mijn dank is wederom enorm groot =D>
    Navision versie: NL 3.70.B
  • lyotlyot Member Posts: 202
    de cursus vol is krijg ik dus netjes de melding. Maar als ik dan op OK klik sluit hij het form af... Is dit standaard?

    Ja, vervang anders de ERROR(...) door een MESSAGE(....)
  • lyotlyot Member Posts: 202
    AppieHeijn wrote:
    de cursus vol is krijg ik dus netjes de melding. Maar als ik dan op OK klik sluit hij het form af... Is dit standaard?

    Ja, vervang anders de ERROR(...) door een MESSAGE(....)
  • AppieHeijnAppieHeijn Member Posts: 34
    Als ik er massage van maak, dan krijg ik netjes de melding maar hij schrijft vervolgens de persoon gewoon in :( . Bij een error gebeurt dit niet.
    Navision versie: NL 3.70.B
  • tinoruijstinoruijs Member Posts: 1,226
    AppieHeijn wrote:
    Als ik er massage van maak, dan krijg ik netjes de melding maar hij schrijft vervolgens de persoon gewoon in :( . Bij een error gebeurt dit niet.

    Massage? :lol:

    Klopt. Dat wil je toch ook? Niet?

    Tino Ruijs
    Microsoft Dynamics NAV specialist
  • AppieHeijnAppieHeijn Member Posts: 34
    't Is een type foutje ik bedoel natuurlijk message :D
    Navision versie: NL 3.70.B
Sign In or Register to comment.