Capture the ID of the Invoice record in a variable. Use Select Window to put the focus on the original window. Use the value in the variable to perform a find for invoice record.
Don't try to bring it up in the original window. Use another GTRR with another new window option, but specifying the layout in the original layout. If you place this window exactly on top of the original window, it will look much like you brought up the invoice in the origial window. The catch to this method is that repeated clicks of the button in the portal row will stack up multiple windows on top of the original. You'd need to use a global variable or global field to keep a list of all such windows so that you can close those now longer needed.
Thank you Phil
Yes, I was trying to avoid multiple windows being open hence the request...
I think I will try out option 1...thanks again
Having a small isssue. It all works except it is still using the portal window layout to displaythe invoice that has been identifed using the variable. Where in the script should I put the select window? Is there a way to set the layout to be "contact"? At the moment i have set the window name when the layout is entered by using a script step is this how it should be done?
Set Variable [$InvoiceID ; Invoices::InvoiceID]
Select Window [//specify name of original window. Get ( FileName ) may work for that]
Enter find mode 
and so forth.