The report layout can be created in two ways. First way is a pure programmable way, where the developer has full control over the report. The repeating functionality could be encapsulated in a unique way into OpenEdge code.
Second way of report design is with the Viper Designer, which is used to define base layouts. Still the full power of the 4GL in this reports is available, but you can access the design like a library. The design is filled with content (merge process) from 4GL.
Technically Viper is a DLL, which is loaded from the 4GL. The interface is encapsulated into a 4 GL API and access to the layout from the Viper Designer is given through an interactive 4GL interface. We deliver a viewer for the report format, but creating PDF for cloud and SaaS printing is easy.
In Windows we use the printer driver. In Unix we can deliver PostScript or PDF. Viper is a long term stable product and under maintenance since 1997.