Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

Documentation()

OnInitReport()

OnPreReport()
CustFilter := Customer.GETFILTERS;
CustDateFilter := Customer.GETFILTER("Date Filter");
WITH "Cust. Ledger Entry" DO
IF PrintAmountsInLCY THEN BEGIN
AmountCaption := FIELDCAPTION("Amount (LCY)");
RemainingAmtCaption := FIELDCAPTION("Remaining Amt. (LCY)");
END ELSE BEGIN
AmountCaption := FIELDCAPTION(Amount);
RemainingAmtCaption := FIELDCAPTION("Remaining Amount");
END;

OnPostReport()

Customer - OnPreDataItem()
PageGroupNo := 1;
CurrReport.NEWPAGEPERRECORD := PrintOnlyOnePerPage;
CurrReport.CREATETOTALS("Cust. Ledger Entry"."Amount
(LCY)",StartBalanceLCY,StartBalAdjLCY,Correction,ApplicationRounding);

Customer - OnAfterGetRecord()
IF PrintOnlyOnePerPage THEN
PageGroupNo := PageGroupNo + 1;

StartBalanceLCY := 0;
StartBalAdjLCY := 0;
IF CustDateFilter <> '' THEN BEGIN
IF GETRANGEMIN("Date Filter") <> 0D THEN BEGIN
SETRANGE("Date Filter",0D,GETRANGEMIN("Date Filter") - 1);
CALCFIELDS("Net Change (LCY)");
StartBalanceLCY := "Net Change (LCY)";
END;
SETFILTER("Date Filter",CustDateFilter);
CALCFIELDS("Net Change (LCY)");
StartBalAdjLCY := "Net Change (LCY)";
CustLedgEntry.SETCURRENTKEY("Customer No.","Posting Date");
CustLedgEntry.SETRANGE("Customer No.","No.");
CustLedgEntry.SETFILTER("Posting Date",CustDateFilter);
IF CustLedgEntry.FIND('-') THEN
REPEAT
CustLedgEntry.SETFILTER("Date Filter",CustDateFilter);
CustLedgEntry.CALCFIELDS("Amount (LCY)");
StartBalAdjLCY := StartBalAdjLCY - CustLedgEntry."Amount (LCY)";
"Detailed Cust. Ledg. Entry".SETCURRENTKEY("Cust. Ledger Entry No.","Entry
Type","Posting Date");
"Detailed Cust. Ledg. Entry".SETRANGE("Cust. Ledger Entry
No.",CustLedgEntry."Entry No.");
"Detailed Cust. Ledg. Entry".SETFILTER("Entry Type",'%1|%2',
"Detailed Cust. Ledg. Entry"."Entry Type"::"Correction of Remaining
Amount",
"Detailed Cust. Ledg. Entry"."Entry Type"::"Appln. Rounding");
"Detailed Cust. Ledg. Entry".SETFILTER("Posting Date",CustDateFilter);
IF "Detailed Cust. Ledg. Entry".FIND('-') THEN
REPEAT
StartBalAdjLCY := StartBalAdjLCY - "Detailed Cust. Ledg. Entry"."Amount
(LCY)";
UNTIL "Detailed Cust. Ledg. Entry".NEXT = 0;
"Detailed Cust. Ledg. Entry".RESET;
UNTIL CustLedgEntry.NEXT = 0;
END;
CurrReport.PRINTONLYIFDETAIL := ExcludeBalanceOnly OR (StartBalanceLCY = 0);
CustBalanceLCY := StartBalanceLCY + StartBalAdjLCY

Customer - OnPostDataItem()

Cust. Ledger Entry - OnPreDataItem()


CustLedgEntryExists := FALSE;
CurrReport.CREATETOTALS(CustAmount,"Amount (LCY)");

Cust. Ledger Entry - OnAfterGetRecord()


CALCFIELDS(Amount,"Remaining Amount","Amount (LCY)","Remaining Amt. (LCY)");

CustLedgEntryExists := TRUE;
IF PrintAmountsInLCY THEN BEGIN
CustAmount := "Amount (LCY)";
CustRemainAmount := "Remaining Amt. (LCY)";
CustCurrencyCode := '';
END ELSE BEGIN
CustAmount := Amount;
CustRemainAmount := "Remaining Amount";
CustCurrencyCode := "Currency Code";
END;
CustBalanceLCY := CustBalanceLCY + "Amount (LCY)";
IF ("Document Type" = "Document Type"::Payment) OR ("Document Type" = "Document
Type"::Refund) THEN
CustEntryDueDate := 0D
ELSE
CustEntryDueDate := "Due Date";

Cust. Ledger Entry - OnPostDataItem()

Detailed Cust. Ledg. Entry - OnPreDataItem()


SETFILTER("Posting Date",CustDateFilter);
Correction := 0;
ApplicationRounding := 0;

Detailed Cust. Ledg. Entry - OnAfterGetRecord()


CASE "Entry Type" OF
"Entry Type"::"Appln. Rounding":
ApplicationRounding := ApplicationRounding + "Amount (LCY)";
"Entry Type"::"Correction of Remaining Amount":
Correction := Correction + "Amount (LCY)";
END;
CustBalanceLCY := CustBalanceLCY + "Amount (LCY)";

Detailed Cust. Ledg. Entry - OnPostDataItem()

Integer - OnPreDataItem()

Integer - OnAfterGetRecord()
IF NOT CustLedgEntryExists AND ((StartBalanceLCY = 0) OR ExcludeBalanceOnly) THEN
BEGIN
StartBalanceLCY := 0;
CurrReport.SKIP;
END;

Integer - OnPostDataItem()

InitializeRequest(ShowAmountInLCY : Boolean;SetPrintOnlyOnePerPage :
Boolean;SetExcludeBalanceOnly : Boolean)
PrintOnlyOnePerPage := SetPrintOnlyOnePerPage;
PrintAmountsInLCY := ShowAmountInLCY;
ExcludeBalanceOnly := SetExcludeBalanceOnly;

You might also like