Report Filter

Create a Report Filter

Use Report Filter to create or edit a filter that can be used to report on a subset of records from database objects ( Run Report option). The database may be a library, headered or ODBC link style database. Refer to the section on Databases for more information on the different styles of databases.

Database objects are also called database keys, referring to all the data associated with a particular database key name. For example: In a drillhole database, each drillhole is an object, consisting of its collar, assay, survey and geological data records.

The filter is associated with a design and consists of one selection statement for each record, and a set of fields for each record. The statement is similar to the clause after the WHERE keyword in an SQL statement with the word "record" representing an SQL table name.

Example - Report Filter Matching

Object (holeid)  (east)      (north)    (rl)

The Report filter is saved into a specification file named <env>.repf in your current working directory.


Instructions

On the Geology menu, point to Drilling, and then click Report Filter to display the Define Report Filters panel.

Use this panel to create a new report filter, as well as modify or delete an existing one.

Database

Enter, or select from the drop-down list, the name of the design (database) to which the report filter applies.

Filter

Enter, or select from the drop-down list, the name of the report filter.

Click OK.

The following panel is then displayed.

This panel displays for each record in the nominated design.

Report upon records in this table

Select whether or not to include a record. If checked, then you can enter a selection statement for the record and pick the required fields.

Click Next.


Technical Description of Report Filter Matching

The semantics/algorithm for which records in table X are to be reported is as follows:

for each record in table X for each possible set of one record from each non-X table plug field values from the set of records into the SQL-esque expression

i.e. If a set of records exists in an object (sets as constructed above), such that the expression is true, then the main record will be reported upon.

Technical Example

For three tables A, B, C A"s selection: A.DEPTH > B.FROM AND B.CU >= C.CU

will select a record Ax if and only if there exists a set of records (Ax, By, Cz) where Ax.DEPTH > By.FROM AND B.CU >= Cz.CU. So if there are 20 records of type B and 30 of type C in an object, there will be up to 20 * 30 = 600 expression evaluations for each record in A.