I've been writing an application for a client which stores many contract variables in fields in a single record for each contract. The screen form contains brief prompts for each field, but the printed contract actually contains many pages. Each page includes some of the fields embedded within the text. Some contracts will contain every possible page of text, while others will contain only some of the pages (in various combinations).
The Report writer only allows you 23" of vertical space in which to design a report. If you use WYSIWYG methods of designing, and space your report objects visually, a full page will take up 11"; after 2 pages you're out of space! So... how to squeeze many pages of text into 23 inches of space? And each page must include fields of data within the text; but the pages are not static, that is, the fields being inserted, and the surrounding text will vary on each contract.
ANSWER Combine Conditional Objects, RichText, and conditional page breaks!
1. - create a conditional object for each page of the contract (or group of pages that belong together), starting with the 1st page; make the object large enough for 1 whole page.
2. - set up a condition for the object which will evaluate to true and cause the page to print. Make this conditional page the active page -- all contract text (including embedded fields and conditional page breaks) will be entered on this page; leave the Default page blank.
3. - create a full-page sized RichText object on the conditional page and fill it with your text, including record fields (or expressions) where appropriate. Since this is RichText, you can change fonts, font sizes, bold, underline, etc.; be sure to check your work in print preview often, things may change. NOTE: multiple columns are possible, but very difficult! (you need separate RT objects for each column, and you may need to split paragraphs into separate RT objects in order to make things line up correctly)
4. - be sure to put a conditional page break at the beginning of each page (within the RT object), making it conditional on the previous page printing (this shouldn't be necessary, but I've found that sometimes just having a page break within the conditional object doesn't work).
5. - after you've proofed the page, shrink the RT object(s) as small as possible, making sure you've turned on the properties allowing growth and shrink during printing for each object.
6. - next, shrink the conditional object so it just contains any associated RT objects, and set its "allow shrink" property.
You should be able to squeeze up to 4 objects per vertical inch, allowing 90 pages (at 1 page per RT object) within the report writer. You can save even more space by consolidating repeating information into headers and footers.
Have fun with this one and send me your thoughts, or improvements.
The Report writer only allows you 23" of vertical space in which to design a report. If you use WYSIWYG methods of designing, and space your report objects visually, a full page will take up 11"; after 2 pages you're out of space! So... how to squeeze many pages of text into 23 inches of space? And each page must include fields of data within the text; but the pages are not static, that is, the fields being inserted, and the surrounding text will vary on each contract.
ANSWER Combine Conditional Objects, RichText, and conditional page breaks!
1. - create a conditional object for each page of the contract (or group of pages that belong together), starting with the 1st page; make the object large enough for 1 whole page.
2. - set up a condition for the object which will evaluate to true and cause the page to print. Make this conditional page the active page -- all contract text (including embedded fields and conditional page breaks) will be entered on this page; leave the Default page blank.
3. - create a full-page sized RichText object on the conditional page and fill it with your text, including record fields (or expressions) where appropriate. Since this is RichText, you can change fonts, font sizes, bold, underline, etc.; be sure to check your work in print preview often, things may change. NOTE: multiple columns are possible, but very difficult! (you need separate RT objects for each column, and you may need to split paragraphs into separate RT objects in order to make things line up correctly)
4. - be sure to put a conditional page break at the beginning of each page (within the RT object), making it conditional on the previous page printing (this shouldn't be necessary, but I've found that sometimes just having a page break within the conditional object doesn't work).
5. - after you've proofed the page, shrink the RT object(s) as small as possible, making sure you've turned on the properties allowing growth and shrink during printing for each object.
6. - next, shrink the conditional object so it just contains any associated RT objects, and set its "allow shrink" property.
You should be able to squeeze up to 4 objects per vertical inch, allowing 90 pages (at 1 page per RT object) within the report writer. You can save even more space by consolidating repeating information into headers and footers.
Have fun with this one and send me your thoughts, or improvements.