+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>\r
-<chapter xml:id="template-terminology" xmlns="http://docbook.org/ns/docbook" version="5.0" xml:lang="EN"\r
- xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink">\r
- <info>\r
- <title>Template Terminology</title>\r
- </info>\r
- <para> </para> \r
- <simplesect xml:id="create-template-datatypes">\r
- <info>\r
- <title>Data Types</title>\r
- </info> \r
- <informalfigure> <para>The central column of the <guilabel>Database Source Browser</guilabel> lists\r
- <guilabel>Field Name</guilabel> and <guilabel>Data Type</guilabel> for the\r
- selected database table. </para>\r
- <para><mediaobject>\r
- <imageobject>\r
- <imagedata scalefit="0" fileref="../media/create-template-33.png"/>\r
- </imageobject> \r
- </mediaobject></para> \r
- </informalfigure>\r
- <para>Each data type has its own characteristics and uses:</para>\r
- <informaltable>\r
- <tgroup cols="3" align="left" colsep="1" rowsep="1">\r
- <colspec colnum="1" colname="type" colwidth="1.0*"/>\r
- <colspec colnum="2" colname="description" colwidth="1.0*"/>\r
- <colspec colnum="3" colname="notes" colwidth="2.0*"/>\r
- <thead>\r
- <row>\r
- <entry>Data Type</entry>\r
- <entry>Description</entry>\r
- <entry>Notes</entry>\r
- </row>\r
- </thead>\r
- <tbody>\r
- <row>\r
- <entry>id</entry>\r
- <entry>Unique number assigned by the database to identify a\r
- record</entry>\r
- <entry>A number that is a meaningful reference for the database but not of much use to a human user. Use in <guilabel>displayed fields</guilabel> when counting\r
- records or in filters.</entry>\r
- </row>\r
- <row>\r
- <entry>text</entry>\r
- <entry>Text field</entry>\r
- <entry>Usually uses the <guilabel>Raw Data</guilabel> transform.</entry>\r
- </row>\r
- <row>\r
- <entry>timestamp</entry>\r
- <entry>Exact date and time</entry>\r
- <entry>Select appropriate date/time transform. <guilabel>Raw\r
- Data</guilabel> includes second and timezone information, usually more than is required for a report.</entry>\r
- </row>\r
- <row>\r
- <entry>bool</entry>\r
- <entry>True or False</entry>\r
- <entry>Commonly used to filter out deleted item or patron records.</entry>\r
- </row>\r
- <row>\r
- <entry>org_unit</entry>\r
- <entry>A number representing a library, library system, or\r
- federation</entry>\r
- <entry>When you want to filter on a library, make sure that the field\r
- name is on an <guilabel>org_unit</guilabel> or <guilabel>id</guilabel> data type.</entry>\r
- </row>\r
- <row>\r
- <entry>link</entry>\r
- <entry>A link to another database table</entry>\r
- <entry><guilabel>Link</guilabel> outputs a number that is a meaningful\r
- reference for the database but not of much use to a human user. You\r
- will usually want to drill further down the tree in the\r
- <guilabel>Sources</guilabel> pane and select fields from the\r
- linked table. However, in some instances you might\r
- want to use a <guilabel>link</guilabel> field. For example, to count the number of patrons who borrowed items you could do\r
- a count on the <guilabel>Patron</guilabel> <guilabel>link</guilabel> data.</entry>\r
- </row>\r
- <row>\r
- <entry>int</entry>\r
- <entry>Integer</entry>\r
- <entry/>\r
- </row>\r
- <row>\r
- <entry>money</entry>\r
- <entry>Number (in dollars)</entry>\r
- <entry/>\r
- </row>\r
- </tbody>\r
- </tgroup>\r
- </informaltable>\r
- </simplesect>\r
- <simplesect xml:id="create-template-transforms">\r
- <info>\r
- <title>Field Transforms</title>\r
- </info>\r
- <informalfigure> <para>A <guilabel>Field Transform</guilabel> tells the reporter how to process a field\r
- for output. Different data types have different transform options. </para>\r
- <para> <mediaobject>\r
- <imageobject>\r
- <imagedata scalefit="0" fileref="../media/create-template-34.png"/>\r
- </imageobject>\r
- </mediaobject></para></informalfigure>\r
- \r
- \r
- <formalpara><title>Raw Data</title><para> To display a field exactly as it appears in\r
- the database use the <guilabel>Raw Data</guilabel> transform, available for all data\r
- types.</para></formalpara>\r
- \r
- <formalpara><title><guilabel>Count</guilabel> and <guilabel>Count Distinct</guilabel></title><para> These transforms\r
- apply to the <guilabel>id</guilabel> data type and are used to count database\r
- records (e.g. for circulation statistics). Use <guimenuitem>Count</guimenuitem> to\r
- tally the total number of records. Use <guilabel>Count Distinct</guilabel> to count\r
- the number of unique records, removing duplicates. </para></formalpara>\r
- <para>To demonstrate the difference between <guilabel>Count</guilabel> and\r
- <guilabel>Count Distinct</guilabel>, consider an example where you want to know\r
- the number of active patrons in a given month, where <emphasis>active</emphasis>\r
- means they borrowed at least one item. Each circulation is linked to a Patron ID, a\r
- number identifying the patron who borrowed the item. If we use the <guilabel>Count\r
- Distinct</guilabel> transform for Patron IDs we will know the number of unique\r
- patrons who circulated at least one book (2 patrons in the table below). If instead,\r
- we use <guilabel>Count</guilabel>, we will know how many books were circulated,\r
- since every circulation is linked to a patron ID and duplicate values are also\r
- counted. To identify the number of active patrons in this example the\r
- <guilabel>Count Distinct</guilabel> transform should be used.</para>\r
- \r
- <informaltable>\r
- \r
- <tgroup cols="3" align="left" colsep="1" rowsep="1">\r
- <colspec colnum="1" colname="title" colwidth="2.0*"/>\r
- <colspec colnum="2" colname="id" colwidth="1.0*"/>\r
- <colspec colnum="3" colname="name" colwidth="1.0*"/>\r
- \r
- <thead>\r
- <row>\r
- <entry>Title</entry>\r
- <entry> Patron ID</entry>\r
- <entry> Patron Name</entry>\r
- </row>\r
- </thead>\r
- <tbody>\r
- <row>\r
- <entry> Harry Potter and the Chamber of Secrets</entry>\r
- <entry> 001</entry>\r
- <entry> John Doe</entry>\r
- </row>\r
- \r
- <row>\r
- <entry> Northern Lights</entry>\r
- <entry> 001</entry>\r
- <entry> John Doe</entry>\r
- </row>\r
- <row>\r
- <entry> Harry Potter and the Philosopher’s Stone</entry>\r
- <entry> 222</entry>\r
- <entry> Jane Doe</entry>\r
- </row>\r
- \r
- </tbody>\r
- </tgroup>\r
- </informaltable> \r
- <informalfigure>\r
- <formalpara><title>Output Type</title><para> Note that each transform has either an <guilabel>Aggregate</guilabel> or\r
- <guilabel>Non-Aggregate</guilabel> output type. </para></formalpara>\r
- \r
- <para> <mediaobject>\r
- <imageobject>\r
- <imagedata scalefit="0" fileref="../media/create-template-35.png"/>\r
- </imageobject>\r
- </mediaobject></para>\r
- </informalfigure>\r
- <para> Selecting a <guilabel>Non-Aggregate</guilabel> output type will return one row of\r
- output in your report for each row in the database. Selecting an\r
- <guilabel>Aggregate</guilabel> output type will group together several rows of\r
- the database and return just one row of output with, say, the average value or the\r
- total count for that group. Other common aggregate types include minimum, maximum,\r
- and sum. </para>\r
- <para>When used as filters, non-aggregate and aggregate types correspond to <guilabel>Base</guilabel> and <guilabel>Aggregate</guilabel> filters respectively. To see the difference between a base filter and an aggregate filter, imagine that\r
- you are creating a report to count the number of circulations in January. This would\r
- require a base filter to specify the month of interest because the month is a\r
- non-aggregate output type. Now imagine that you wish to list all items with more\r
- than 25 holds. This would require an aggregate filter on the number of holds per\r
- item because you must use an aggregate output type to count the holds.</para> \r
- </simplesect> \r
-</chapter>\r