Distributing ReportWriter with Your Application
Below are three possible scenarios for how you might distribute ReportWriter.
- You predefine reports, which can subsequently be generated from your application. The user simply selects the report (for example, from a menu or a list of reports) and it is generated. In this scenario, the user never sees ReportWriter, and may not even be aware that it was used to create the reports.
- You provide users with the ReportWriter application and a repository, and allow them to create their own reports. You may want to launch ReportWriter from your application (for example, from a menu option), or you may want to have the user run it as a separate application.
- A combination of the above two scenarios. You provide users with the tools necessary to create their own reports, but you also provide them with some pre-defined reports that they can either use “as is” or as a model for their own reports.
The steps below should serve as a general guide for what you need to do to distribute ReportWriter. Your actual procedures may vary, depending on how much customization you choose to do, how you set up your development system, whether your development system consists of the same operating system and hardware as your target system, and so forth.
1. | If desired, customize ReportWriter by doing one or more of the following: |
- Modify ReportWriter’s handling of filename mapping, printer interfaces, environment fields, user-defined file types or data types, selection list item information, and report initialization by overloading any or all of ReportWriter’s default routines. See Customizing ReportWriter Routines.
If the target system is a different endian type than your development system, you must rebuild the ELB that contains these routines. See Endian types for a list of the endian types of various systems.
- Modify help messages, input prompts, or menu entries and shortcuts in the rptctl.ism file. See Working with the ReportWriter Window Library.
- Modify ReportWriter screen messages, including the title message, by changing the relevant text in the Synergy/DE message file, syntxt.ism. See Synergy UI Toolkit Control Panel (synctl).
2. | If your customers will be writing their own reports, create repository definitions for this distribution of ReportWriter. For information, see Create New Repository utility. |
3. | If you are distributing predefined reports that depend on name link associations between the files, or if you want to give this capability to your customers, generate and distribute a repository cross-reference file. For information, see Generate Cross-Reference utility (rpsxref). |
4. | Include the required application files. |
For Windows, install Core Components and ReportWriter before installing your own application.
For Unix and OpenVMS, refer to the table below, which shows the files you need to include when you distribute ReportWriter.
For more information about spawning, chaining to, and calling ReportWriter, see Accessing ReportWriter from Your Application.
If you are… |
Include these files |
---|---|
Spawning or chaining to ReportWriter |
RPT: rpt.dbr RPTDAT: rptctl.is? RPTLIB: synrpt.elb SYNTXT: syntxt.is? WND: tklib.elb |
Calling ReportWriter with the external subroutine interface |
RPTDAT: rptctl.is? RPTLIB: synrpt.elb SYNTXT: syntxt.is? WIN: tklib.elb |
Include the required data files:
- The repository main and text files (for example, rpsmain.is? and rpstext.is?)
- The cross-reference file, if you are using one (for example, rpsxref.is?)
- The report definition file, if you are distributing predefined reports (for example, reports.rp?)
Keep in mind that your repository files and—if you’re using one—the cross-reference file must be in sync with one another, must agree with the end-user’s data file layout, and must all be distributed together.
For information on moving the repository main and text files to other systems see Moving repository files. See also Moving a cross-reference file and Moving report definition files.
5. | Set the necessary environment variables, such as RPSMFIL and RPSTFIL, to point to the location of the data files. |