# WebReports.Api.Reports

## Filter Class

The Filter class is used to modify filters at runtime. New Filter objects should be created by the NewFilter method of ReportFilterCollection.

A Filter object has the following properties:

- AndOrWithNext – Value indicates to use an ‘and’ or ‘or’ with the next filter added.
  - Uses the enumeration wrFilterAndOrWithNext (And, Or).
- DbName - The fully qualified database (not mnemonic) name of the filter (i.e. ‘vw_optionee.Last Name’).
- GroupWithNext – Boolean indicating if the filter should be grouped with the next filter.
- Operator – The comparison operator.
  - Uses the enumeration wrFilterOperator (EqualTo, NotEqualTo, LessThan, GreaterThan, LessThanOrEqualTo, GreaterThanOrEqualTo, StartsWith, EndsWith, Contains, Between, NotBetween, OneOf, NotOneOf).
- Prompt – Boolean indicating whether to prompt user for the value of this filter at time of execution.
- Value – value of the filter if it uses an Operator that only takes a single value. Dates must be in the following format YYYY-MM-DD.
- DataValues – values of the filter using an Operator that takes multiple values, such as One Of or Between.

A Filter object has no available methods.

## Report Class

The Report class allows advanced and express reports to be executed directly from the host application. This class does not need to be instantiated, it should be retrieved using methods defined in ReportObjectFactory. The Report class is derived from the ReportObject abstract class.

A Report object has the following properties:

- Filters – Filters collection. See ReportFilterCollection class below.
- Sorts – Sorts collection. See ReportSortCollection class below.
- ShowStatus – Boolean value. This value indicates whether to show status window during execution. Default is True.

A Report Object has the following methods:

#### GetExecuteHtml( )

Description | Executes the report and returns HTML.
Remarks | The raw HTML can be used to populate a container in the host application. Does not include Exago paging HTML viewer.

#### GetExecuteData( )

Description | Executes the report and returns data as a byte array.
Remarks | Any export type can be executed in this way; use the ExportType property prior to calling this method to set the export type.

#### GetExecuteSql( )

Description | Returns all SQL statements that would be generated as a result of executing the report.
Remarks | There may be more than one SQL statement generated if the report uses more than one SQL data source.

## ReportFilterCollection Class

This collection should not be instantiated; there is a single ReportFilterCollection object that is accessed through the Filters property of the Report object.

The Filters property of a Report object has one available method:

#### NewFilter( )

Description | Returns a new Filter object and adds it to the collection.
Remarks | The returned Filter object needs to have all of its properties filled or an error will occur.

## ReportSortCollection Class

This collection should not be instantiated; there is a single ReportSortCollection object that is accessed through the Sorts property of the Report object.

The Sorts property of a Report object has one available method:

#### NewSort( )

Description | Returns a new Sort object and adds it to the collection.
Remarks | The returned Sort object needs to have all of its properties filled or an error will occur.

## Sort Class

The Sort class is used to modify sorts at runtime. New Sort objects should be created by the NewSort method of ReportSortCollection.

A Sort object has the following properties:

- SortText – The fully qualified database (not mnemonic) name of the sort (i.e. ‘vw_optionee.Last Name’).
- Direction – Direction of the sort.
  - Uses the enumeration wrSortDirection (Ascending, Descending)

A Sort object has no available methods.