Sometimes the situation occurs that text in nested datawindows spanning a page is cut off, which means
that the design rule for nested reports is not met.
See for reference PowerBuilder User's Guide manual, Chapter 25 Using Nested Reports
Working with nested reports --> Using options for nested reports --> Using the Autosize Height option
Handling large rows
To avoid multiple blank pages or other anomalies in printed reports, never create a DataWindow object with a
data row greater than the size of the target page. To handle large text-string columns, break the large string
into a series of small strings. The smaller strings are used to populate individual data rows within a nested report
instead of using a single text column with an autosized height.
When retrieving data, the DataWindow needs to calculate position of all rows. One row's position is based on the position
and height of the above rows. Also, in a row, we calculate position of a control based on the position and height
of the controls above it. As for other controls alike, a nested DataWindow is treated as a single inner control to calculate position and height.
We currently can not break a row into multiple pages according its contents, if a row is greater than a page,
some controls might be cut by the page clip region when displaying and printing.
Since it is best to avoid the large rows a workaround had been provided with the aid of breaking the
large string into a series of small strings. This can be accomplished with the wordwrap.dll,
which is available for downloaded from codeXchange
- http://www.sybase.com/detail?id=1058501 (search for wordwrap.dll).
Since build 4680 of PB 11.5.1 we have 2 new options that could be tested to overcome the
design rule mentioned above. Set
1. environment variable "DW_PUSH_CUT_CONTROL_TO_NEXT_PAGE=yes", ie. this will effect all DataWindows.
2. dw property "datawindow.PushCutControlToNextPage=yes" at runtime, effect on a certain DataWindow.
Note: Make sure that the control with text cut off is set to slide up by "All Above" or "Directly Above", otherwise
this new method does not apply.