[solved] puzzeltje code omzetten

Adriaan2kAdriaan2k Member Posts: 159
edited 2007-11-09 in NAV Dutch speaking only
wie kan mij helpen met het volgende:
voor de logistieke mensen is een report gemaakt met een aantal voorwaarden. Het report toont echter niet de juiste waarden.

Ik ken de voorwaarden maar mijn code klopt niet.
Kan iemand de onderstaande code vertalen naar gewone taal ?
misschien dat ik dan kan achterhalen waar de fout zit.

 IF berekend <= Item."Reorder Point" THEN
  IF Item."Order Multiple" = 0 THEN BEGIN
    IF Item."Minimum Order Quantity" + Item."Maximum Order Quantity" + Item."Order Multiple" + Item."Reorder Quantity" = 0 THEN
      voorstel:= Item."Maximum Inventory" - berekend
    ELSE
      IF Item."Minimum Order Quantity"  > (Item."Maximum Inventory"-berekend) THEN
        voorstel:=Item."Minimum Order Quantity"
         ELSE
              IF Item."Reorder Quantity"<>0 THEN
              voorstel:=Item."Reorder Quantity"
      ELSE
              IF Item."Maximum Order Quantity"<>0 THEN
        IF Item."Maximum Order Quantity" < (Item."Maximum Inventory"-berekend) THEN
          voorstel:=Item."Maximum Order Quantity"
      ELSE
         voorstel:= Item."Maximum Inventory" - berekend;
  END ELSE BEGIN
  IF Item."Order Multiple"<>0 THEN
        IF ((Item."Maximum Inventory" - berekend) / Item."Order Multiple") > 1 THEN
            voorstel:=Item."Order Multiple" * ROUND((Item."Maximum Inventory"-berekend) / Item."Order Multiple",1,'>')
         ELSE
        IF 1 < ((Item."Maximum Inventory"-berekend) / Item."Order Multiple") THEN
           voorstel:=Item."Order Multiple"
  END;

waarbij het veld 'berekend' een waarde heeft die klopt uit een eerdere
berekening.

Misschien dat er ergens een verkeerde 'break' in de code zit ?

graag jullie hulp.
mvg Adriaan

Comments

  • fverkelfverkel Member Posts: 66
    Ik heb in het verleden wel eens problemen gehad met geneste IF-constructies die opgelost werden door bij elke IF een BEGIN te gebruiken.
    --> Probeer het eens op die manier.

    Als Navision een ELSE tegenkomt, zou Navision die wel eens kunnen koppelen aan een andere IF dan jij zou verwachten.
    Keep It Simple and Stupid (KISS), but never oversimplify.
  • fverkelfverkel Member Posts: 66
    Adriaan, ik heb er eens goed naar gekeken.
    Onderstaand een andere benadering. Niet alleen zijn fouten er uit gehaald, de functionaliteit is hiermee ook anders.

    Het ging o.a. fout als (Item."Order Multiple"<>0)
    EN
    (Item."Maximum Inventory" - berekend) / Item."Order Multiple") = 1

    Ook werd geen rekening gehouden met minimum en maximum als Item."Order Multiple" gevuld was. Ik vermoed dat dat niet de bedoeling was.
    voorstel := 0;
    IF berekend <= Item."Reorder Point" THEN BEGIN
      voorstel := Item."Maximum Inventory" - berekend;
    
      IF Item."Order Multiple" <> 0 THEN
        voorstel := ROUND(voorstel, Item."Order Multiple", '>');
    
      IF (Item."Minimum Order Quantity" <> 0) AND (voorstel < Item."Minimum Order Quantity") THEN
        voorstel := Item."Minimum Order Quantity";
    
      IF (Item."Maximum Order Quantity" <> 0) AND (voorstel > Item."Maximum Order Quantity") THEN
        voorstel := Item."Maximum Order Quantity";
    
      IF Item."Reorder Quantity" <> 0 THEN 
        voorstel := Item."Reorder Quantity";
    END;
    
    Keep It Simple and Stupid (KISS), but never oversimplify.
  • Adriaan2kAdriaan2k Member Posts: 159
    fverkel wrote:
    Adriaan, ik heb er eens goed naar gekeken.
    Onderstaand een andere benadering. Niet alleen zijn fouten er uit gehaald, de functionaliteit is hiermee ook anders.

    Het ging o.a. fout als (Item."Order Multiple"<>0)
    EN
    (Item."Maximum Inventory" - berekend) / Item."Order Multiple") = 1

    Ook werd geen rekening gehouden met minimum en maximum als Item."Order Multiple" gevuld was. Ik vermoed dat dat niet de bedoeling was.

    Hoi fverkel

    dat klopt, daar liep ik idd tegenaan. Dit ziet er veel overzichtelijker uit, ik ga het proberen. Het lijkt op het eerste gezicht wel of er minder voorwaarden in zitten, maar ik laat je de test uitkomst weten. Alvast bedankt !
    mvg Adriaan
  • Adriaan2kAdriaan2k Member Posts: 159
    Adriaan2k wrote:
    Hoi fverkel



    dat klopt, daar liep ik idd tegenaan. Dit ziet er veel overzichtelijker uit, ik ga het proberen. Het lijkt op het eerste gezicht wel of er minder voorwaarden in zitten, maar ik laat je de test uitkomst weten. Alvast bedankt !

    bij deze de testresultaten: perfect !
    nogmaals mijn dank.
    mvg Adriaan
Sign In or Register to comment.