I'm generally not a fan of this "base class for this section" thing.

While it's an inheritance hierarchy that exists conceptually, I don't think it's a useful thing to encode in code.  It makes things too tightly coupled.  Better to have each individual report explicitly specify what it depends on, and you don't have to worry about any weird multiple inheritance issues (any more than there already are).