A report can include a control that is a container for an OLE object. The container stores information about the application that created the object and it can launch the application to display or modify the OLE object.
The container can fill the whole report, when you create a new report using the OLE presentation style, or it can exist alongside other controls in a report, when you add an OLE object to an existing report. You can also read OLE data from a blob column in a database and display the objects in the report.
You can use OLE objects in reports in the following ways:
-
OLE object in a report
The OLE object is displayed in its container control with the report data and other controls, such as bitmaps or text. You can associate it with data in a particular row, the rows on a page, or with all rows. You choose which columns in the report are transferred to the OLE object. You can add an OLE container control to a report that uses any presentation style that supports multiple reports. (This does not include the graph and RichText presentation styles.)
-
OLE presentation style
The OLE presentation style is similar to an OLE object in a report. The difference is that the OLE container is the only control in the report. The underlying data is not presented in column controls and there are no other controls, such as bitmaps or text. The OLE object is always associated with all the rows in the report.
-
OLE database blob column
OLE objects that are stored in the database in a blob column are displayed in each row of the report.
You can also add ActiveX controls (also called OLE custom controls or OCXs) to reports. ActiveX controls range from simple visual displays, such as meters and clocks, to more complex controls that perform spell checking or image processing.
When you are working in the Report painter, you can start the server application for an OLE object by selecting Open from the pop-up menu. Once the server application has started, you can use the tools provided by the server to edit the initial presentation of the object.
When you preview a report that has one or more OLE objects associated with it, you cannot activate the OLE objects. When you preview a report, InfoMaker retrieves data from the database and displays the report as it will appear when printed. For this reason, activation is not possible.
To activate an OLE object, you first need to add the report that contains the object to a form. Once you have done this, you can activate the server application.
If the OLE object is associated with all rows retrieved and is in the foreground or background layer, not the band layer, users can activate the object. If the object is associated with a single row or page or is in the band layer, users can see the object but cannot activate it. Reports created using the OLE presentation style are always associated with all rows.
Unlike OLE objects, ActiveX controls are always active. They do not contain objects that need to be opened or activated.
What's next
Whether you are inserting an OLE object into a report or using the OLE presentation style, you use the same procedures to define, preview, and specify data for the OLE object. Because of their similarities, the next section discusses both OLE objects in reports and the OLE presentation style. The last section discusses OLE database blob columns.