Specifying variable-height bands in a DataWindow
object
Sometimes DataWindow objects contain columns whose data is of
variable length. For example, a Memo column in a table might be a
character column that can take up to several thousand characters.
Reserving space for that much information for the column in the detail
band would make the detail band’s height very large, meaning users
could see few rows at a time.
The detail band can resize based on the data in the Memo column.
If the Memo column has only one line of text, the detail band should
be one line. If the Memo column has 20 lines of text, the detail band
should be 20 lines high.
To provide a band that resizes as needed, specify that the
variable-length columns and the band have Autosize Height.All bands in
the DataWindow can be resized, but nested report overflow is supported
only in the Detail band. If autosizing would preclude the display of
at least one Detail band row per page, other bands cannot be
autosized. Autosizing is not supported with the Graph, RichText, OLE,
or Label presentation styles.
To create a resizable band in a DataWindow object
-
Select Properties from the pop-up menu of a column that
should resize based on the amount of data. -
Select the Autosize Height check box on the Position
page. -
Clear the Auto Horizontal Scroll check box on the Edit
page.PowerBuilder wraps text in the Preview view instead of
displaying text on one scrollable line. -
Repeat steps 1 to 3 for any other columns that should
resize. -
Select Properties from the band’s pop-up menu.
-
Select the Autosize Height check box on the General
page.In the Preview view, the band resizes based on the contents
of the columns you defined as having their height sized
automatically.
Using the RowHeight function with Autosize
Height
When a detail band has Autosize Height set to “true”, you should
avoid using the RowHeight DataWindow expression function to set the
height of any element in the row. Doing so can result in a logical
inconsistency between the height of the row and the height of the
element. If you need to use RowHeight, you must set the Y coordinate
of the element to 0 on the Position page in the Properties view,
otherwise the bottom of the element might be clipped. You must do this
for every element that uses such an expression. If you move any
elements in the band, make sure that their Y coordinates are still set
to 0.
You should not use an expression whose runtime value is greater
than the value returned by RowHeight. For example, you should not set
the height of a column to rowheight() + 30. Such an expression
produces unpredictable results at runtime.
Clipping columns
You can have Autosize Height columns without an Autosize
Height detail band. If such a column expands beyond the size of the
detail band in the Preview view, it is clipped.