Count saleslines based on Salesperson ?

beckindenmarkbeckindenmark Member Posts: 33
Hi guy´s

I need to count saleslines for each salesperson, but this code gives wrong result. If I count salesheader result is correct, so I think it´s the REPEAT that make my head hurt :-)

Hopefully a frindly NAV guru could help me out ?

Here is my code (NAV 5.0)

rSalesHeader.RESET;
rSalesLine.RESET;

salesFilter := "Salesperson/Purchaser".Code;

rSalesHeader.SETRANGE(rSalesHeader."Document Type",rSalesHeader."Document Type"::Order);
rSalesHeader.SETFILTER(rSalesHeader."Order Date",datefilter);
rSalesHeader.SETRANGE(rSalesHeader."Salesperson Code",salesFilter);
IF rSalesHeader.FINDSET THEN
REPEAT
rSalesLine.SETRANGE(rSalesLine."Document No.",rSalesHeader."No.");
rSalesLine.SETRANGE(rSalesLine.Type,rSalesLine.Type::Item);
rSalesLine.SETRANGE(rSalesLine."Quantity Shipped",0);
ok := rSalesLine.GET;
CountLines += rSalesLine.COUNT;

UNTIL rSalesHeader.NEXT = 0;

OrderLinesQty := CountLines;

Answers

  • mohana_cse06mohana_cse06 Member Posts: 5,504
    Try this code(not tested)
    rSalesHeader.RESET;
    rSalesLine.RESET;
    
    salesFilter := "Salesperson/Purchaser".Code;
    
    rSalesHeader.SETRANGE(rSalesHeader."Document Type",rSalesHeader."Document Type"::Order);
    rSalesHeader.SETFILTER(rSalesHeader."Order Date",datefilter);
    rSalesHeader.SETRANGE(rSalesHeader."Salesperson Code",salesFilter);
    IF rSalesHeader.FINDSET THEN
    REPEAT
    rSalesLine.SETRANGE(rSalesLine."Document No.",rSalesHeader."No.");
    rSalesLine.SETRANGE(rSalesLine.Type,rSalesLine.Type::Item);
    rSalesLine.SETRANGE(rSalesLine."Quantity Shipped",0);
    IF rSalesLine.FINDSET THEN
      REPEAT 
        CountLines += 1;
      UNTIL rSalesLine.next = 0;
    UNTIL rSalesHeader.NEXT = 0;
    
    OrderLinesQty := CountLines;
    
  • GRIZZLYGRIZZLY Member Posts: 127
    Try to delete line
    ok := rSalesLine.GET;
    
    from your code.
    Sincerely yours, GRIZZLY
    Follow my blog at http://x-dynamics.blogspot.com
  • beckindenmarkbeckindenmark Member Posts: 33
    I solved it by adding these two in AfterGetRecord. At first I have them in BeforeGetRecord #-o

    CountLines := 0;
    OrderLinesQty := 0;

    //Lars
Sign In or Register to comment.