PalPet -
As a former sales manager I understand what you want I think
The degree of difficulty of what you want to do just depends on how much information you want to summarize on the last (report footer) page.
Essentially you use the report that you already have but capture the information that you want into arrays for later printing.
For example: Say we want to summarize the Salesman and their overall sales.
First initialize your arrays...estimate the number of salesmen you have then increase that number by 50%....So if there are currently 50 salesmen then you build arrays based on 75 salesmen to reduce the need for maintenance as time goes on
********************
@Intialization (Suppressed in Report header)
WhilePrintingRecords;
StringVar Array Salesmen := ["","","",...(add 70 more sets)..."",""];
StringVar Array SalesVolume := ["","","",...(add 70 more sets)..."",""];
numberVar Pointer := 0;
********************
We use strings here for convenience of display.
********************
@CollectSalesVolume (suppressed in Salesman footer)
WhilePrintingRecords;
StringVar Array Salesmen ;
StringVar Array SalesVolume ;
numberVar Pointer ;
Pointer := Pointer + 1;
Salesmen[Pointer] := {table.salesmanName};
SalesVolume[Pointer] := Totext(Sum of Sales,0);
********************
Now comes the display...the only tricky part
You are limited to 254 char/formula...so let's say each salesman's name is maximum 25 chars each then you have room for about 10 salesmen / formula
So you require 8 formula sets of salesman/salesvolume
You can make the last page anyway you want but let us say you want 4 columns of Salesman/SalesVolume across
then you make 2 sections of your report footer a and b with 4 sets / section and enable the "suppress blank section" on both
@displaySalesman1
WhilePrintingRecords;
StringVar Array Salesmen ;
numberVar icounter;
numberVar Result := "";
For icounter := 1 to 10 do
(
Result := Result + Salesmen[icounter] + chr(13) + chr(10)
);
Result;
@displaySalesVolume1
WhilePrintingRecords;
StringVar Array SalesVolume ;
numberVar icounter;
numberVar Result := "";
For icounter := 1 to 10 do
(
Result := Result + SalesVolume [icounter] + chr(13) + chr(10)
);
Result;
The next formulas, @displaySalesmen2 and displaySalesVolume2, would be from Icounter := 11 to 20
remember the last formulas,@displaySalesmen8 and displaySalesVolume8, would be from Icounter := 71 to 75
Another reason for the separate formulas is to get a rasor sharp column for Salesman and Sales Volume
So that is the basics of what you want to do....if you want more information than this just add arrays and capture/display what you wish in a similar manner.
Jim Broadbent