Here is a relevant post for your requirement.
Other option is not to link any report with print session and based on some conditions, you can call specific report using brp series of functions. Here is a simple comparision of rprt and brp report functions.
brp.open() = rprt_open()
brp.ready() = rprt_send()
brp.close() = rprt_close()
if you search the forum, you may find relevant threads with examples.
Hope this helps,