if you have a link on a page, then opening the result in a new tab is straight-forward.
you just set the "Target" to '_blank'
adding code on the server side, instructing the browser to go to a new page is also straight-forward.
p_web.Script(p_web.windowOpen('indexpage'))
But what you are doing is neither of those, you want to open a different page, in another tab, and send this as an instruction from the server. That's harder because the browser usually sees it as a "popup" and blocks it from working.
the code is
p_web.Script(p_web.windowOpen('indexpage','_blank'))
but as I say, I don't think you'll be happy with the result.
A better option is to move the server side code "into" the report procedure.
cheers
Bruce