report

i am generating the report, sales invoice line ,sales invoice and there by integer table,

i have taken sales invoice line header,body and integer footer .

in body section of the report ,if the table consist of more values ,the footer section is not displaying…

in the body section if the table consist of 5 to 6 values the footer section is displaying in the corrent page…

i must have have to take transe footer in this case ?

can any one suggest me please…

Did you write any code under footer section?

You mean to say if data is more then Footer is displaying in second page and you want it to display in First page only ???

Isn’t it??

sir did you mean ,in presection() and post section();

i havent written any code in presection and posection,but i am sending the remaining code

Documentation()

Integer, Footer (3) - OnPreSection()

Integer, Footer (3) - OnPostSection()

InitLogInteraction()

LogInteraction := SegManagement.FindInteractTmplCode(4) <> ‘’;

FindPostedShipmentDate() : Date

NextEntryNo := 1;

IF “Sales Invoice Line”.“Shipment No.” <> ‘’ THEN

IF SalesShipmentHeader.GET(“Sales Invoice Line”.“Shipment No.”) THEN

EXIT(SalesShipmentHeader.“Posting Date”);

IF “Sales Invoice Header”.“Order No.”=’’ THEN

EXIT(“Sales Invoice Header”.“Posting Date”);

CASE “Sales Invoice Line”.Type OF

“Sales Invoice Line”.Type::Item:

GenerateBufferFromValueEntry(“Sales Invoice Line”);

“Sales Invoice Line”.Type::“G/L Account”,“Sales Invoice Line”.Type::Resource,

“Sales Invoice Line”.Type::“Charge (Item)”,“Sales Invoice Line”.Type::“Fixed Asset”:

GenerateBufferFromShipment(“Sales Invoice Line”);

“Sales Invoice Line”.Type::" ":

EXIT(0D);

END;

SalesShipmentBuffer.RESET;

SalesShipmentBuffer.SETRANGE(“Document No.”,“Sales Invoice Line”.“Document No.”);

SalesShipmentBuffer.SETRANGE(“Line No.” ,“Sales Invoice Line”.“Line No.”);

IF SalesShipmentBuffer.FIND(’-’) THEN BEGIN

SalesShipmentBuffer2 := SalesShipmentBuffer;

IF SalesShipmentBuffer.NEXT = 0 THEN BEGIN

SalesShipmentBuffer.GET(

SalesShipmentBuffer2.“Document No.”,SalesShipmentBuffer2.“Line No.”,SalesShipmentBuffer2.“Entry No.”);

SalesShipmentBuffer.DELETE;

EXIT(SalesShipmentBuffer2.“Posting Date”);

END ;

SalesShipmentBuffer.CALCSUMS(Quantity);

IF SalesShipmentBuffer.Quantity <> “Sales Invoice Line”.Quantity THEN BEGIN

SalesShipmentBuffer.DELETEALL;

EXIT(“Sales Invoice Header”.“Posting Date”);

END;

END ELSE

EXIT(“Sales Invoice Header”.“Posting Date”);

GenerateBufferFromValueEntry(SalesInvoiceLine2 : Record “Sales Invoice Line”)

TotalQuantity := SalesInvoiceLine2.“Quantity (Base)”;

ValueEntry.SETCURRENTKEY(“Document No.”);

ValueEntry.SETRANGE(“Document No.”,SalesInvoiceLine2.“Document No.”);

ValueEntry.SETRANGE(“Posting Date”,“Sales Invoice Header”.“Posting Date”);

ValueEntry.SETRANGE(“Item Charge No.”,’’);

ValueEntry.SETFILTER(“Entry No.”,’%1…’,FirstValueEntryNo);

IF ValueEntry.FIND(’-’) THEN

REPEAT

IF ItemLedgerEntry.GET(ValueEntry.“Item Ledger Entry No.”) THEN BEGIN

IF SalesInvoiceLine2.“Qty. per Unit of Measure” <> 0 THEN

Quantity := ValueEntry.“Invoiced Quantity” / SalesInvoiceLine2.“Qty. per Unit of Measure”

ELSE

Quantity := ValueEntry.“Invoiced Quantity”;

AddBufferEntry(

SalesInvoiceLine2,

-Quantity,

ItemLedgerEntry.“Posting Date”);

TotalQuantity := TotalQuantity + ValueEntry.“Invoiced Quantity”;

END;

FirstValueEntryNo := ValueEntry.“Entry No.” + 1;

UNTIL (ValueEntry.NEXT = 0) OR (TotalQuantity = 0);

GenerateBufferFromShipment(SalesInvoiceLine : Record “Sales Invoice Line”)

TotalQuantity := 0;

SalesInvoiceHeader.SETCURRENTKEY(“Order No.”);

SalesInvoiceHeader.SETFILTER(“No.”,’…%1’,“Sales Invoice Header”.“No.”);

SalesInvoiceHeader.SETRANGE(“Order No.”,“Sales Invoice Header”.“Order No.”);

IF SalesInvoiceHeader.FIND(’-’) THEN

REPEAT

SalesInvoiceLine2.SETRANGE(“Document No.”,SalesInvoiceHeader.“No.”);

SalesInvoiceLine2.SETRANGE(“Line No.”,SalesInvoiceLine.“Line No.”);

SalesInvoiceLine2.SETRANGE(Type,SalesInvoiceLine.Type);

SalesInvoiceLine2.SETRANGE(“No.”,SalesInvoiceLine.“No.”);

SalesInvoiceLine2.SETRANGE(“Unit of Measure Code”,SalesInvoiceLine.“Unit of Measure Code”);

IF SalesInvoiceLine2.FIND(’-’) THEN

REPEAT

TotalQuantity := TotalQuantity + SalesInvoiceLine2.Quantity;

UNTIL SalesInvoiceLine2.NEXT = 0;

UNTIL SalesInvoiceHeader.NEXT = 0;

SalesShipmentLine.SETCURRENTKEY(“Order No.”,“Order Line No.”);

SalesShipmentLine.SETRANGE(“Order No.”,“Sales Invoice Header”.“Order No.”);

SalesShipmentLine.SETRANGE(“Order Line No.”,SalesInvoiceLine.“Line No.”);

SalesShipmentLine.SETRANGE(“Line No.”,SalesInvoiceLine.“Line No.”);

SalesShipmentLine.SETRANGE(Type,SalesInvoiceLine.Type);

SalesShipmentLine.SETRANGE(“No.”,SalesInvoiceLine.“No.”);

SalesShipmentLine.SETRANGE(“Unit of Measure Code”,SalesInvoiceLine.“Unit of Measure Code”);

SalesShipmentLine.SETFILTER(Quantity,’<>%1’,0);

IF SalesShipmentLine.FIND(’-’) THEN

REPEAT

IF “Sales Invoice Header”.“Get Shipment Used” THEN

CorrectShipment(SalesShipmentLine);

IF ABS(SalesShipmentLine.Quantity) <= ABS(TotalQuantity - SalesInvoiceLine.Quantity) THEN

TotalQuantity := TotalQuantity - SalesShipmentLine.Quantity

ELSE BEGIN

IF ABS(SalesShipmentLine.Quantity) > ABS(TotalQuantity) THEN

SalesShipmentLine.Quantity := TotalQuantity;

Quantity :=

SalesShipmentLine.Quantity - (TotalQuantity - SalesInvoiceLine.Quantity);

TotalQuantity := TotalQuantity - SalesShipmentLine.Quantity;

SalesInvoiceLine.Quantity := SalesInvoiceLine.Quantity - Quantity;

IF SalesShipmentHeader.GET(SalesShipmentLine.“Document No.”) THEN

BEGIN

AddBufferEntry(

SalesInvoiceLine,

Quantity,

SalesShipmentHeader.“Posting Date”);

END;

END;

UNTIL (SalesShipmentLine.NEXT = 0) OR (TotalQuantity = 0);

CorrectShipment(VAR SalesShipmentLine : Record “Sales Shipment Line”)

SalesInvoiceLine.SETCURRENTKEY(“Shipment No.”,“Shipment Line No.”);

SalesInvoiceLine.SETRANGE(“Shipment No.”,SalesShipmentLine.“Document No.”);

SalesInvoiceLine.SETRANGE(“Shipment Line No.”,SalesShipmentLine.“Line No.”);

IF SalesInvoiceLine.FIND(’-’) THEN

REPEAT

SalesShipmentLine.Quantity := SalesShipmentLine.Quantity - SalesInvoiceLine.Quantity;

UNTIL SalesInvoiceLine.NEXT = 0;

AddBufferEntry(SalesInvoiceLine : Record “Sales Invoice Line”;QtyOnShipment : Decimal;PostingDate : Date)

SalesShipmentBuffer.SETRANGE(“Document No.”,SalesInvoiceLine.“Document No.”);

SalesShipmentBuffer.SETRANGE(“Line No.”,SalesInvoiceLine.“Line No.”);

SalesShipmentBuffer.SETRANGE(“Posting Date”,PostingDate);

IF SalesShipmentBuffer.FIND(’-’) THEN BEGIN

SalesShipmentBuffer.Quantity := SalesShipmentBuffer.Quantity + QtyOnShipment;

SalesShipmentBuffer.MODIFY;

EXIT;

END;

WITH SalesShipmentBuffer DO BEGIN

“Document No.” := SalesInvoiceLine.“Document No.”;

“Line No.” := SalesInvoiceLine.“Line No.”;

“Entry No.” := NextEntryNo;

Type := SalesInvoiceLine.Type;

“No.” := SalesInvoiceLine.“No.”;

Quantity := QtyOnShipment;

“Posting Date” := PostingDate;

INSERT;

NextEntryNo := NextEntryNo + 1

END;

DocumentCaption() : Text[250]

IF “Sales Invoice Header”.“Prepayment Invoice” THEN

EXIT(Text010);

EXIT(Text004);

amol,

let us consider if the data in the table is 5 records it was displaying header,body,footer are displaying under one page

if the data is more than 15 records it was displaying 5 records in the current page ,and remaining10 records and footer section

not displaying in the second page…

this where i am facing problem sir

Do you want to show footer in each page?

then set PrintOnEveryPage property of footer to Yes.

previously i kept this property as ‘yes’ ,but even though i am not getting sir ,i must have to write any code for this ,or i must have to use transefooter for this .

can you suggest me…this is the issue i am stopping here

What do you mean by not getting?

Can you screenshots and your expected result clearly?

when sending the screen shot it was throwing an oops error sir,that is the main problem i am not sending

You need to mange it using integer Table .Maybe look at some standard reports…