Multiple line of items of PO on the report not printing?
mdsr
Member Posts: 163
Hi all,
I have to create custom Purchase order report in which multiple copies of PO report.
I have done that using page loop and copy loop but one poblem is
PO having multiple item say 4 item lines then report only showing first line item
any solution so i get all four items printed on report
I have to create custom Purchase order report in which multiple copies of PO report.
I have done that using page loop and copy loop but one poblem is
PO having multiple item say 4 item lines then report only showing first line item
any solution so i get all four items printed on report
Documentation()
OnInitReport()
OnPreReport()
RecCompany.GET();
RecCompany.CALCFIELDS(RecCompany.Picture);
RecCountry.RESET;
RecCountry.SETRANGE(Code,RecCompany."Country/Region Code");
IF RecCountry.FINDFIRST THEN
CompanyCountry:=RecCountry.Name;
OnPostReport()
Purchase Header - OnPreDataItem()
Purchase Header - OnAfterGetRecord()
"Purchase Header".CALCFIELDS("Amount to Vendor");
Vendors.GET("Purchase Header"."Buy-from Vendor No.");
RecNoseries.GET("Purchase Header"."No. Series");
i:=0;
PurchCmmntLine.RESET;
PurchCmmntLine.SETRANGE(PurchCmmntLine."Document Type","Purchase Header"."Document Type");
PurchCmmntLine.SETRANGE(PurchCmmntLine."No.","Purchase Header"."No.");
IF PurchCmmntLine.FINDFIRST THEN REPEAT
i +=1;
POComments[i]+=PurchCmmntLine.Comment;
UNTIL PurchCmmntLine.NEXT=0;
CLEAR(vStateCode_Location);
CLEAR(vStateName_Location);
CLEAR(LocationName);
CLEAR(LocationName_Add1);
CLEAR(LocationName_Add1);
CLEAR(LocationName_city);
CLEAR(LocationName_GSTIN);
CLEAR(LocationName_Pincode);
CLEAR(LocationName_Email);
CLEAR(LocationName_homepage);
RecLocation.RESET;
RecLocation.SETRANGE(Code,"Location Code");
IF RecLocation.FINDFIRST THEN BEGIN
LocationName:=RecLocation.Name;
LocationName_Add1:=RecLocation.Address;
LocationName_Add2:=RecLocation."Address 2";
LocationName_city:=RecLocation.City;
LocationName_GSTIN:=RecLocation."GST Registration No.";
LocationName_Pincode:=RecLocation."Post Code";
LocationName_Email:=RecLocation."E-Mail";
LocationName_homepage:=RecLocation."Home Page";
RecState.RESET;
RecState.SETRANGE(Code,RecLocation."State Code");
IF RecState.FINDFIRST THEN BEGIN
vStateName_Location := RecState.Description;
vStateCode_Location := RecState."State Code (GST Reg. No.)";
END;
END;
CLEAR(ShippmentMethod_Desc);
RecShippmentMethod.RESET;
RecShippmentMethod.SETRANGE(RecShippmentMethod.Code,"Shipment Method Code");
IF RecShippmentMethod.FINDFIRST THEN
ShippmentMethod_Desc:=RecShippmentMethod.Description;
CLEAR(Payment_Desc);
RecPaymentTer.RESET;
RecPaymentTer.SETRANGE(RecPaymentTer.Code,"Purchase Header"."Payment Terms Code");
IF RecPaymentTer.FINDFIRST THEN
Payment_Desc:=RecPaymentTer.Description;
Purchase Header - OnPostDataItem()
CopyLoop - OnPreDataItem()
NoOfLoops := ABS(NoOfCopies) + 1;
IF NoOfLoops <= 0 THEN
NoOfLoops := 1;
CopyText := '';
SETRANGE(Number,1,NoOfLoops);
OutputNo := 1;
CopyLoop - OnAfterGetRecord()
IF Number > 1 THEN BEGIN
OutputNo += 1;
END;
IF OutputNo=1 THEN
BEGIN
CopyText:=Text001;
END;
IF OutputNo=2 THEN
BEGIN
CopyText:=Text002;
END;
IF OutputNo=3 THEN
BEGIN
CopyText:=Text003;
END;
IF OutputNo>=4 THEN
BEGIN
CopyText:=Text004;
END;
CurrReport.PAGENO := 1;
CopyLoop - OnPostDataItem()
PageLoop - OnPreDataItem()
PageLoop - OnAfterGetRecord()
PageLoop - OnPostDataItem()
Purchase Line - OnPreDataItem()
"Sr.No":=0;
Purchase Line - OnAfterGetRecord()
MESSAGE('%1',"Purchase Line"."No.");
"Sr.No"+=1;
TotalAmt:=0; TotalGst:=0;TotalAmt1:=0;RoundValue:=0;
RecPurchaseLine.RESET;
RecPurchaseLine.SETRANGE(RecPurchaseLine."Document No.","Purchase Line"."Document No.");
IF RecPurchaseLine.FINDSET THEN BEGIN
REPEAT
TotalAmt+=RecPurchaseLine.Quantity*RecPurchaseLine."Unit Cost";
TotalGst+=RecPurchaseLine."Total GST Amount";
UNTIL RecPurchaseLine.NEXT=0;
END;
CLEAR(GST1);CLEAR(GST_Amt);
DetailGDTEntryBuffer.RESET;
DetailGDTEntryBuffer.SETRANGE("Document No.","Purchase Line"."Document No.");
DetailGDTEntryBuffer.SETRANGE("No.","No.");
DetailGDTEntryBuffer.SETRANGE("Document Type",DetailGDTEntryBuffer."Document Type"::Order);
DetailGDTEntryBuffer.SETRANGE("Transaction Type",DetailGDTEntryBuffer."Transaction Type"::Purchase);
DetailGDTEntryBuffer.SETRANGE("Line No.","Purchase Line"."Line No.");
IF DetailGDTEntryBuffer.FINDFIRST THEN
REPEAT
IF DetailGDTEntryBuffer."GST Component Code"='CGST' THEN BEGIN
GST1[1]:=DetailGDTEntryBuffer."GST %";
GST_Amt[1]:=DetailGDTEntryBuffer."GST Amount";
END;
IF DetailGDTEntryBuffer."GST Component Code"='SGST' THEN BEGIN
GST1[2]:=DetailGDTEntryBuffer."GST %";
GST_Amt[2]:=DetailGDTEntryBuffer."GST Amount";
END;
IF(DetailGDTEntryBuffer."GST Component Code"='IGST')OR(DetailGDTEntryBuffer."GST Component Code"='UTGST') THEN BEGIN
GST1[3]:=DetailGDTEntryBuffer."GST %";
GST_Amt[3]:=DetailGDTEntryBuffer."GST Amount";
END;
UNTIL DetailGDTEntryBuffer.NEXT=0;
TotalAmt1:=ROUND((TotalAmt+TotalGst),1,'=');
RoundValue:=TotalAmt1-(TotalAmt+TotalGst);
CheckReport.InitTextVariable;
CheckReport.FormatNoText(AmountInWords,TotalAmt1,'');
Purchase Line - OnPostDataItem()
0
Answers
-
is this difficult?0
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