Purchase Order Report in D365 BC Format and Development

Purchase Order Report in D365 BC:

(1) Development of New report already explained in the previous blog. In this blog, we will develop a new “Purchase Order Report”. Follow the below screenshot and develop a report for the client. The report includes- No. of Copies and Document No. filter.

purchase order report codeunit 01
Purchase Order Report Codeunit 02
Purchase Order Report in d365 bc Codeunit 03
Purchase Order Report in D365 BC Codeunit 04
Purchase Order Report in D365 BC Format Codeunit 05
Purchase Order Report in D365 BC Codeunit 06
Purchase Order Report in D365 BC Codeunit 07
Purchase Order Report in D365 BC Codeunit 08
Purchase Order Report in D365 BC Codeunit 09
Purchase Order Report in D365 BC Codeunit 10
Purchase Order Report in D365 BC Codeunit 11
Purchase Order Report in D365 BC Codeunit 12
Purchase Order Report in D365 BC Codeunit 13
Purchase Order Report in D365 BC Codeunit 14
Purchase Order Report in D365 BC Codeunit 15
Purchase Order Report in D365 BC Codeunit 16
Purchase Order Report in D365 BC Codeunit 17
Purchase Order Report in D365 BC Codeunit 18

(2) RDLC Format for designing.

RDLC Format for designing purchse order report

(3) After publish and attached. See the result in the below screenshot.

purchase order report
Purchase Order Report in Business Central

Source Code:

report 50001 “Purchase Order Report”
{
 
UsageCategory = Administration;
ApplicationArea = All;
DefaultLayout = RDLC;
RDLCLayout = ‘./PurchaseOrderReport.rdl’;
 
    dataset
    {
dataitem(Integer; Integer)
        {
DataItemTableView = SORTING(“Number”);
column(Number_Copies; Number)
            {
 
            }
column(Copy_Text; CopyText)
            {
 
            }
dataitem(“Purchase Header”; “Purchase Header”)
            {
DataItemTableView = SORTING(“No.”);
DataItemLinkReference = Integer;
column(CompanyInformation_Name; CompanyInformation.Name)
                {
 
                }
column(CompanyInformation_Picture; CompanyInformation.Picture)
                {
 
                }
column(CompanyInformation_POSign; CompanyInformation.POSignature)
                {
 
                }
 
column(CompanyInformation_Address; CompanyInformation.Address)
                {
 
                }
column(CompanyInformation_Address_2; CompanyInformation.”Address 2″)
                {
 
                }
column(CompanyInformation_Post_Code; CompanyInformation.”Post Code”)
                {
 
                }
column(CompanyInformation_City_Code; CompanyInformation.”City”)
                {
 
                }
column(CompanyInformation_GST_No; CompanyInformation.”GST Registration No.”)
                {
 
                }
 
column(CompanyInformation_State_Code; CompanyInformation.”State Code”)
                {
 
                }
column(CompanyInformation_Email_Id; CompanyInformation.”E-Mail”)
                {
 
                }
column(CompanyInformation_Phone_No; CompanyInformation.”Phone No.”)
                {
 
                }
column(CompanyInformation_PAN_No; CompanyInformation.”P.A.N. No.”)
                {
 
                }
column(CompanyInformation_Industrial_Classification; CompanyInformation.”Industrial Classification”)
                {
 
                }
column(CompanyInformation_Bank_Name; CompanyInformation.”Bank Name”)
                {
 
                }
column(CompanyInformation_Bank_Account_No; CompanyInformation.”Bank Account No.”)
                {
 
                }
column(CompanyInformation_Bank_Branch_No; CompanyInformation.”Bank Branch No.”)
                {
 
                }
 
column(Document_No_; “No.”)
                {
 
                }
column(Order_Date; format(“Order Date”))
                {
 
                }
column(Buy_from_Vendor_No; “Buy-from Vendor No.”)
                {
 
                }
column(Buy_from_Vendor_Name; “Buy-from Vendor Name”)
                {
 
                }
column(Buy_from_Address; “Buy-from Address”)
                {
 
                }
column(Buy_from_Address_2; “Buy-from Address 2”)
                {
 
                }
column(Buy_from_City; “Buy-from City”)
                {
 
                }
column(Buy_from_Post_Code; “Buy-from Post Code”)
                {
 
                }
column(Buy_from_Contact_No; “Buy-from Contact No.”)
                {
 
                }
column(Buy_from_GST_No; GetVendor.”GST Registration No.”)
                {
 
                }
column(Buy_from_PAN_No; GetVendor.”P.A.N. No.”)
                {
 
                }
column(Buy_from_Ph_No; GetVendor.”Phone No.”)
                {
 
                }
column(Buy_from_State_Code; GetVendor.”State Code”)
                {
 
                }
column(Buy_from_Country_Code; GetVendor.”Country/Region Code”)
                {
 
                }
column(Ship_to_Name; “Ship-to Name”)
                {
 
                }
column(Ship_to_Address; “Ship-to Address”)
                {
 
                }
column(Ship_to_Address_2; “Ship-to Address 2”)
                {
 
                }
column(Ship_to_City; “Ship-to City”)
                {
 
                }
column(Ship_to_Post_Code; “Ship-to Post Code”)
                {
 
                }
column(Total_CGST_Amount; TotalCGSTAmount)
                {
 
                }
column(Total_SGST_Amount; TotalSGSTAmount)
                {
 
                }
column(Total_IGST_Amount; TotalIGSTAmount)
                {
 
                }
column(CGST_Percentage; CGSTPercentage)
                {
 
                }
column(SGST_Percentage; SGSTPercentage)
                {
 
                }
column(IGST_Percentage; IGSTPercentage)
                {
 
                }
column(Total_Invoice_Value; TotalInvoiceValue)
                {
 
                }
column(AmountInWords_1; AmountInWords[1])
                {
 
                }
column(AmountInWords_2; AmountInWords[2])
                {
 
                }
column(Header_Comment; HeaderComment)
                {
 
                }
column(Payment_Terms_Description; GetPaymentTerms.Description)
                {
 
                }
dataitem(“Purchase Line”; “Purchase Line”)
                {
DataItemTableView = SORTING(“Document No.”, “Line No.”);
DataItemLinkReference = “Purchase Header”;
DataItemLink = “Document No.” = FIELD(“No.”);
column(Sr_No; SrNo)
                    {
 
                    }
column(Line_No_; “No.”)
                    {
 
                    }
column(Line_Description; “Description”)
                    {
 
                    }
column(Line_Description_2; “Description 2”)
                    {
 
                    }
column(Line_Quantity; “Quantity”)
                    {
 
                    }
column(Unit_of_Measure_Code; “Unit Of Measure Code”)
                    {
 
                    }
column(Unit_Price; “Direct Unit Cost”)
                    {
 
                    }
column(Line_Amount; “Line Amount”)
                    {
 
                    }
column(HSN_SAC_Code; “HSN/SAC Code”)
                    {
 
                    }
column(Line_Comment; LineComment)
                    {
 
                    }
 
 
 
 
                    trigger onafterGetRecord()
                    var
myInt: Integer;
                    begin
SrNo += 1;
Clear(LineComment);
Clear(LineCommentCounter);
PurchCommentLine.reset;
PurchCommentLine.setfilter(“Document Type”, ‘%1’, PurchCommentLine.”Document Type”::Order);
PurchCommentLine.setrange(“No.”, “Document No.”);
PurchCommentLine.Setrange(“Document Line No.”, “Line No.”);
                        if PurchCommentLine.FindSet() then begin
                            repeat
LineCommentCounter += 1;
                                if LineCommentCounter> 1 then
LineComment := LineComment + ‘ ‘ + PurchCommentLine.Comment
                                else
LineComment := PurchCommentLine.Comment;
 
                            Until PurchCommentLine.next = 0;
                        end;
                    end;
                }
                trigger OnPreDataItem()
                var
myInt: Integer;
                begin
CompanyInformation.get();
CompanyInformation.CalcFields(Picture);
CompanyInformation.CalcFields(POSignature);
                end;
 
                trigger OnAfterGetRecord()
                var
myInt: Integer;
                begin
SrNo := 0;
TotalCGSTAmount := 0;
TotalSGSTAmount := 0;
TotalIGSTAmount := 0;
GetVendor.get(“Buy-from Vendor No.”);
DetailedGSTEntryBuffer.reset;
DetailedGSTEntryBuffer.setrange(“Document No.”, “No.”);
                    if DetailedGSTEntryBuffer.FindSet() then begin
                        repeat
                            if DetailedGSTEntryBuffer.”GST Component Code” = ‘CGST’ then
TotalCGSTAmount += DetailedGSTEntryBuffer.”GST Amount”;
                            if DetailedGSTEntryBuffer.”GST Component Code” = ‘SGST’ then
TotalSGSTAmount += DetailedGSTEntryBuffer.”GST Amount”;
                            if DetailedGSTEntryBuffer.”GST Component Code” = ‘IGST’ then
TotalIGSTAmount += DetailedGSTEntryBuffer.”GST Amount”;
                        until DetailedGSTEntryBuffer.next = 0;
                    end;
TotalInvoiceValue := 0;
PurchaseLine.reset;
PurchaseLine.Setrange(“Document No.”, “No.”);
                    if PurchaseLine.FindSet() then begin
                        Repeat
TotalInvoiceValue += PurchaseLine.”Line Amount”;
                        Until PurchaseLine.next = 0;
                    end;
TotalInvoiceValue += TotalCGSTAmount + TotalSGSTAmount + TotalIGSTAmount;
 
Clear(HeaderComment);
Clear(HeaderCommentCounter);
PurchHeaderCommentLine.reset;
PurchHeaderCommentLine.setrange(“No.”, “No.”);
PurchHeaderCommentLine.Setfilter(“Document Line No.”, ‘%1’, 0);
                    if PurchHeaderCommentLine.FindSet() then begin
                        repeat
HeaderCommentCounter += 1;
                            if HeaderCommentCounter> 1 then
HeaderComment := HeaderComment + ‘ ‘ + PurchHeaderCommentLine.Comment
                            else
HeaderComment := PurchHeaderCommentLine.Comment;
 
                        Until PurchHeaderCommentLine.next = 0;
                    end;
 
GetPaymentTerms.get(“Payment Terms Code”);
IndianReportCheck.InitTextVariable();
IndianReportCheck.FormatNoText(AmountinWords, TotalInvoiceValue, “Currency Code”);
 
                end;
            }
            trigger OnPreDataItem()
            var
myInt: Integer;
            begin
                if NoOfPrint> 1 then
Setrange(Number, 1, NoOfPrint)
                else
Setrange(Number, 1, 1);
 
            end;
 
            trigger OnAfterGetRecord()
            var
myInt: Integer;
            begin
 
            end;
        }
    }
 
requestpage
    {
        layout
        {
area(Content)
            {
group(Options)
                {
                    Caption = ‘Options’;
field(NoOfPrint; NoOfPrint)
                    {
ApplicationArea = Basic, Suite;
                        Caption = ‘No. of Prints’;
                        ToolTip = ‘Specifies how many copies of the document to print.’;
                    }
 
                }
            }
        }
 
        actions
        {
            area(processing)
            {
action(ActionName)
                {
ApplicationArea = All;
 
                }
            }
        }
 
    }
 
    var
CopyText: Text;
CompanyInformation: Record “Company Information”;
NoOfPrint: Integer;
SrNo: Integer;
GetVendor: Record Vendor;
DetailedGSTEntryBuffer: record “Detailed GST Entry Buffer”;
TotalCGSTAmount: Decimal;
TotalSGSTAmount: Decimal;
TotalIGSTAmount: Decimal;
CGSTPercentage: Decimal;
SGSTPercentage: Decimal;
IGSTPercentage: Decimal;
LineComment: Text;
LineCommentCounter: Integer;
PurchCommentLine: Record “Purch. Comment Line”;
PurchHeaderCommentLine: Record “Purch. Comment Line”;
HeaderComment: Text;
HeaderCommentCounter: Integer;
TotalInvoiceValue: Decimal;
PurchaseLine: Record “Purchase Line”;
IndianReportCheck: Report 18041;
AmountinWords: array[2] of Text[80];
GetPaymentTerms: Record “Payment Terms”;
}

Development of Table through Wizard in AL D365 BC
Sales Invoice Report Format and Development in D365 BC
How to Create Vendor Master in D365 BC
Purchase order overview– Microsoft Docs

Leave a Reply