the report header, only prints once per report. It will use the value from the first record, generally. If you have a subreport that runs before the report, you could return the values via a shared variable so that it can be reported in the report header.
Standard Note: I don't like subreports as they degrade a report's performance. You can usually achieve the same functionality by using a stored proc/view and asking it to assemble the information that you need, thereby only hitting the database 1 time. If the database is small, or the report doesn't retrieve much data, this might be a moot point. Just things to keep in mind.