I just tested my earlier suggestion (should have done this before). If you use NthSmallest, changing the N up to the maximum number of footnotes with {@concat}, then the footnotes should appear in order, and if you use "Can grow" on each, you will save some space, since the longest footnote will no longer determine the number of lines per footnote. But, the group footer still will be extended to fit all N footnotes, even if they don't exist for a particular group. So, while this is a better solution than the crosstab, it still doesn't quite do the trick.
The best way to do this would be to accumulate the footnotes in one long string, but I'm guessing you would run up against the 254-character limit, since I believe you have 8.5. If you have 9.0 this shouldn't be a problem. The following formula adjusts for the 254 character limit and will allow for up to 762 characters per set of footnotes in a group footer. It is an adaptation of a formula developed by Naith for 508 characters in another thread.
First sort on {@concat} and then create these formulas:
{@resetfootnotes} to be placed in the group header:
whileprintingrecords;
stringvar footnotesx := "";
stringvar footnotesy := "";
stringvar footnotesz := "";
{@footnotesdetail} to be placed in the details section:
whileprintingrecords;
stringvar footnotesx;
stringvar footnotesy;
stringvar footnotesz;
if instr(footnotesz, {@concat}) = 0 then
if instr(footnotesy, {@concat}) = 0 then
if footnotesy = "" then
if length(footnotesz) + length({@concat} + chr(13)) > 254 then
footnotesy := footnotesy + {@concat} + chr(13) else
footnotesz := footnotesz + {@concat} + chr(13) else
if instr(footnotesx, {@concat}) = 0 then
if footnotesx = "" then
if length(footnotesy) + length({@concat} + chr(13)) > 254 then
footnotesx := footnotesx + {@concat} + chr(13) else
footnotesy := footnotesy + {@concat} + chr(13) else
if length(footnotesx) + length({@concat} + chr(13)) > 254 then
footnotesx := footnotesx else
footnotesx := footnotesx + {@concat} + chr(13) else
footnotesx := footnotesx else
footnotesy := footnotesy else
footnotesz := footnotesz;
The following three formulas should be positioned in a text box in the group footer in order z,y,x. The fields should be nested right up against each other horizontally.
{@displayz}:
whileprintingrecords;
stringvar footnotesz;
{@displayy}:
whileprintingrecords;
stringvar footnotesy;
{@displayx}:
whileprintingrecords;
stringvar footnotesx;
Right click on the text box->format field->common->and check "can grow". Resize your group footer so that it is only one line in height. Then it will resize itself to fit the field depending on the number of footnotes in that section.
-LB