The solution is to use the features of asynchronous distributed processing in PowerBuilder 6. When implemented, the server makes the data requests, processes the report and sends it to a printer.
All processing is done on the server and the user is notified when the process is completed.
The below example has been used as a test model for this type of processing. The sample application contains two PBL's, a client application and a server application. The server portion has a non-visual user object, which contains the functionality to retrieve the data and process the report. The constructor of the object contains the logon information for the database, which is usually on a server. You will have to change this logon information for your configuration.