This is regarding the CustSt report style – which is a simple enough report except that the fields in the header portion still cause a PDF (1 page) to be created even though the customer data portion (lower portion) has no data.
This is because there are two datasets: 1) “Company” (for our phone, fax, etc) to show in the header and 2) “Customer_InvcHead_CashDtl_RptLabel” which is used to grab the customer statement details.
Since the two datasets are disconnected when the detail data produces no records, there is nothing to tell the Company dataset not to run so it always produces one semi-blank page (just some half-baked field data at the very top):
The real reason is the the customer detail dataset has a filter on it to only show where [OpenInvoice] = true and since that filter can’t be applied to the Company dataset, the Company query produces data.
Does this report need an overhaul or is there an easy fix that someone knows about before I reach out to Professional Services?
Is the fields that show in a page header, or tablix row(s)?
If it is Tablix row’s you could set the visibility based on a field from Cust_InvHead_Cash… If it is null, then hide the row(s).
good question… that was my first go to but those fields are in the Header portion of the page unfortunately.
What if I added a visibility expression that equated to false (eg. where no data existed in the other dataset) to all the labels and fields in the header – would the generator see that as an empty page result and not create any output, or would it still produce a PDF (but completely blank)?
I think the only visibility option on Headers (and footers) is to suppress them on the first (or last) page.
Ideally you find a way to join the datasets, so that the company one is blank when no data exists for the other one.
So what if the content in the Header area was just a static image (eg. a logo) and no field data from anywhere. The header would produce the logo but the lower details portion would not… Wouldn’t that also produce an incomplete page if the detail dataset’s filter produced no records?
Sorry I’m not intimately familiar with all the nuances of how SSRS decides to produce output.
Epicor’s Dan Pringle helped me out… The solution was to remove the [OpenInvoice] = true filter from the dataset and use the Filter widget in the routing rules and filter there instead.
I love Dan! Guy knows his stuff.