Hi Karen. If I'm following:
You've got a Document report in hand
You can group by Project
But you cannot group by project:portfolio:name, nor (then) by project:program:name, (and then presumably) by project:name
When an object that I want to use is too many hops away in the data model (e.g. project:portfolio:name), I add custom data to pull it closer. Appreciating that you don't want to burden the PMs by forcing them to add a custom form to every document, there's still an opportunity here: create a custom calculated parameter on the Project called "ProjectPortfolio" with a formula of "Portfolio Name". That will pull the Portfolio "down" to the Project. Then, in your Document report, you can group by project:ProjectPortfolio. Rinse and repeat for Program, and you're home free.
Now: the fine print.
Don't name the special calculated parameter with the same name as a built in field (e.g. Portfolio): both Workfront and you will get confused on which is which
Be aware that sometimes such data can get "stale", and be out of sync with the real data
In such cases, a recalculation of the custom data usually corrects any discrepancies, which you can accomplish manually by doing a bulk recalculate custom expressions, on mass automatically using our Recalc Helper solution, or even on a scheduled basis (e.g. nightly) using our Double-Recalc Custom Parameter Values solution
Good luck with it!
Regards,
Doug