Calculat the averge cost
ultra_chardo
Member Posts: 2
I created a function that calculates the average cost of an article this report works as follows:
1: I set "Startdate" and "enddate"
2: I select the item I want to have its average cost during this period
but the problem is that my function looks Document No. as purchase during select it finds no purchase well gives me a Run-Time Error 0 / 0
Here is my source code:
GetPMP(VAR ItemNo : Code[25];VAR StartDate : Date;VAR EndDate : Date) : Decimal
ItemLedgerEntry.SETRANGE(ItemLedgerEntry."Posting Date",StartDate,EndDate) ;
ItemLedgerEntry.SETFILTER(ItemLedgerEntry."Item No.",'%1',ItemNo);
ItemLedgerEntry.SETFILTER(ItemLedgerEntry."Entry Type",'%1',ItemLedgerEntry."Entry Type"::Purchase);
ItemLedgerEntry.SETFILTER(ItemLedgerEntry."Document No.",'%1','AR*');
IF ItemLedgerEntry.FINDFIRST THEN
SumQuantity:=0 ;
SumSales:=0;
REPEAT
ItemLedgerEntry.CALCFIELDS(ItemLedgerEntry."Cost Amount (Actual)");
BEGIN
SumQuantity:=SumQuantity+ItemLedgerEntry.Quantity;
MESSAGE(FORMAT(SumQuantity));
SumSales:=SumSales+ItemLedgerEntry."Cost Amount (Actual)";
MESSAGE(FORMAT(ItemLedgerEntry."Cost Amount (Actual)"));
END;
UNTIL ItemLedgerEntry.NEXT=0;
Coust:=SumSales/SumQuantity;
EXIT(Coust)
I dont know what a problem ??
see my code source and tell me the solution thanks for you
1: I set "Startdate" and "enddate"
2: I select the item I want to have its average cost during this period
but the problem is that my function looks Document No. as purchase during select it finds no purchase well gives me a Run-Time Error 0 / 0
Here is my source code:
GetPMP(VAR ItemNo : Code[25];VAR StartDate : Date;VAR EndDate : Date) : Decimal
ItemLedgerEntry.SETRANGE(ItemLedgerEntry."Posting Date",StartDate,EndDate) ;
ItemLedgerEntry.SETFILTER(ItemLedgerEntry."Item No.",'%1',ItemNo);
ItemLedgerEntry.SETFILTER(ItemLedgerEntry."Entry Type",'%1',ItemLedgerEntry."Entry Type"::Purchase);
ItemLedgerEntry.SETFILTER(ItemLedgerEntry."Document No.",'%1','AR*');
IF ItemLedgerEntry.FINDFIRST THEN
SumQuantity:=0 ;
SumSales:=0;
REPEAT
ItemLedgerEntry.CALCFIELDS(ItemLedgerEntry."Cost Amount (Actual)");
BEGIN
SumQuantity:=SumQuantity+ItemLedgerEntry.Quantity;
MESSAGE(FORMAT(SumQuantity));
SumSales:=SumSales+ItemLedgerEntry."Cost Amount (Actual)";
MESSAGE(FORMAT(ItemLedgerEntry."Cost Amount (Actual)"));
END;
UNTIL ItemLedgerEntry.NEXT=0;
Coust:=SumSales/SumQuantity;
EXIT(Coust)
I dont know what a problem ??
see my code source and tell me the solution thanks for you
0
Comments
-
Your usage of FINDFIRST, BEGIN, REPEAT is wrong...NAV - Norton Anti Virus
ERP Consultant (not just Navision) & Navision challenger0
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
- 322 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