A report ribbon appears when reports are generated, even in runtime.
I used a Report Ribbon controller module written by Terry Kreft and Dev Ashish to make sure it is in the state I want. It appears most of it is about determining the current state then using sendkeys to open and close it as required.