The Particulars:
I have a report that displays information about invoices. There is a page break between multiple invoices (each invoice gets its own page). What I want in the report header is the result of this expression (ex. "June, 2009"):
=MonthName(Month(ReportItems!textbox1.Value)) & ", " & cstr(Year(ReportItems!textbox1.Value))
But I get this exception (textbox2 is in the header):
Error 1 [rsMultiReportItemsInPageSectionExpression] The Value expression for the textbox ‘textbox2’ refers to more than one report item. An expression in a page header or footer can refer to only one report item.
First of all... Why would that even matter?! Second of all... How can I work around this strange restriction?
The Big Picture:
The reason I'm grabbing the text from another textbox is to work around the restriction that you can't use data fields in a header or footer. So there's a hidden column that shows the invoice date next to every transaction. Then the table header has the expression:
=First(Fields!InvoiceDate.Value, "table1_Group1")
This seems ridiculous and I hope I'm just doing something wrong. Yes I realize I could simply have a "month" and "year" text box in the header but that pushes the complexity way too high for the simple requirement of showing an invoice date in the header of a report.
I came back to this issue and found a way around the buggy behavior in SSRS.
All formatting can be done inside the column header instead of up in the page header. The text box in the page header simply grabs the already formatted (and complete) text from the column header all at once. No more multiple references.
This is a hackish workaround for a strange limitation which is the result of a hackish workaround for another strange limitation. But it works.