Picture Object Properties
The General page of the Picture Properties dialog has the following options:
- Image source type: the type of source for the image. Image file name means the Image source setting (discussed next) contains the path and name of an image file. General field name is there for backward compatibility and isn't required anymore. Expression or variable name means Image source contains the name of a field or some other expression that contains either the path and name of an image file (that is, the name of an image file on disk is stored in a field in the database) or the image itself (that is, the image is contained in a field in the database).
- Image source: the source for the image. If Image source type is set to Image file name, enter the name and path for the image file. Otherwise, enter the "real" table and field name (for example, "CUSTOMER.IMAGE") for Image source. Alternatively, you can bring up the Expression Builder and select the desired field there.
- If source and frame are different sizes: this setting determines what to do if the image source is a different size that the frame you created for the picture. The choices are:
- Clip contents: show a section of the original picture in the frame, retaining the picture's original dimensions if the picture is bigger than the frame. The picture is anchored at the top and at the left of the frame. You cannot see the lower-right portion of the picture that extends beyond the frame.
- Scale contents, retain shape: displays the whole picture, filling as much of the frame as possible while retaining the relative proportions of the picture. This protects your picture from vertical or horizontal distortion.
- Scale contents, fill the frame: displays the whole picture, filling the frame completely. If necessary, the picture is distorted vertically or horizontally to fit the frame.
- Center general field horizontally in frame: as its name suggests, turning this setting on centers the picture horizontally within the frame. This setting is not available if Image source type is set to Image file name.
- Object position: it's possible the height of a band can change when it's printed. For example, the detail band may only appear as one line high in the Advanced Report Designer, but if a field's Stretch with overflow setting is turned on (see Field Object Properties), that field may take more than one line if it contains a lot of information, and therefore so does the detail band. The object position settings allow you to specify what happens to objects when the band they're in changes height. The choices are:
- Float: specifies that the selected object moves vertically relative to the size of objects directly above it.
- Fix relative to top of band: as the band changes height, this object maintains its position relative to the top of the band.
- Fix relative to bottom of band: as the band changes height, this object maintains its position relative to the bottom of the band.
- Size and position in layout: rather than trying to precisely size or position an object using the mouse or arrow keys, you can specify the dimensions and location of the object using these controls.
The Print When page allows you to conditionally print an object so it can be ignored under some conditions. This page has the following options:
- Print repeated values: setting this to No means the object won't print unless one or both of the In first whole band of a new page/column and When band content overflows to new page/column settings are turned on.
- In first whole band of a new page/column: prints the object in the first band of a new page or column that isn't an overflow from a previous page or column. This option is automatically turned on (and disabled) if you choose Yes for Print repeated values, and optional if you choose No for Print repeated values.
- When this data group expression changes: prints the object when the value of the chosen group changes. This option is available only if a group exists and Print repeated values is No. Choose a group from the list beside this option.
- When band content overflows to new page/column: prints the object when the band overflows to a new page or column. This option is available only if Print repeated values is No.
- Remove line if blank: removes the entire line of the report the object is on if the object is blank and no other object is on the same line.
- Print only when expression is true: an expression to be evaluated before the object prints. If the expression is true, the object is printed; otherwise, it isn't printed. All other options in this dialog except Remove line if blank are disabled if you include an expression. Click the Expression Builder button to display the Expression Builder.
The Dynamics page allows you to change the way the image appears in the report depending on certain conditions. One use of this is when you have image objects in the detail band of a report, but not all records have images. While you can suppress the missing images using the Print only when expression is true setting in the Print When page (such as "not empty(Photo)"), the band is still sized large enough for the image so there's a lot of blank space between detail records as you can see in this image:
Dynamics can help with this as you'll see in the example later. Note that using dynamic settings significantly increases report generation time, so use it only when required.
The Conditions list shows the conditions you've defined. To add a new condition, click the Add button. Enter the name of the condition and click OK. The following dialog appears.
This dialog has the following options:
- Condition Name: the name you assigned to the condition.
- Apply when this condition is true: the condition that affects the field. You can enter the expression for the condition or click the button with the ellipsis (...) to display the Expression Builder. For example, entering "TotalPrice < 0" means this condition is used whenever the total price is negative.
- Width Expression: enter a value or click the button to display the Expression Builder to specify a width to use when the condition is true. The width must be specified in inches or centimeters, depending on how your system is configured. The default of -1 means use the width already defined for the object.
- Height Expression: enter a value or click the button to display the Expression Builder to specify a height to use when the condition is true. The height must be specified in inches or centimeters, depending on how your system is configured. The default of -1 means use the height already defined for the object.
Click the Edit button to display the same dialog shown above to edit the condition settings or Remove to remove the condition. You can also change the order in which conditions are applied by clicking the button in front of the condition name in the list and dragging up or down.
One of the uses of dynamics is to suppress the wasted space of missing images. To do this, define the image with a very small width and height and size the detail band so it's only as tall as needed. Create a dynamic condition with a condition expression that is only true when the image exists (for example, "NOT EMPTY(ImageFieldName)") and specify the desired setting for Width and Height. When the report runs, if the condition evaluates to true (meaning there is an image for the current record), Stonefield Query expands the size of the image and the detail band as well. As a result, because the defined height of the detail band is shorter due to the initial small size of the image, there's no wasted space when the image isn't output. This example image also has a label with the opposite Print When expression ("EMPTY(ImageFieldName)") so it displays in place of missing photos:
The Other page displays a comment about the object. To change the comment, click the Edit comment button.
The Rotation page allows you to rotate an object on the report by specifying the rotation angle as a clockwise value (for example, an angle of 90 rotates the object 90 degrees clockwise). A representation of the rotation is shown so you can tell whether you have the desired angle. Note the object doesn't appear rotated in the Advanced Report Designer, but only when the report is run. Also note that using rotation significantly increases report generation time, so use it only when required.