How to set PrintAtBottom Property?
Data Dynamics Reports Support
How to set PrintAtBottom Property?
04-14-2009, 2:15 AM
We are today using a Web implementation of Active Reports .Net and are looking to port our solution to DD Reports, as soon as we've worked out all the quirks :)
Thing is, several of our account companies can have access to the same report. An invoice design for example, displays the company logo in the page header and the contact information in the page footer. This poses a bit of a challenge in DDR as it does not support data binding in the page header or footer. We got to put this information in a data region's header and footer instead. And that is how it's by standard converted from an RPX-file.
The header part won't be a problem, but what about the footer; getting it to actually
print at the bottom
of every page (as we for that matter do with many other things like signature lines)? There's no design support for doing this in DDR today (1.6.1132).
Some digging in the documentation, though, revealed that there is such a property after all. Are we today not able to set this property in any way (as it appears to be read only)? As far as we can determine, this would make most of our designs pretty much impossible to replicate in DDR?
DataDynamics.Reports.Extensibility.Rendering.Components Namespace
>
IFooterBand Interface
: PrintAtBottom Property
Indicates that this footer band will print at the bottom of the page.
Overridable ReadOnly Property PrintAtBottom As Boolean
Dim instance As IFooterBand
Dim value As Boolean
value = instance.PrintAtBottom
C#
virtual bool PrintAtBottom {get;}
Re: How to set PrintAtBottom Property?
04-15-2009, 2:03 AM
Hello,
I would like to tell you that we do not support banded list footer to be printed at the bottom on every page like the page footer. However there are two workarounds for implementing it:
1. If you can guarantee that a set of textboxes appears on every page then you could hide them and reference them from the page header or footer. For example: if you output the address in a textbox named ContactInfo that is output on every page, then you can access the value of that textbox from the page header/footer:
=ReportItems! ContactInfo.Value
2. Add the hidden report parameters in the report, set the default value of the parameters to the data set fields which should be shown at the bottom of every page(i.e. the contact information), then show the parameters in the page footer.
Regards,
Sandeep
Re: How to set PrintAtBottom Property?
04-16-2009, 3:57 AM
Both this options will work fine - we've tried option 2 successfully.
Re: How to set PrintAtBottom Property?
04-16-2009, 12:50 PM
Excellent. Thank you for the follow up.
Re: How to set PrintAtBottom Property?
02-26-2010, 2:49 AM
Is the above recommendation still the best option and if 'yes', do you intend to develop support for printing groupfooters at the bottom of the page?
Re: How to set PrintAtBottom Property?
03-11-2010, 5:43 AM
Method 2 is really a bad one.
If you use method two the report will generate a sql query per parameter per row.
ie. if you have 10 parameters set up like that and the SQL result is 10 rows the report will query the same query 100 times.
Not only will it do it 100 times it will also login och logout between every query.
If you have a query that takes 2 seconds it will take DDR 200 seconds to even start rendering the report.
That is not a good solution.
I have used SQL profiler to confirm this.
Re: How to set PrintAtBottom Property?
03-11-2010, 7:06 AM
Can you please attach the report showing this behavior? Thanks, James
Re: How to set PrintAtBottom Property?
03-11-2010, 7:28 AM
It's an invoice document.
It's set up to be able to handle more than one invoice at a time and individually give them a page number within the invoice.
There is a header part and a footer part on each page. The graphical header is actually not a page header but a Group header in the BandedList.
The footer is a page footer that need to be rendered in the bottom of every page.
I have now started experimenting with placing textboxes after the banded list and hiding them and then referencing them from the footer. It seems to work a lot better even tho it's a really ugly and hacky solution.