I have the same problem. A table with about 100 fields, only some of which contain data for each record. I want to print the data I have with field labels but not 3 pages of fields and labels, half of which are empty.
I don't want an extra label calculation field for every field because that will slow down my database.
I have decided to use a temporary text field ( or maybe two, one for labels and one for the data).
I will use a printing script that:
1) runs through the fields and copies non-blank fields with their labels into the temporary field.
2) goes to a dedicated layout that shows the temporary text field
3) prints the record
4) returns to the original record.
That way there is no additional burden on the database and the script should run reasonably fast. The downside is that it will take awhile to write the script with so many fields but I only have to do that once.
Also, fields with multiple lines may cause grief if i use a separate field for the labels. If I use one field for both then tab control may be tricky. so that the fields line up vertically.
I'll let you know how I get on.