How Do I Prevent the Creation of an I/O Device Until it is Actually Used? (Magic xpa 3.x)
As soon as an I/O device is opened, a new file or print job is created. However, since files are opened before a task actually begins processing, that means that a task which does not end up creating any output still ends up creating an empty I/O device. This can be particularly irritating in certain report setups, because a blank sheet of paper ends up being printed.
You can prevent this by using Options->Environment->Preferences->IO device Open Timing. If you set this to On Demand, then the I/O device will not be opened until there is something to output. In other words, it will be opened as soon as there is an Form Output operation. If it is set to Immediate, then the I/O device will be created as soon as the task that declares it is opened.
Hint: You can further optimize your report jobs by being careful where you put your report header output operations. If these operations are in Task Prefix, then they will output a form before any records are processed, which may again result in an empty report. However, if you put them in a Group Prefix or have them print automatically as Page Headers, then they will not print until there is some record being processed.