Sales Register Report in D365 BC:
(1) In this blog we will do the development of the “Sales Register” or “Sales Summary” report in D365 BC.
(2) For developing Sales Register Report: Use Dataitem: Sales Invoice Header and Sales Cr. Memo Header as shown.
Header Part:
Variable Initialize:
Body Part of Sales Invoice:
Body Part of Sales Credit Memo:
Excel Creation Part:
Source Code:
report 50010 “Sales Register-IN” { UsageCategory = Administration; ApplicationArea = All; ProcessingOnly = True; dataset { dataitem(Sales_Invoice_Line; “Sales Invoice Line”) { DataItemTableView = SORTING(“Document No.”, “Line No.”) WHERE(“Quantity” = FILTER(<> 0)); RequestFilterFields = “Posting Date”; trigger OnPreDataItem() begin SETFILTER(“Posting Date”, ‘%1..%2’, StartDate, EndDate); IF DocumentTypeFilter = DocumentTypeFilter::Invoice THEN BEGIN IF InvoiceNoFilter <> ” THEN SETFILTER(“Document No.”, InvoiceNoFilter); END; IF DocumentTypeFilter = DocumentTypeFilter::”Credit Memo” THEN SETFILTER(“Document No.”, InvoiceNoFilter); IF CustomerNoFilter <> ” THEN SETFILTER(“Bill-to Customer No.”, CustomerNoFilter); IF ItemNoFilter <> ” THEN SETFILTER(“No.”, ItemNoFilter); IF ItemCategoryFilter <> ” THEN SETFILTER(“Item Category Code”, ItemCategoryFilter); end; trigger OnAfterGetRecord() begin ClearVariables(); SalesInvoiceHeader.GET(“Document No.”); SalesLine.RESET; SalesLine.SETRANGE(“Document No.”, SalesInvoiceHeader.”Order No.”); SalesLine.SETRANGE(“No.”, “No.”); IF SalesLine.FINDFIRST THEN BEGIN OrderQuantity := SalesLine.Quantity; PendingQuantity := SalesLine.Quantity – SalesLine.”Quantity Invoiced”; END ELSE BEGIN OrderQuantity := Quantity; PendingQuantity := 0; END; SrNo += 1; DocumentNo := “Document No.”; PostingDate := “Posting Date”; SalesOrderNo := SalesInvoiceHeader.”Order No.”; SourceNo := SalesInvoiceHeader.”Bill-to Customer No.”; Name := SalesInvoiceHeader.”Bill-to Name”; CustomerCityName := SalesInvoiceHeader.”Bill-to City”; CustomerStateName := SalesInvoiceHeader.”GST Bill-to State Code”; ItemCode := “No.”; ItemDescription := Description; UOM := “Unit of Measure”; IF SalesInvoiceHeader.”Currency Code” = ” THEN BEGIN UnitRate := “Unit Price”; BasicValue := Amount; DiscountValue := “Line Discount Amount”; END ELSE BEGIN CurrencyFactor := 1 / SalesInvoiceHeader.”Currency Factor”; UnitRate := “Unit Price” * CurrencyFactor; BasicValue := Amount * CurrencyFactor; DiscountValue := “Line Discount Amount” * CurrencyFactor; END; DetailedGSTLedgerEntry.RESET; DetailedGSTLedgerEntry.SETRANGE(“Document No.”, “Document No.”); DetailedGSTLedgerEntry.SETRANGE(“Document Line No.”, “Line No.”); IF DetailedGSTLedgerEntry.FINDSET THEN BEGIN REPEAT IF DetailedGSTLedgerEntry.”GST Component Code” = ‘CGST’ THEN BEGIN CGSTAmount := -DetailedGSTLedgerEntry.”GST Amount”; CGSTRate := -DetailedGSTLedgerEntry.”GST Amount” / Quantity; CGSTPer := DetailedGSTLedgerEntry.”GST %”; END; IF DetailedGSTLedgerEntry.”GST Component Code” = ‘SGST’ THEN BEGIN SGSTAmount := -DetailedGSTLedgerEntry.”GST Amount”; SGSTRate := -DetailedGSTLedgerEntry.”GST Amount” / Quantity; SGSTPer := DetailedGSTLedgerEntry.”GST %”; END; IF DetailedGSTLedgerEntry.”GST Component Code” = ‘IGST’ THEN BEGIN IGSTAmount := -DetailedGSTLedgerEntry.”GST Amount”; IGSTRate := -DetailedGSTLedgerEntry.”GST Amount” / Quantity; IGSTPer := DetailedGSTLedgerEntry.”GST %”; END; UNTIL DetailedGSTLedgerEntry.NEXT = 0; END; DeliveredQuantity := Quantity; ItemCategory := “Item Category Code”; //ItemClassification := “Product Group Code”; TotalGSTAmount := CGSTAmount + SGSTAmount + IGSTAmount; CustomerGSTNo := SalesInvoiceHeader.”Customer GST Reg. No.”; TypeOfDocument := ‘Sales Invoice’; //InvTotal := “Amount To Customer”; IF GetItem.GET(“No.”) THEN; GrossWeight := “Gross Weight”; NetWeight := “Net Weight”; MakeBodyForSalesInvoice(); end; } dataitem(Sales_Cr_Memo_Line; “Sales Cr.Memo Line”) { DataItemTableView = SORTING(“Document No.”, “Line No.”) WHERE(“Quantity” = FILTER(<> 0)); RequestFilterFields = “Posting Date”; trigger OnPreDataItem() begin SETFILTER(“Posting Date”, ‘%1..%2’, StartDate, EndDate); IF DocumentTypeFilter = DocumentTypeFilter::”Credit Memo” THEN BEGIN IF InvoiceNoFilter <> ” THEN SETFILTER(“Document No.”, InvoiceNoFilter); END; IF DocumentTypeFilter = DocumentTypeFilter::”Credit Memo” THEN SETFILTER(“Document No.”, InvoiceNoFilter); IF CustomerNoFilter <> ” THEN SETFILTER(“Bill-to Customer No.”, CustomerNoFilter); IF ItemNoFilter <> ” THEN SETFILTER(“No.”, ItemNoFilter); IF ItemCategoryFilter <> ” THEN SETFILTER(“Item Category Code”, ItemCategoryFilter); end; trigger OnAfterGetRecord() begin ClearVariables; SalesCrMemoHeader.GET(“Document No.”); OrderQuantity := Quantity; PendingQuantity := 0; SrNo += 1; DocumentNo := “Document No.”; PostingDate := “Posting Date”; SalesOrderNo := ”; SourceNo := SalesCrMemoHeader.”Bill-to Customer No.”; Name := SalesCrMemoHeader.”Bill-to Name”; CustomerCityName := SalesCrMemoHeader.”Bill-to City”; CustomerStateName := SalesCrMemoHeader.”GST Bill-to State Code”; ItemCode := “No.”; ItemDescription := Description; UOM := “Unit of Measure”; IF SalesCrMemoHeader.”Currency Code” = ” THEN BEGIN UnitRate := “Unit Price”; BasicValue := Amount; DiscountValue := “Line Discount Amount”; END ELSE BEGIN CurrencyFactor := 1 / SalesCrMemoHeader.”Currency Factor”; UnitRate := “Unit Price” * CurrencyFactor; BasicValue := Amount * CurrencyFactor; DiscountValue := “Line Discount Amount” * CurrencyFactor; END; DetailedGSTLedgerEntry.RESET; DetailedGSTLedgerEntry.SETRANGE(“Document No.”, “Document No.”); DetailedGSTLedgerEntry.SETRANGE(“Document Line No.”, “Line No.”); IF DetailedGSTLedgerEntry.FINDSET THEN BEGIN REPEAT IF DetailedGSTLedgerEntry.”GST Component Code” = ‘CGST’ THEN BEGIN CGSTAmount := DetailedGSTLedgerEntry.”GST Amount”; CGSTRate := DetailedGSTLedgerEntry.”GST Amount” / Quantity; CGSTPer := DetailedGSTLedgerEntry.”GST %”; END; IF DetailedGSTLedgerEntry.”GST Component Code” = ‘SGST’ THEN BEGIN SGSTAmount := DetailedGSTLedgerEntry.”GST Amount”; SGSTRate := DetailedGSTLedgerEntry.”GST Amount” / Quantity; SGSTPer := DetailedGSTLedgerEntry.”GST %”; END; IF DetailedGSTLedgerEntry.”GST Component Code” = ‘IGST’ THEN BEGIN IGSTAmount := DetailedGSTLedgerEntry.”GST Amount”; IGSTRate := DetailedGSTLedgerEntry.”GST Amount” / Quantity; IGSTPer := DetailedGSTLedgerEntry.”GST %”; END; UNTIL DetailedGSTLedgerEntry.NEXT = 0; END; DeliveredQuantity := Quantity; ItemCategory := “Item Category Code”; //ItemClassification := “Product Group Code”; TotalGSTAmount := CGSTAmount + SGSTAmount + IGSTAmount; CustomerGSTNo := SalesCrMemoHeader.”Customer GST Reg. No.”; TypeOfDocument := ‘Credit Memo’; //InvTotal := “Amount To Customer”; IF GetItem.GET(“No.”) THEN; GrossWeight := “Gross Weight”; NetWeight := “Net Weight”; MakeBodyForSalesCreditMemo(); end; } } trigger OnPreReport() begin TempExcelBuffer.Reset(); TempExcelBuffer.DELETEALL(); MakeHeader; //Create Header Part end; trigger OnPostReport() begin CreateExcelBook; // Create Excel Book end; var TempExcelBuffer: Record “Excel Buffer” temporary; StartDate: Date; EndDate: Date; CustomerNoFilter: Text[250]; ItemNoFilter: Text[250]; ItemCategoryFilter: Text[250]; DocumentTypeFilter: option Invoice,”Credit Memo”; InvoiceNoFilter: Text[250]; SalesInvoiceHeader: Record “Sales Invoice Header”; SalesLine: Record “Sales Line”; OrderQuantity: decimal; PendingQuantity: decimal; SrNo: Integer; DocumentNo: code[20]; PostingDate: date; SalesOrderNo: code[20]; SourceNo: code[20]; Name: Text; CustomerCityName: Text; CustomerStateName: text; ItemCode: Code[20]; ItemDescription: text; UOM: text; UnitRate: decimal; BasicValue: decimal; DiscountValue: decimal; CurrencyFactor: Decimal; DetailedGSTLedgerEntry: Record “Detailed GST Ledger Entry”; CGSTAmount: Decimal; CGSTRate: decimal; CGSTPer: decimal; SGSTAmount: decimal; SGSTRate: decimal; SGSTPer: decimal; IGSTAmount: decimal; IGSTRate: decimal; IGSTPer: decimal; DeliveredQuantity: decimal; ItemCategory: text; ItemClassification: text; TotalGSTAmount: decimal; CustomerGSTNo: text; TypeOfDocument: text; InvTotal: decimal; GetItem: record Item; GrossWeight: decimal; NetWeight: decimal; SalesCrMemoHeader: record “Sales Cr.Memo Header”; local procedure MakeHeader() var myInt: Integer; begin TempExcelBuffer.NewRow; TempExcelBuffer.AddColumn(‘Sr No.’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Type Of Document’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Invoice No.’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Invoice Date’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Sales Order No.’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Line No.’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Customer Code’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Customer Name’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Customer City Name’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Customer State Name’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Customer GST No.’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Item Code’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Item Description’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘UOM’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Delivered Quantity’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Unit Rate’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Basic Value’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Discount Value’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘CGST %’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘CGST Amount’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘CGST Value’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘SGST %’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘SGST Amount’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘SGST Value’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘IGST %’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘IGST Amount’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘IGST Value’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Total GST Amount’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘TCS %’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘TCS Amount’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Invoice Value’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Order Quantity’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Pending Quantity’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Item Category’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Item Classification’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Gross Weight’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(‘Net Weight’, FALSE, ”, TRUE, FALSE, TRUE, ”, TempExcelBuffer.”Cell Type”::Text); end; local procedure ClearVariables() var myInt: Integer; begin PostingDate := 0D; DocumentNo := ”; SourceNo := ”; Name := ”; InvTotal := 0; CGSTAmount := 0; IGSTAmount := 0; SGSTAmount := 0; IGSTRate := 0; CGSTRate := 0; SGSTRate := 0; CGSTPer := 0; SGSTPer := 0; IGSTPer := 0; SalesOrderNo := ”; CustomerCityName := ”; CustomerStateName := ”; ItemCode := ”; ItemDescription := ”; UOM := ”; UnitRate := 0; BasicValue := 0; DiscountValue := 0; TotalGSTAmount := 0; OrderQuantity := 0; PendingQuantity := 0; DeliveredQuantity := 0; ItemCategory := ”; ItemClassification := ”; CustomerGSTNo := ”; TypeOfDocument := ”; GrossWeight := 0; NetWeight := 0; end; local procedure MakeBodyForSalesInvoice() var myInt: Integer; begin TempExcelBuffer.NewRow; TempExcelBuffer.AddColumn(SrNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(TypeOfDocument, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(DocumentNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(PostingDate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(SalesOrderNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(SourceNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(Name, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CustomerCityName, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(CustomerStateName, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CustomerGSTNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(ItemCode, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(ItemDescription, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(UOM, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(DeliveredQuantity, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(UnitRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(BasicValue, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(DiscountValue, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CGSTPer, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CGSTRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(SGSTPer, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(SGSTRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(SGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(IGSTPer, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(IGSTRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(IGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(TotalGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(‘TCS %’, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(‘TCS Amount’, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(InvTotal, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(OrderQuantity, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(PendingQuantity, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(ItemCategory, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(ItemClassification, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(GrossWeight, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(NetWeight, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); end; local procedure MakeBodyForSalesCreditMemo() var myInt: Integer; begin TempExcelBuffer.NewRow; TempExcelBuffer.AddColumn(SrNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(TypeOfDocument, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(DocumentNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(PostingDate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(SalesOrderNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(SourceNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(Name, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CustomerCityName, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(CustomerStateName, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CustomerGSTNo, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(ItemCode, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(ItemDescription, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(UOM, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(-DeliveredQuantity, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-UnitRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-BasicValue, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-DiscountValue, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(CGSTPer, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-CGSTRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-CGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(SGSTPer, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-SGSTRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-SGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(IGSTPer, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-IGSTRate, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-IGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-TotalGSTAmount, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(‘TDS/TCS %’, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(‘-TDS/TCS Amount’, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-InvTotal, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-OrderQuantity, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-PendingQuantity, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(ItemCategory, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(ItemClassification, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); TempExcelBuffer.AddColumn(-GrossWeight, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Number); TempExcelBuffer.AddColumn(-NetWeight, FALSE, ”, FALSE, FALSE, FALSE, ”, TempExcelBuffer.”Cell Type”::Text); end; Local procedure CreateExcelBook(); begin TempExcelBuffer.CreateNewBook(‘SalesRegister’); TempExcelBuffer.WriteSheet(‘SalesRegister’, CompanyName, UserId); TempExcelBuffer.CloseBook(); TempExcelBuffer.SetFriendlyFilename(‘SalesRegister’); TempExcelBuffer.OpenExcel(); end; } |