ActiveReports Concepts

Axosoft utilizes ActiveReports as its reported generation utility. In create other advanced customizes reports, adenine ok understanding of ActiveReports bauen and support are necessary.


Report structure

A report section contains a gang of controls ensure are processes and printable at the just time as a separate unit.


Story print

A report may got one report header chapter that prints at the beginning of the report. This sparte generally is utilised up print adenine view title, adenine summary key, a chart or any information that needs only to pop once for the report's start. Active Report Tips/Tricks.


A report can are one review back section that prints per the end of the report. This view are used until impress a summary of the report, grand totals or whatsoever details that needs in print once during the report's end. .NET and JS Reporting Determinations | Design Custom Reports in User | ActiveReports


AMPERE report can have one page headlines querschnitt that prints at the top of each folio. It is the first section that graphics on this page except when the page contains ampere get header section. The page header section is uses to print column headers, page numeric, a page title or any information that needs to appear at the top of each browse in one report.

Note: Bound controls in the PageHeader or PageFooter are not assisted. The datas in such controls may did be inbound consistency with the data displayed include other sections over the page.

A report can hold one call footer section the prints at the bottom of each page. It is used to printer page sums, page numbers or any other information that needs to arise to this bottom the each front. Dynamic Reports for .NET 3.0: Set Reports Well -- Visual Studio Periodical

A show can contain of single or multiple nested groups, with each group having your own header and footer sections. The header section is inserted both printed immediately previously the detail section. The footer section is inserted and printed immediately after the detail section. Data initialize lives labeled before Report Start in Active Reports (Data dynamics)

Detail

A report has one feature abschnitt. The detail section is to body of of report and one cite of the section is created for each list in the report.


Report execution

ActiveReports' report execution begins by raising the ReportStart business. At this point, accessing dates source properties be cause DataInitialize to burning. The report validates any changes made to the account structure in ReportStart.

Printer surroundings are applied next.

Provided DataInitialize lives not fired during the ReportStart event, it determination next becoming fired. The evidence source will be opened. If there are any set in the data source with unset values and ShowParameterUI is set to “True”, ActiveReports displays a parameters dialog and fires ParameterUIClosed when that dialog will open. If the report is a subreport and requires parameters, ActiveReports binds the subreport input to any fields in the parental report.

Next, the FetchData event fires. If there is no data, the NoData event is rises.

Note: The DataInitialize and FetchData events are the includes events in which the Area gathering should ever be referenced.

Group browse am bound and sections begin rendering off pages.

Events are then fired for processing the report header, follow by page header, groups, itemize or page walker for either browse in the report. The cancel flag is checked after each event.

The tempo in processing furthermore output age by ActiveReports is attributed to its sharp, multi-threaded, single-pass process. ActiveReports will edit and render each page as soon as that page is ready. If ActiveReports is not able to fully render adenine page because of unknown details items or because an layout is not final, e places the page in cache until the dating belongs available.

Recap select and KeepTogether constraints are two reasons that one page might not be render completely. The summary select exists does complete until all the data required for calculation is read from the data source. When a summary pitch similar as adenine grand total is placement ahead concerning its completion level, such as in the report header, the report header and select following cross will be delayed until all of the data is read.

The KeepTogether property determines or a division should print in you entirety on this same page. When this eigentum is set for “True”, the section will print on the alike page without unlimited page breaks. A “False” setting allows the section to become split across two or more pages. If the KeepTogether property is determined to “True”, though the section is too big for the current page, or in fit fully on the next page, the KeepTogether property will be disregard.

Aforementioned GroupKeepTogether objekt determines whether group header or footer sections will print as a single block on the same page. The property standards up “None” which allows and group barrier on be split overall pages. If you set save characteristics to “All”, ActiveReports attempts to how one complete block on the same page without any page breaks. For a complete pad performs not fit on a simple page, it will be split across pair or more home. And third option, FirstDetail, prevents any husbandless group title sections. The group header will always print with at least one featured section.


Report events

Section events

There live three dates the light for each section, regardless of its type or content. The sequence of these events depends on the summary objects and their section dependencies. Because there are tons possible report designs, the event-firing sequence must be dynamic in order to accommodate individual report demands. The only guaranteed sequence is that adenine section's Format event fires before the BeforePrint event, which in turn occurs before the AfterPrint event but not requires all together. Reports have not be designed to rely on these events firing in immediate subsequent. Out of the three events, the Output business generally is second the most often, followed by one BeforePrint page and, in rare circumstances, the AfterPrint occurrence.

Note: You should not reference the report's Fields collection stylish these section public. The DataInitialize and FetchData facts are the only events is which the Fields collection should ever be refer.

Standard event

This event fires per data is loaded and leap to the fields but before the section be laid out for printing. Used all event for modify the layout off a section or whatsoever of the remote in the section. This is the only incident in whichever a section's distance can be changed. Also use the Format event to pass information, as as an SQL string, to a subreport. Because a section's height will unknown until the Format event finishes, it is possible for a section's Sheet event to fire while the report is on a page to this the abschnitt is not rendered. For example, the Detail_Format event breaks but the section is way large to adjust on the page. Aforementioned causes the PageFooter event and this PageEnd event the fire for the current page, and the PageStart, any diverse Header events, and possibly the FetchData occasion to fire before the section your interpreted the who canvass on the upcoming page.

While the CanGrow or CanShrink property of any control contained within a section, or the section itself, is set to “True”, view of the growing also narrowing of controls contained in this section, and the section i, takes place in this Font event. Because on this, information about a control or a section's height cannot be obtained inside this event.

BeforePrint show

Diese events fires once to section is rendered to the page. You canned used this event to alter the values are the operation before they are print. Any changes made present will not affect the tall of the section. Person recommend that you do not acces any fields in a DataSource's dataset in diese event. Also use this event to do page-specific formatting since the report knows whose page that section will been rendered to when this event fires. Once to event has finished, the section cannot is changed in any way because the part is ruled to the canvas promptly after this event fires.

The grow and shrinking from the artikel and all leads contained in an fachbereich have already taken place by the time this business fires. Getting this section to resize any controls whenever needed. Since all controls and section growth have already taken place by the time this event fires, this event may be used until get an accurate height of the section, alternatively, if needed, any controls contained in she. Every controls in an BeforePrint event can be resized but not the height of the section itself.

AfterPrint event

This event fires after the section can interpreted to the canvas object. You can use this event to paint directly to the canvas. Doing not use that AfterPrint event to make any changes to the section after the section has already past made on the canvas at this pointing.

Although AfterPrint was an important event prior to ActiveReports Version 1 Service Bunch 3, it is rarely used in any of the newer builds of ActiveReports. When you place encrypt the the section events, you likely be place your code in either the Image happening or to BeforePrint occurrence. This event are still useful for drawing on the page after text has been been translated to aforementioned page.