



Etchasoft Reports supports Headers and Footers at three levels: Report, Page and Groups (zero to many). Report and Group Footer sections can include numeric summary calculations plus min/max for numbers and dates. Calculations support constants, parameters values and report data source provided values.
Report Fields can support static text, data driven text (both from parameters and data rows), numeric calculations and foreground/background colors. Report Fields can be set to grow automatically to accommodate the amount of text data provided at runtime. Fields containing Numeric values and Dates can be customized using the standard date / number formatters found in Interface Builder. Additionally, Field text can be formatted using the Interface Builder fonts window.
Attributed Fields can render attributed strings with static text or data driven text (both from parameters and data rows). Attributed Fields can be set to grow automatically to accommodate the amount of text data provided at runtime.
A report image can display an image provided directly in Interface Builder at design time as well as data driven image values provided at runtime at the parameter or data row level.
Reports can contain other reports as sub-reports. Sub-reports receive data values from the containing report to drive the data that should be returned by the sub-report.
Sample Sub-Report
Forms can be created by using the vertical and horizontal line objects. Etchasoft Reports supports layering of its objects to further tailor the look of forms.
Most object types can be altered at runtime via an optional delegate method call. Attributes that can be altered include (depending on the object type): visibility, colors, fonts, field text contents, images and many more. You can interrogate the current row and/or contents of the field that is to be rendered to determine if changes are warranted.
The report object delegates also provide a simple mechanism for creating custom calculations. Just assign a reference name to a report object via its inspector and then create custom calculations, running totals, weighted averages, etc. by writing Objective-C code within optional delegate method(s) in your report controller. Below is an example of an optional delegate method handling a field called MyTrigField.

Using our available delegate methods, you can alter the appearance of your page footer at runtime, include custom page numbers and even count/total what appears on the current page for display in the page footer!
Our design allows you to take advantage of built-in Objective-C PDF methods to combine your reports.