type conversie: decimal * text

Adriaan2kAdriaan2k Member Posts: 159
edited 2007-07-23 in NAV Dutch speaking only
Hallo, kan iemand mij helpen met hetvolgende: ik heb al eerder een vraag gesteld mbt afronding, maar nu loop ik tegen onderstaande probleem aan. In een report dient te komen:


IF ((Item."Maximum Inventory"-berekend)/Item."Order Multiple")>1 THEN
voorstel:=Item."Order Multiple"* format((Item."Maximum Inventory"-berekend)/Item."Order Multiple",0,'<decimals,0>');

Het betreft een report voor een voorstel inkoop/produktie. In de formule
dient het stukje (Item."Maximum Inventory"-berekend)/Item."Order Multiple") afgerond te worden op een heel getal zonder decimalen. Als ik echter de FORMAT gebruik die ik op mijn eerdere post heb gekregen, dan komt de foutmelding: Type conversie: Decimal * Text.

Kan iemand mij hierbij helpen ? Alvast bedankt. :?
mvg Adriaan

Comments

  • AlbertvhAlbertvh Member Posts: 516
    Hi Adrian,

    Probeer het zo
    voorstel:=Item."Order Multiple"* ROUND((Item."Maximum Inventory"-berekend)/Item."Order Multiple",1); 
    
    
  • Adriaan2kAdriaan2k Member Posts: 159
    Albertvh wrote:
    Hi Adrian,

    Probeer het zo
    voorstel:=Item."Order Multiple"* ROUND((Item."Maximum Inventory"-berekend)/Item."Order Multiple",1); 
    
    
    Bedankt voor de tip ! ik zat op het verkeerde spoor. Ik heb zelf nog gevonden dat ik naar boven kan afronden door ,1,'>' te typen. Het werkt.
    mvg Adriaan
  • Adriaan2kAdriaan2k Member Posts: 159
    Kun je me misschien helpen waarom onderstaande code het niet doet ? ik heb dit in een report maar ik krijg het niet voor elkaar dat de waarde wordt berekend als min.bestelaanta en max.bestelaantal 0 zijn. Dan blijft mijn berekende voorstel ook 0. Ik heb onderstaande als code:


    //


    IF berekend < Item."Reorder Point" THEN IF Item."Order Multiple"=0
    THEN BEGIN

    IF Item."Minimum Order Quantity"+
    Item."Maximum Inventory"+ Item."Order Multiple"=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."Maximum Order Quantity"<(Item."Maximum Inventory"-berekend) THEN
    voorstel:=Item."Maximum Order Quantity";

    END;

    IF berekend < Item."Reorder Point" THEN IF Item."Order Multiple"<>0
    THEN BEGIN
    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;


    //

    Mocht je hier tips voor hebben, dan houd ik me graag aanbevolen.
    mvg Adriaan
  • AlbertvhAlbertvh Member Posts: 516
    Hi Adriaan,

    Ik zou het zo doen want je doet het
    IF berekend < Item."Reorder Point" 2 maal en de Item."Order Multiple"
    is 0 of niet.
    IF berekend < Item."Reorder Point" THEN
      IF Item."Order Multiple" = 0 THEN BEGIN 
        IF Item."Minimum Order Quantity" + Item."Maximum Inventory"+ Item."Order Multiple" = 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."Maximum Order Quantity" < (Item."Maximum Inventory"-berekend) THEN
              voorstel:=Item."Maximum Order Quantity";
      END else BEGIN
        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;
    

    Albert
  • Adriaan2kAdriaan2k Member Posts: 159
    Ha Albert, ontzettend bedankt voor je reactie. Ik heb dit getest en heb nog 2 aanpassingen gedaan waarmee het report nu precies berekent wat ik wil.
    Zie onderstaand het eindresultaat:


    //

    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" = 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."Maximum Order Quantity" < (Item."Maximum Inventory"-berekend) THEN
    voorstel:=Item."Maximum Order Quantity"
    ELSE
    voorstel:= Item."Maximum Inventory" - berekend;
    END else BEGIN
    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;


    //

    Nogmaals erg bedankt voor je hulp. Ik hoop ook anderen op deze manier te kunnen gaan helpen.

    ps. ik weet niet hoe je het mooie witte scherm met de groene letters en inspring op het forum krijgt, ik heb gewoon copy en paste gedaan vanuit de Nav code.
    mvg Adriaan
  • AlbertvhAlbertvh Member Posts: 516
    Hi Adriaan,
    Blij dat ik je kon helpen. :D

    Om het witte scherm te krijgen druk op het Code knopje in het Post reply scherm.


    Albert
Sign In or Register to comment.