<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Data Views Archives - Caliach</title>
	<atom:link href="https://caliach.com/article-categories/data-views/feed/" rel="self" type="application/rss+xml" />
	<link>https://caliach.com/article-categories/data-views/</link>
	<description>Manufacturing Software Solutions</description>
	<lastBuildDate>Tue, 12 Sep 2023 07:36:27 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://caliach.com/wp-content/uploads/2022/11/fav-150x150.png</url>
	<title>Data Views Archives - Caliach</title>
	<link>https://caliach.com/article-categories/data-views/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Data Views: Data View Errors and Warnings</title>
		<link>https://caliach.com/knowledge-base/wdataviewerrors/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:52 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewerrors/</guid>

					<description><![CDATA[<p>Data Views: Data View Errors and Warnings</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewerrors/">Data Views: Data View Errors and Warnings</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Errors and Warnings</h2>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Errors and Warnings</p>
<p><img fetchpriority="high" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewerrors.jpg" width="453" height="294" alt="Data View Errors and Warnings window"/></p>
<p>The window opens after a Save to list errors identified in the design before the save is carried out.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Save Anyway</p>
</td>
<td valign="top">
<p align="left">Click to save the design despite the errors identified.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Cancel</p>
</td>
<td valign="top">
<p align="left">Aborts the process currently in session. The keyboard equivalent is the Esc key for Windows computers and Command-.(full stop or period) for the Mac.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">OK</p>
</td>
<td valign="top">
<p align="left">The OK button updates the data you have entered, or confirms the selection and/or processes the function you have called.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
<li><a href="../dataviews/tbdataviewtools">Data View Maintenance Toolbar</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 14 May 2012 12:44:00.00. Class wDataViewErrors last modified 23 Sep 2017  10:50:51.</p>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Errors and Warnings</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewerrors/">Data Views: Data View Errors and Warnings</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Data View Table Columns</title>
		<link>https://caliach.com/knowledge-base/wdataviewfields/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:52 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewfields/</guid>

					<description><![CDATA[<p>Data Views: Data View Table Columns</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewfields/">Data Views: Data View Table Columns</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Table Columns</h2>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Table Columns</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewfields.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewfields.jpg" width="244" height="281" alt="Data View Table Columns window"/></a></p>
<p>This window is used to select and apply columns for the Data View and operates on the <a href="wdataviewmaint">Data View Maintenance</a>. Select a table or column in either of the lists and <b>drag-and-drop</b> it into the location on the maintenance window where you want to use it.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Table list</p>
</td>
<td valign="top">
<p align="left">List of main database tables supported internally by schema classes.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Column list</p>
</td>
<td valign="top">
<p align="left">List of columns in the selected table. Use drag-and-drop onto the maintenance window entry fields.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 5 Jan 2015 10:29:00.00. Class wDataViewFields last modified 23 Sep 2017  10:50:51.</p>
<p id="navline"><img decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Table Columns</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewfields/">Data Views: Data View Table Columns</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Data View Data Collection History Maintenance</title>
		<link>https://caliach.com/knowledge-base/wdataviewhistory/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:52 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewhistory/</guid>

					<description><![CDATA[<p>Data Views: Data View Data Collection History Maintenance</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewhistory/">Data Views: Data View Data Collection History Maintenance</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Data Collection History Maintenance</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Data Collection History Maintenance</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewhistory.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewhistory.jpg" width="491" height="176" alt="Data View Data Collection History Maintenance window"/></a></p>
<p>This window is used to manage Data View data collection history and opens from the <b>Manage History</b> button on the <b>Advanced</b> tab of the <a href="wdataviewmaint">Data View Maintenance</a> window.</p>
<p>For more details of data view data collection history see the discussion in <a href="dataviewintro#cache">Introduction to Data Views</a>.</p>
<p>The important information related to the data collection is the language, the collection date and time, the date and time that it expires as a cache record, the date and time it ceases being active and hence updated with a new data view collection, the date after which the history record will be automatically deleted and, finally, the ledgers accounting period it was collected in.</p>
<p>Within the list you can change the date/time values manually using the <b>click-hover</b> technique. You can also change the Ledger Period to a valid descriptor. If your entry is invalid it will overwrite with the last descriptor on file. If you blank the date for <b><i>Delete after</i></b> you will change it to the extreme date/time, so it will never be deleted.</p>
<p>You can also delete an unwanted history record by selecting the list line and clicking on the <b>Delete Selected</b> button.</p>
<p>Finally, a useful tool is to use the <b>Show Data Collected</b> button to review the data collected on that occasion.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Data view history list</p>
</td>
<td valign="top">
<p align="left">List of data collection history records.</p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Show Data Collected</p>
</td>
<td valign="top">
<p align="left">After selecting a record, click to show the data collected for this record.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> If, for some reason, you want to change the data results of a Data View History record, you can using the following procedure:</p>
<ol>
<li>Select the history record in the list and click the <b>Show Data Collected</b> button.</li>
<li>In the <a href="wdataviewresultlist">Data View Result List</a> window, where the results will be listed, you will find that you can click-hover edit individual data cell values.</li>
<li>After you change something in this way an extra <img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19100.jpg" width="16" height="16" alt="Save"/> <b>Save</b> icon button to the left of the <b>Print</b> button will become visible.</li>
<li>Click on this to re-save the data with your changes. Just close the window to abandon the changes.</li>
</ol>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Delete Selected</p>
</td>
<td valign="top">
<p align="left">After selecting a record, click to delete it.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 4 Jun 2012 04:27:00.00. Class wDataViewHistory last modified 23 Sep 2017  10:50:51.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Data Collection History Maintenance</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewhistory/">Data Views: Data View Data Collection History Maintenance</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Data View Maintenance</title>
		<link>https://caliach.com/knowledge-base/wdataviewmaint/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:52 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewmaint/</guid>

					<description><![CDATA[<p>Data Views: Data View Maintenance</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewmaint/">Data Views: Data View Maintenance</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Maintenance</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Maintenance</p>
<p>A full introduction to Data Views can be found in the <a href="dataviewintro">Introduction to Data Views</a> topic.</p>
<p>This window is where a design of a Data View is constructed. It is controlled in turn by the <a href="tbdataviewtools">Data Views Tools</a> window toolbar.</p>
<p>There are two drop-down lists above the tab pane in which you can select already created Data Views.</p>
<p>A Data View elsewhere is specifically identified by it&#8217;s <b>name</b>. The <b>classification</b> is used to group data view designs into sensible groupings.</p>
<p>When saved the design is saved in the database in the XMLFILE, in which Graph 2 designs are also saved. All the details are in fact stored in an XML structure which can be viewed by any XML viewer or on a web browser.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Classifications droplist</p>
</td>
<td valign="top">
<p align="left">A list of Classifications. Select to build a list of Data Views.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Names droplist</p>
</td>
<td valign="top">
<p align="left">A list of Data Views for the selected Classification. Select to maintain.</p>
</td>
</tr>
</table>
<p/>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint1.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint1.jpg" width="462" height="313" alt="Data View Maintenance window and Data View Basics tab pane."/></a></p>
<p>The window has 5 tab panes.</p>
<p><span class="helpTab"><a href="#tab1">Data View Basics</a></span> <br />
<span class="helpTab"><a href="#tab2">Result Columns</a></span> <br />
<span class="helpTab"><a href="#tab3">SQL Searches</a></span> <br />
<span class="helpTab"><a href="#tab4">Tables + Joins</a></span> <br />
<span class="helpTab"><a href="#tab5">Advanced</a></span> </p>
<h3><a name="tab1" id="tab1"/>Data View Basics</h3>
<p>The basic definitions for the data view.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Classification</p>
</td>
<td valign="top">
<p align="left">The data view classification which is used to group data views. For example Parts, Customers, Sales, etc.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Name</p>
</td>
<td valign="top">
<p align="left">The data view name which is used to identify the generated list of data for the use in a review, report or graph.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Description</p>
</td>
<td valign="top">
<p align="left">A general purpose description for the data view.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Design notes</p>
</td>
<td valign="top">
<p align="left">Design notes and history.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Thumbnail</p>
</td>
<td valign="top">
<p align="left">Thumbnail picture of view.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">User access</p>
</td>
<td valign="top">
<p align="left">User access (comma-delimited list of users IDs that have access)</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Group access</p>
</td>
<td valign="top">
<p align="left">Group access (comma-delimited list of groups that have access)</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Main table droplist</p>
</td>
<td valign="top">
<p align="left">The primary search main table. This determins which, if any, search interface or user search can be used.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Search interface</p>
</td>
<td valign="top">
<p align="left">The class name and parameters of the subwindow that will provide the user interface for data collection. This will be automatically selected, if available, after choosing the primary search main table. When the Data View is run the <a href="wdataviewsearch">Data View Data Selection</a> window will open and provide the user with primary record selection control. If you have a User Interface entered, that is the mechanism of data aquisition that will be ued. All others will be ignored. The following are available:</p>
<ul>
<li>ASSFILE: <a href="../gl/wacglassselect">Asset Register Selection</a> (GL ScratchPad drag and drop acts on  Asset Account)</li>
<li>CPTFILE: <a href="../cusparts/wcptselect">Customer Parts Selection</a> (Parts and Customer ScratchPad drag and drop)</li>
<li>CUSFILE: <a href="../customers/wcusselect">Customer Selection</a> (Customer ScratchPad drag and drop)</li>
<li>DEAFILE: <a href="../market/wmarketselect">Marketing Business Selection</a> (Customer and Supplier ScratchPad drag and drop)</li>
<li>ENGFILE: <a href="../eng/wengselect">Engineering Document Selection</a> (Parts ScratchPad drag and drop)</li>
<li>GLAFILE: <a href="../gl/wacglselect">G/L Account Selection</a> (G/L ScratchPad drag and drop)</li>
<li>JBIFILE: <a href="../jobhistory/wjbiselect">Job Item Selection</a> (Parts, Customer and GL ScratchPad drag and drop)</li>
<li>JOBFILE: <a href="../jobs/wjobselect">Job and Estimate Selection</a> (Customer ScratchPad drag and drop)</li>
<li>NCRFILE: <a href="../qatracking/wncrselect">Non-Conformance Report Selection</a> (Parts ScratchPad drag and drop)</li>
<li>POHFILE: <a href="../purchases/wpohselect">Purchase Order Selection</a> (Supplier ScratchPad drag and drop)</li>
<li>POLFILE: <a href="../purchases/wpolselect">PO Item Selection</a> (Parts, Supplier and GL ScratchPad drag and drop)</li>
<li>PPTFILE: <a href="../purchparts/wpptselect">Purchase Parts Selection</a> (Parts, Supplier ScratchPad drag and drop)</li>
<li>PROFILE: <a href="../routes/wproselect">Process Route Selection</a> (Parts ScratchPad drag and drop)</li>
<li>PTMFILE: <a href="../parts/wptmselect">Parts Selection</a> (Parts, Supplier and GL ScratchPad drag and drop (GL acts on sales account))</li>
<li>PUHFILE: <a href="../pohistory/wpuhselect">Purchase History Selection</a> (Parts, Supplier and GL ScratchPad drag and drop)</li>
<li>QAHFILE: <a href="../qatracking/wqaselect">Quality Assurance Results Selection</a> (Parts ScratchPad drag and drop)</li>
<li>SAHFILE: <a href="../dispatch/wsahselect">Sales History Selection</a> (Parts, Customer and GL ScratchPad drag and drop)</li>
<li>SNOFILE: <a href="../serialno/wsnoselect">Serial Number Selection</a> (Parts and Customer ScratchPad drag and drop)</li>
<li>SNTFILE: <a href="../serialno/wsntselect">Serial Number Tracking Selection</a> (Customer ScratchPad drag and drop)</li>
<li>SOLFILE: <a href="../sales/wsolselect">Sales Order Line Item Selection</a> (Parts, Customer and GL ScratchPad drag and drop)</li>
<li>SUPFILE: <a href="../suppliers/wsupselect">Supplier Selection</a> (Supplier ScratchPad drag and drop)</li>
<li>TRCFILE: Not available</li>
<li>TRSFILE: <a href="../inventory/wtrsselect">Stock Transfer Selection</a> (Parts ScratchPad drag and drop)</li>
<li>WKOFILE: <a href="../workorders/wwkoselect">Work Order Selection</a> (Parts ScratchPad drag and drop)</li>
<li>WOHFILE: <a href="../wohistory/wwohselect">Work History Selection</a> (Parts ScratchPad drag and drop)</li>
</ul>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> Normally you do not want a user confronted with a Search Interface when they are presented with the <a href="../general/wkpidisplay">Key Performance Indicators</a> window and therefore they should be avoided when the Data View is to be used for a KPI or in a Graph to be used in a KPI. However, they can be, if that is your need. If so you should be especially careful to enter some <b>User Instructions</b> so the user can understand what to do with the Search Interface window which will be automatically presented. Only by completing the Search Interface will the KPI be populated with data.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">User search</p>
</td>
<td valign="top">
<p align="left">Optionally the name of a user custom search for the primary search main table.  If you have no User Interface entered and a User Search entered, the user search will be the mechanism of data aquisition that will be ued. Others will be ignored.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">User instructions</p>
</td>
<td valign="top">
<p align="left">Any user instructions or help that will be shown above the search interface, whether or not you are using one.</p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Custom Search</p>
</td>
<td valign="top">
<p align="left">Click to select an available custom search or design your own special custom search.</p>
</td>
</tr>
</table>
<p><a href="#top">Back to top</a></p>
<h3><a name="tab2" id="tab2"/>Result Columns</h3>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint2.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint2.jpg" width="451" height="231" alt="Result Columns tab pane."/></a></p>
<p>The result set is a matrix list of data. The column data definitions are made here.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Columns list</p>
</td>
<td valign="top">
<p align="left">List of data groups for the data view. Use the delete key to remove a group. You must have at least one group.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Column name</p>
</td>
<td valign="top">
<p align="left">The name of the result list column.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Sort order</p>
</td>
<td valign="top">
<p align="left">A sort order for this column when the list is sorted after any subtotalling. Up to nine columns  can be used for the list sorting. Sorting takes place after any literal substitution but before any formatting.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Table column</p>
</td>
<td valign="top">
<p align="left">If entered this must be a table that will be used in the data aquisition.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Descending</p>
</td>
<td valign="top">
<p align="left">Check for for a descending order sort.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Datatype</p>
</td>
<td valign="top">
<p align="left">Select from the dropdown list of field types. The subtype list will be reset depending on your selection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Subtype</p>
</td>
<td valign="top">
<p align="left">Select from the dropdown list of data subtypes. The subtype list will be reset depending on your selection of datatype.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Maximum characters</p>
</td>
<td valign="top">
<p align="left">The maximum length of character fields.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Total mode</p>
</td>
<td valign="top">
<p align="left">Select from the dropdown list of totalling modes for the group.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Subtotal options interval</p>
</td>
<td valign="top">
<p align="left">The column subtotal interval. Number of characters for character fields or integer for numbers.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Subtotal options interval start</p>
</td>
<td valign="top">
<p align="left">The column subtotal interval start for number datatypes.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Date subtotal droplist</p>
</td>
<td valign="top">
<p align="left">Select from the dropdown list of date subtotal options.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Literal substitution list</p>
</td>
<td valign="top">
<p align="left">Comma separated list of values and their substituted text, in pairs.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Format string</p>
</td>
<td valign="top">
<p align="left">Optional column data formatting string as used in a jst() function. See help.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Format calculation</p>
</td>
<td valign="top">
<p align="left">A calculation applied to the column for formatting purposes. #S1 must be used to refer to the column value before being formatted.</p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Add Column</p>
</td>
<td valign="top">
<p align="left">Click to add a further group.</p>
</td>
</tr>
</table>
<p><a href="#top">Back to top</a></p>
<h3><a name="tab3" id="tab3"/>SQL Searches</h3>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint3.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint3.jpg" width="449" height="231" alt="Searches on the data to generate the data for the view using SQL Select."/></a></p>
<p>Searches on the data to generate the data for the view.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Search number</p>
</td>
<td valign="top">
<p align="left">Searches are carried out in sequence. Select to maintain.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Pre-search program code</p>
</td>
<td valign="top">
<p align="left">Omnis Studio code that will be run before the data collection starts. Optionally used for preparation and setting up constants or otherwise setting values to drive the selection process.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Standard search generator context menu</p>
</td>
<td valign="top">
<p align="left">Use this menu applies standard pre-search program code and Main table where clause.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Dynamic Query name</p>
</td>
<td valign="top">
<p align="left">A Dynamic Query is a pre-defined data collection mechanism. Typically all reports that use a selection window use Dynamic Queries. They are stored in the Extras/Statements.db database. If you have no User Interface or User Search entered, the Dynamic Query will be the mechanism of data aquisition that will be ued. Others will be ignored. Click on the button beside the field to choose from a list.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Sort Set,Number</p>
</td>
<td valign="top">
<p align="left">With a Dynamic Query the order of data returned can be controlled by a named Sort Set, just as typical report selection windows has radio buttons to allow the user to control the order. A sort set name followed by a comma and number will set the Sort Order just like the radio buttons do. For example, A parts report uses Cal_PtmPrint sort set and ,5 will order parts by stores preferred location (first radio buton is value 0).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Statement Shortcut name</p>
</td>
<td valign="top">
<p align="left">Statement Shortcuts are pre-defined data collection mechanisms of a more targetted nature than Dynamic Queries. They are similarly stored in Statements.db and are generally work for any server engine. They often are much faster than Dynamic Queries as they target a more limited set of data. If you have no User Interface, User Search or Dynamic Query entered, the Statement Shortcut will be the mechanism of data aquisition that will be ued. Others will be ignored.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Bind variable row</p>
</td>
<td valign="top">
<p align="left">Bind variables are a way of passing variable data into a fixed SQL statement in text. They can be used for Statement Shortcuts, SQL Text and Table and Join mechanism. For example, say you wanted to have a data view of dispatches yesterday. The where clause would need to be:</p>
<pre>WHERE SAHDDAT='2015-01-10'</pre>
<p>It would be very tedious to manually have to change the date each day. What we can do to solve this is change to a bind variable which would look like this:</p>
<pre>WHERE SAHDDAT=@[iRow.C1]</pre>
<p>and have a Bind variable row of:</p>
<pre>#D-1~23~0~0</pre>
<p>The bind variable is a column of a row variable which in this example is today&#8217;s date (#D) minus 1. The syntax used defines the data calculation for one or more columns and it&#8217;s type, subtype and sub-length as 4 entries separated by a ~ character. To add more columns repeat, so:</p>
<pre>#D-1~23~0~0~#D-2~23~1000~0</pre>
<p>Will create a two column row with C1 containing yesterdays date and C2 containing tomorrow&#8217;s date and time.</p>
<p>The permitted types are:</p>
<ul>
<li>22 = Boolean always with ~0~0</li>
<li>21 = Character always with ~0~N for the max length</li>
<li>23 = Date or time (see below)</li>
<li>26 = Integer (see below)</li>
<li>25 = Number (see below)</li>
<li>24 = Sequence number always with ~0~0</li>
</ul>
<p>Permitted subtypes are:</p>
<ul>
<li>For Date:</li>
<li>~0~0 = Date only</li>
<li>~1000~0 = Datetime</li>
<li>~6~0 = Time only</li>
<li>For Integers:</li>
<li>~32~0 = short 0-255</li>
<li>~0~0 = 32 bit</li>
<li>~64~0 =64 bit</li>
<li>For Numbers:</li>
<li>~0~0 = 0 decimal places to:</li>
<li>~14~0 = 14 decimal places (excluding 7,9,11 and 13)</li>
<li>~32~0 = short number 0dp</li>
<li>~34~0 = short number 2dp</li>
<li>~24~0 = floating point</li>
</ul>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-9.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> It is important for some servers that you have the appropriate type and subtype or errors may occur.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Select SQL statement text</p>
</td>
<td valign="top">
<p align="left">You can write a raw SQL statement to drive the data collection. The statement <b>must</b> begin with the SELECT keyword and contain a FROM keyword. If you have no User Interface, User Search, Dynamic Query or Statement Shortcut entered, the Select SQL Statement Text will be the mechanism of data aquisition that will be ued. Others will be ignored. The following is an example:</p>
<pre>SELECT SOLSONO,SOHDATE,SOLPRIC,SOLDISC,SOLSQTY,SOHRATE,SOLCUSC,CUSCNAM,SOHCREF,SOHAREF
FROM SOLFILE JOIN SOHFILE ON SOLSONO=SOHSONO JOIN CUSFILE ON SOLCUSC=CUSCODE</pre>
<p>This will return every quotation and sales order line items. To limit it to Orders you could add a where clause:</p>
<pre>WHERE SOHRELF</pre>
<p>You can incorporate predefined Join and Where Shortcuts that will be expanded into the SQL statement before execution. For example the above FROM clause could be replaced by:</p>
<pre>FROM =[Cal_SolSohCusAdrPtm]</pre>
<p>Where Shortcuts can be included in the WHERE clause:</p>
<pre>WHERE =[Cal_SoOnly]  AND SOLDATE=[Cal_Yesterday]</pre>
<p>The above illustrates the two types of Where Shortcuts. The first simply is a subtitution of conditional logic. The second applies a set of logic to a particular column, in this case SOLDATE. The resulting SQL for SQLite will be:</p>
<pre>WHERE SOHRELF AND SOLDATE&gt;=date('now','localtime','start of day','-1 days') AND SOLDATE&lt;date('now','localtime','start of day')</pre>
<p>This will select all Order line items due for delivery yesterday.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/note40-10.jpg" width="24" height="24" alt="Note"/><strong> NOTE:</strong> SQL statements can be different for different SQL engines. In the statement text you can prefix a statement with <b>SQLite=</b> or <b>MySQL=</b> or <b>PostgreSQL=</b>. If omitted the first statement (before a MySQL= or PostgreSQL=) will be assumed to be for SQLite and that is the default for all other engines, if a specific statement is not entered for it. For example, for today&#8217;s date (SQLite= can be omitted):
</p>
<pre>SQLite=SELECT datetime('now')
MySQL=SELECT NOW()
PostgreSQL=SELECT current_timestamp</pre>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Column calculations</p>
</td>
<td valign="top">
<p align="left">A calculation used to generate the value for each result column from the raw results data delivered from the server.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Column name</p>
</td>
<td valign="top">
<p align="left">The name of the result list column.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Column calculation</p>
</td>
<td valign="top">
<p align="left">A calculation used internally to generate the value for each graph group member. Delivered columns must be refered to in the form iRow.&lt;ColumnName&gt; where iRow in this case is the list variable line of the results returned from the server. </p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Add Search</p>
</td>
<td valign="top">
<p align="left">Click to add a further search.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Delete Search</p>
</td>
<td valign="top">
<p align="left">Click to remove the selected search. There must be at least one search.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Select Test</p>
</td>
<td valign="top">
<p align="left">Click to open the <a href="../sql/wsqladhoclist">Ad Hoc Database Listing</a> window in which you can try out any SQL statement.</p>
</td>
</tr>
</table>
<p><a href="#top">Back to top</a></p>
<h3><a name="tab4" id="tab4"/>Tables + Joins</h3>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint4.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint4.jpg" width="449" height="246" alt="If you are not using SQL, for each search you can define a main table and up to 3 joined and one listing table from which a Select statement will be constructed."/></a></p>
<p>For each search you can define a main table and up to 3 joined and one listing table.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Main table</p>
</td>
<td valign="top">
<p align="left">The main table to be used for the search.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Find key column</p>
</td>
<td valign="top">
<p align="left">The column to be used for ordering the data. This is only useful generally if a Limit is being applied (see below).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Limit</p>
</td>
<td valign="top">
<p align="left">The limit for the main file records collected (&lt;1 for all available records).</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> Leave this blank/zero for all normal searches. But if you want just the first 10 customers, or last 5 current Sales Orders, enter the appropriate limit here. Having a limit set here simply stops the record collection subject to the search after the limit is reached before any sorting, subtotalling or accumulations have been made. So, do not use this <b>Limit</b> for such control as <i>top 10 sales items by value</i> or <i>5 lowest performing salespeople</i> because these require post-collection processing before the truncation of data can be made. For this use, <b>Limit final rows</b> on the Advanced tab pane, and this can either top or tail the final sorted results with the <b>Leave low results</b> checkbox.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Reverse</p>
</td>
<td valign="top">
<p align="left">Reverses the order of the resulting returned rows based on the main key column.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Where clause</p>
</td>
<td valign="top">
<p align="left">You enter here the where clause elements to restrict the rows returned from the server. It is executed on the server so needs to include only functions and syntax that the server can understand.</p>
<p>A context menu is available with pre-prepared engine-specific where parts which will load into the field. Many of them involve dates and expect a column to be pre-entered. You enter a column, say SAHDDAT, operate the menu, say Last Week and the Where clause will be expanded and the Pre-search program code. In this case the Pre-seach will be set to:</p>
<pre>Do $ctask.tSqlData.$CurDate() Returns iD
Calculate iRow.m_SelDate1 as dadd(kDay,-(dtw(dadd(kDay,pick(getws()-12,-6,0,-1,-2,-3,-4,-5),iD))-1)-1,iD)
Calculate iRow.m_SelDate0 as dadd(kDay,1,dadd(kWeek,-1,iRow.m_SelDate1))</pre>
<p>The Where clause will be set to:</p>
<pre>SAHDDAT&gt;=@[iRow.m_SelDate0] AND SAHDDAT&lt;=@[iRow.m_SelDate1]</pre>
<p>The iRow here is a universal select row containing all the m_Sel&#8230; variables. Their values are set in the Pre-search code and the Where clase uses them in the form of bind variables (surrounded by @[&#8230;]).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">1st Join table</p>
</td>
<td valign="top">
<p align="left">The first join table that is related to the main table with the column relationship below.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">1st Join key column</p>
</td>
<td valign="top">
<p align="left">The column in the join table whose value equals the result of the equlity column(s) below.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">1st Left Join</p>
</td>
<td valign="top">
<p align="left">Check for a left join. A left join permits the inclusion of records where the join exact match fails.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">1st Join equality column(s)</p>
</td>
<td valign="top">
<p align="left">A column or combination of columns that when compared to the key column value is an equality when matched. This is executed on the server so if it includes functions they must be executable by the server engine employed.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">2nd Join table</p>
</td>
<td valign="top">
<p align="left">The second join table that is related to the main or first join table with the column relationship below.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">2nd Join key column</p>
</td>
<td valign="top">
<p align="left">The column in the join table whose value equals the result of the equlity column(s) below.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">2nd Left Join</p>
</td>
<td valign="top">
<p align="left">Check for a left join. A left join permits the inclusion of records where the join exact match fails.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">2nd Join equality column(s)</p>
</td>
<td valign="top">
<p align="left">A column or combination of columns that when compared to the key column value is an equality when matched.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">3rd Join table</p>
</td>
<td valign="top">
<p align="left">The third join table that is related to the main or previous join tables with the column relationship below.ow.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">3rd Join key column</p>
</td>
<td valign="top">
<p align="left">The column in the join table whose value equals the result of the equlity column(s) below.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">3rd Left Join</p>
</td>
<td valign="top">
<p align="left">Check for a left join. A left join permits the inclusion of records where the join exact match fails.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">3rd Join equality column(s)</p>
</td>
<td valign="top">
<p align="left">A column or combination of columns that when compared to the key column value is an equality when matched.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Listfile join table</p>
</td>
<td valign="top">
<p align="left">Optional Listfile table to be linked to the main, and/or joins, table with the join calculation and where clause below. The listfile join will find multiple records for data collection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Listfile key column</p>
</td>
<td valign="top">
<p align="left">The column in the listfile table column whose value equals the result of the calculation below. Data is collected in the key column order with respect to any Limit and Reverse.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Limit</p>
</td>
<td valign="top">
<p align="left">The limit for the number of listfile records collected (&lt;1 for all available records).</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> Leave this blank/zero to list all Listfile records matching your search. But if you want just the first few enter the appropriate limit here. Having a limit set here simply stops the record collection subject to the search after the limit is reached before any sorting, subtotalling or accumulations have been made. So, do not use this <b>Limit</b> for such control as <i>top 10 by value</i> or <i>5 lowest</i> because these require post-collection processing before the truncation of data can be made. For this use, <b>Limit final rows</b> on the Advanced tab pane, and this can either top or tail the final sorted results with the <b>Leave low results</b> checkbox.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Reverse</p>
</td>
<td valign="top">
<p align="left">Reverse find from the last then previous down the Listfile key index.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Listfile join calculation</p>
</td>
<td valign="top">
<p align="left">A calculation, evaluated intermally, the resulting value of which is used to locate the appropriate listfile file records. It must be an Omnis calculation that references the columns returned by the Main and/or Join tables using iRow.&lt;ColumnName&gt; syntax. For example:</p>
<pre>con('''',iRow.SOHSONO,'''')
con('''',dat(iRow.SOHDATE,'y-M-D'),'''')</pre>
<p>When evaluated this forms the initial where clause part for the Listfile select, which is ANDed to the Listfile Where clause, if entered.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Listfile where clause</p>
</td>
<td valign="top">
<p align="left">An optional where clause applied to the listfile select.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Final filter calculation</p>
</td>
<td valign="top">
<p align="left">An optional final search calculation applied to the data of all tables prior to adding Listfile to the further filter results. It should return true to include the record result using iRow.&lt;ColumnName&gt; syntax.  This is executed internally and so must be Omnis code.</p>
</td>
</tr>
</table>
<p><a href="#top">Back to top</a></p>
<h3><a name="tab5" id="tab5"/>Advanced</h3>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint5.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewmaint5.jpg" width="451" height="247" alt="Advanced tab pane."/></a></p>
<p>Advanced options for the handing of the resulting data list.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Field</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Suppress working messages</p>
</td>
<td valign="top">
<p align="left">Check for to suppress the normal working message during data collection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Limit final rows</p>
</td>
<td valign="top">
<p align="left">Truncates the final results to a limited number of rows of consolidated and sorted data (&lt;1 for no truncation of results).</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> Leave this blank/zero to show all final results of the Data View. It you enter a value here, if the final results output has more rows of data, it will be truncated to show just that number of rows. This limit gives you the oportunity to show, for example, <i>the top 10 sales items by value</i> or <i>5 lowest performing salespeople</i>. The results are either topped or tailed by the limit depending on the checkbox <b>Leave lower results</b>.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Leave lower results</p>
</td>
<td valign="top">
<p align="left">Truncatation of the upper portion rather than the lower portion of the sorted final results.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Post data collection processing program code</p>
</td>
<td valign="top">
<p align="left">Omnis Studio code that will be run at the end of data collection. The results are in a local list variable named pList.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> There is a function that you can use to invert the resulting data list so that rows become columns and the columns rows. Use the following to do this which is useful for reversing the appearance of a column graph:
</p>
<pre>Do $ctask.tPrint.$InvertDataList(pList)</pre>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Cache-time in seconds</p>
</td>
<td valign="top">
<p align="left">Cache-seconds for which the last data collection set remains used (cached) after which data will be rebuilt (&lt;1 = never saved).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Active-time in seconds</p>
</td>
<td valign="top">
<p align="left">Active-seconds after cache period for which the last data collection set will be rebuilt after which a new record of the data is created (&lt;1 = perpetually rebuilt, single record).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Auto-delete time in days</p>
</td>
<td valign="top">
<p align="left">Delete-days after which the data record is automatically deleted (&lt;1 = never deleted automatically).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Language code</p>
</td>
<td valign="top">
<p align="left">Language code for the data collection that, if set, overrides the Language Swap choice at the time of collecting .</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Ledger</p>
</td>
<td valign="top">
<p align="left">The ledger (R, P or G) relevant to the data collection to determine which ledger period applies to the data (will set DAVPERN).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Current Period</p>
</td>
<td valign="top">
<p align="left">Check when the current ledger period is applied rather than the preceding closed period.</p>
</td>
</tr>
</table>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Manage History</p>
</td>
<td valign="top">
<p align="left">Click to manage cache and history records of data collection by this Data View.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">View XML in Browser</p>
</td>
<td valign="top">
<p align="left">Click to view the underlying design in XML in your Browser. This will work only if your Browser is the default program for .xml files. It creates a temporary file in the Email/Temp folder.</p>
</td>
</tr>
</table>
<p><a href="#top">Back to top</a></p>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="../dataviews/tbdataviewtools">Data View Maintenance Toolbar</a></li>
<li><a href="../sql/wsqladhoclist">Ad Hoc Database Listing</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 21 Jan 2017 10:21:00.00. Class wDataViewMaint last modified 23 Sep 2017  10:50:51.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Maintenance</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewmaint/">Data Views: Data View Maintenance</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Data View Result List</title>
		<link>https://caliach.com/knowledge-base/wdataviewresultlist/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:52 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewresultlist/</guid>

					<description><![CDATA[<p>Data Views: Data View Result List</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewresultlist/">Data Views: Data View Result List</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Result List</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Result List</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewresultlist.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewresultlist.jpg" width="463" height="181" alt="Data View Result List window"/></a></p>
<p>This window shows the Data View results when testing from the <a href="wdataviewmaint">Data View Maintenance</a> window.</p>
<p>The results of a Data View is a list, held in memory. The list columns are defined by the Data View design and the rows are determined by the searches, also defined in the design.</p>
<p>This window allows you to see the collected data and print it if needed. The data arrives in the window list in the Data View sort order, but you can re-sort it by clicking on the list column heading. There is a breakdown of the times the various stages of running the data view take.</p>
<p>Data View results listing.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Print</p>
</td>
<td valign="top">
<p align="left">Click to print the results.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 4 Jun 2012 04:09:00.00. Class wDataViewResultList last modified 6 Oct 2017  05:39:31.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Result List</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewresultlist/">Data Views: Data View Result List</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Data View Data Selection</title>
		<link>https://caliach.com/knowledge-base/wdataviewsearch/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 13:27:52 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewsearch/</guid>

					<description><![CDATA[<p>Data Views: Data View Data Selection</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewsearch/">Data Views: Data View Data Selection</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Data Selection</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Data Selection</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewsearch.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewsearch.jpg" width="298" height="260" alt="Data View Data Selection window with wPtmSelect search interface class loaded."/></a></p>
<p>This window when you choose a <b>Search interface class</b> in the <a href="wdataviewmaint">Data View Maintenance</a> window <b>Data View Basics</b> tab pane.</p>
<p>The <b>User instructions</b> you have entered will be shown above the selection sub-window.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/note40-10.jpg" width="24" height="24" alt="Note"/><strong> NOTE:</strong> This window contains fields introduced with version 5 that enable additional search (and sometimes sort controls), such as <b>Adhoc extra where</b>. For more help on their use and examples see the <a href="../sql/introsql">Client-Server SQL Introduction</a> help.</p>
<p>Doing a Help &#8212; What&#8217;s This? and clicking on the selection area will give you help for the selection options you have, which typically include Ad Hoc searches, ScratchPad drag-and-drop, etc..</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Button</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Ok</p>
</td>
<td valign="top">
<p align="left">Click to continue the process of data collection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Cancel</p>
</td>
<td valign="top">
<p align="left">Click to abandon the process.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 3 Jan 2015 10:32:00.00. Class wDataViewSearch last modified 16 Jul 2016  04:55:10.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Data Selection</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewsearch/">Data Views: Data View Data Selection</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Data View Maintenance Toolbar</title>
		<link>https://caliach.com/knowledge-base/tbdataviewtools/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/tbdataviewtools/</guid>

					<description><![CDATA[<p>Data Views: Data View Maintenance Toolbar</p>
<p>The post <a href="https://caliach.com/knowledge-base/tbdataviewtools/">Data Views: Data View Maintenance Toolbar</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data View Maintenance Toolbar</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Maintenance Toolbar</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tbdataviewtools.jpg" width="716" height="34" alt="Data View Maintenance toolbar"/></p>
<p>This toolbar is at the top of the the <a href="wdataviewmaint">Data View Maintenance</a> window and controls maintenance functions.</p>
<p/>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Icon</p>
</th>
<th valign="top">
<p align="left">Text</p>
</th>
<th valign="top">
<p align="left">Function</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19100.jpg" width="16" height="16" alt="Save"/></p>
</td>
<td valign="top">
<p align="left">Save</p>
</td>
<td valign="top">
<p align="left">Click to save changes to the data view design.  Before it saves it tests the designed data view for any errors. If found the <a href="wdataviewerrors">Data View Errors and Warnings</a> window will open and you will have an opportunity to correct mistakes before finally saving the design.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19101.jpg" width="16" height="16" alt="Revert"/></p>
</td>
<td valign="top">
<p align="left">Revert</p>
</td>
<td valign="top">
<p align="left">Click to revert to the last saved version.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19102.jpg" width="16" height="16" alt="New"/></p>
</td>
<td valign="top">
<p align="left">New</p>
</td>
<td valign="top">
<p align="left">Click to add a new data view which will start as a copy of the currently selected.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19103.jpg" width="16" height="16" alt="Delete"/></p>
</td>
<td valign="top">
<p align="left">Delete</p>
</td>
<td valign="top">
<p align="left">Click to delete the currently selected data view.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19105.jpg" width="16" height="16" alt="Test"/></p>
</td>
<td valign="top">
<p align="left">Test</p>
</td>
<td valign="top">
<p align="left">Click to test the data view design. Before running the data view it is tested for design errors. If found the <a href="wdataviewerrors">Data View Errors and Warnings</a> window will open and you will have an opportunity to correct mistakes.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19108.jpg" width="16" height="16" alt="Web"/></p>
</td>
<td valign="top">
<p align="left">Web</p>
</td>
<td valign="top">
<p align="left">Get a ready made design from the Internet or Post a design to it. This opens the <a href="../graphs2/wdgweb">Graphs 2 and Data Views Web Service</a> window which give Internet access to Graphs and Data Views on Caliach&#8217;s servers.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/1621.jpg" width="16" height="16" alt="Import"/></p>
</td>
<td valign="top">
<p align="left">Import</p>
</td>
<td valign="top">
<p align="left">To import a data view design from an XML file.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/1620.jpg" width="16" height="16" alt="Export"/></p>
</td>
<td valign="top">
<p align="left">Export</p>
</td>
<td valign="top">
<p align="left">Click to export the Data View to an XML file.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19104.jpg" width="16" height="16" alt="Fields"/></p>
</td>
<td valign="top">
<p align="left">Fields</p>
</td>
<td valign="top">
<p align="left">Opens the <a href="wdataviewfields">Data View File Fields</a> window.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/19106.jpg" width="16" height="16" alt="Texts"/></p>
</td>
<td valign="top">
<p align="left">Texts</p>
</td>
<td valign="top">
<p align="left">Toggle to show toolbar tool texts.</p>
</td>
</tr>
</table>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
<li><a href="../dataviews/wdataviewerrors">Data View Errors and Warnings</a></li>
<li><a href="../graphs2/wdgweb">Graphs 2 and Data Views Web Service</a></li>
<li><a href="../dataviews/wdataviewfields">Data View Table Columns</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 4 Jun 2012 04:47:00.00. Class tbDataViewTools last modified 10 Oct 2017  11:47:34.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Data View Maintenance Toolbar</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/tbdataviewtools/">Data Views: Data View Maintenance Toolbar</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: Statement Dynamic Query Selection</title>
		<link>https://caliach.com/knowledge-base/wdataviewcsm/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/wdataviewcsm/</guid>

					<description><![CDATA[<p>Data Views: Statement Dynamic Query Selection</p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewcsm/">Data Views: Statement Dynamic Query Selection</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Statement Dynamic Query Selection</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Statement Dynamic Query Selection</p>
<p><a href="https://caliach.com/wp-content/uploads/2022/12/wdataviewscsm.jpg"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/wdataviewscsm.jpg" width="244" height="176" alt="The Statements Selection window"/></a></p>
<p>This window is opened from the  <a href="wdataviewmaint">Data Views Maintenance</a> or Ad Hoc Graphs windows to apply Dynamic Queries, Sort Sets, Stament Shortcuts, Join Shortcuts or Where Shortcuts.</p>
<p>A list of Satements.db objects that can be used in the design. Click to load or double-click to load and close this window.</p>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 5 Jan 2015 10:27:00.00. Class wDataViewCsm last modified 23 Sep 2017  10:50:51.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; Statement Dynamic Query Selection</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/wdataviewcsm/">Data Views: Statement Dynamic Query Selection</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views: &#8211; Introduction to Data Views</title>
		<link>https://caliach.com/knowledge-base/dataviewintro/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/dataviewintro/</guid>

					<description><![CDATA[<p>Data Views: - Introduction to Data Views</p>
<p>The post <a href="https://caliach.com/knowledge-base/dataviewintro/">Data Views: &#8211; Introduction to Data Views</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>&#8211; Introduction to Data Views</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; &#8211; Introduction to Data Views</p>
<h2>What are Data Views?</h2>
<p>A <b>Data View</b> is a Caliach Vision definition of a way of collecting a particular set of data. Data is stored in the Caliach Vision database in <b>Tables</b>, which can be thought of as individual spreadsheets with a number of pre-defined columns and any number of rows. They are more complex than this but in essence you can imagine them as such, and in doing so you will not go to far wrong.</p>
<p>For example, a <b>Part record</b> is one row from the part table and each element of data you see on the <a href="../parts/wptmedit">Part Maintenance</a> window is held in a column in the Part table (known internally as the <b>PTMFILE</b> table).</p>
<p>The sophistication of Caliach Vision however is in the way the <b>table data</b> can be linked, or more correctly said, <b>related to</b>, other tsble data. For instance a part can have a preferred supplier. The code in that column is related to a particular row in the supplier table. The supplier in turn has a relationship to an address row, and that in turn will be related to a country row. So while there is no country name column in the part table, through relationships within the data structure, a part can be associated with a particular country of supply.</p>
<p>In normal operation of the program all these relationships are built-in and data is presented without the need for any great understanding of how the where the data is stored.</p>
<p>However, there are times when the program, as standard, does not give you what you want and you need to customise the way you want data presented. This is particularly true when you want to present a graph. There are literally thousands of potentially related collections of data and many times that of sub-sets of that collective data. So it is unrealistic to expect the program to conjure up this data by itself so it is available to you at the click of a button. However, the next best thing is a framework for defining a data-set collection method, storing it and then re-using it repeatedly to collect just the data you are looking for. This is what is provided by <b>Data Views</b>.</p>
<p>So, for example, say you wanted a graph of stock value at the end of each month grouped by the default country of the preferred supplier of the part. This would normally be quite a complex data collection process but Data Views makes it easy. You design a Data View for the linking of the data elements and simply tell the graph design to use this Data View, by name. The Graph 2 system, when it sees a named data source, knows to run the named Data View and populate the graphs with data collected by it.</p>
<p>Besides Graphs, Data Views can be used also to populate lists on a window or a report.</p>
<h2>How do Data Views Work?</h2>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-9.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Caliach standard support is limited to the operation of the Data Views framework within Caliach Vision. The contents of Data Views and their design is <b>specifically excluded from normal subscription support</b>. Similarly, Caliach can give help with design of Data Views but only as a chargeable service.</p>
<p>When a Data View is run, it goes through the following steps:</p>
<ol>
<li>It interprets the design and defines the variables needed for data collection.</li>
<li>It tests the design to make sure it can run without error, at least as far as it can without interaction with a server engine.</li>
<li>It collects the raw data into a result list using a number of alternative mechanisms, limiting the extent of collection if limits apply, and applying a final filter, if needed.</li>
<li>It consolidates the results where sub-totalling is needed.</li>
<li>It sorts the resulting consolidated data.</li>
<li>It calculates totals and other accumulated values that may be called for.</li>
<li>It top or tail truncates the results if a limit applies.</li>
<li>If cacheing is enabled, it stores the results data in the database for use by others.</li>
<li>It delivers the final results to the object (graph, list or report).</li>
</ol>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> <b>Limiting</b> either record collection or the final sorted results is particularly useful for <a href="../general/wkpidisplay">Key Performance Indicators</a> where you are wanting to see, say, <i>the last 6 Sales Order Dispatches</i>, <i>the 5 best performing sales regions</i> or the <i>top 20 stock movements by value</i>.</p>
<p>See later for more details and explanation of Results Storage and Cacheing, but if a cache record is available steps 2 to 6 are replaced by reading the data directly from the history record.</p>
<h3>Searching for Data</h3>
<p>A Data View can have several <b>Searches</b>. A search is a data collection process that adds results to the result list in memory. If there is more than one the results of each are appended to the same result list. The use of more than one search can be useful if data is to be collected from two or more main tables, for example Sales Order Line Items and Sales History.</p>
<p>Data Views can be defined to use one of the following data acquisition mechanisms (it will choose the first available):</p>
<p><b>Search Interface</b>: This is similar to standard report search interface, for example, the search part of the <a href="../parts/wptmselect">Masters &#8212; Parts &#8212; Print Reports</a> window. This means that before the Data View runs the user will have to complete a <a href="wdataviewsearch">Selection window</a> so it may not be suitable for KPIs that typically need to function without user interaction. They are each specific to a design&#8217;s main table, and not all tables have them.  They use the same Dynamic Query as as their equivalent reports do.</p>
<p><b>User Search</b>: a user search is a named Custom Search which typically are available in standard report selection windows if the Custom Search button is available on the window. They are each specific to a design&#8217;s main table, and not all tables have them. They use the same Dynamic Query as as their equivalent reports do but unlike Search Interfaces there is no user interaction needed. </p>
<p><b>Dynamic Query</b>: This must be available in the Statements.db database. They are the same as are used typically on report printing, Search Interface and User Search. They are complex multi-table data collection mechanisms from which Data View output can be drawn. If properly designed the are server-engine neutral.</p>
<p><b>Select Shortcut</b>: These are complete pre-prepared SQL statements.  They must be available in the Statements.db database, start with the keyword SELECT and contain a FROM clause. They are self-contained, generally fast in operation and server-engine neutral. </p>
<p><b>SQL Select Text</b>: This is an individually written SQL select statement that can contain Join Shortcuts and/or Where Shortcuts from the Statements.db database. The resulting SQL must be appropriate for the Server Engine you are connected to and lead with a SELECT keyword. It is fast in execution. </p>
<p><b>Table and Joins</b>: If none of the others are defined you can enter a main Table with up to 3 joined tables and a Listfile. These will be constructed into SQL selects to collect the data from which the Data View output is generated. Any Where clauses must be appropriate for the server engine you are connected to.  Data columns from any of the 5 potential tables are available to the Data View. </p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> <b>Server Engines</b>: The database servers Caliach Vision supports, SQLite, PostgeSQL, MySQL and it&#8217;s clone MariaDB, all speak different dialects of SQL particularly when functions are invoked. Objects in standard Statements.db typically accommodate this with DBMS-specific alternatives. But if these are not written correctly or if you use explicit SQL text statements that are locked to only one DBMS you will have problems when execution takes place with a different DBMS. You need to be specifically wary of this if users use different SQL Engines. Perhaps you are cloning your database to a local SQLite database and loading that into a Laptop. If your Data View design is not server-insensitive you will have problems. If at all possible make the SQL you write immune. </p>
<p>Search 1 always applies to the <b>Main table</b> of the Data View if it uses either a Serach Interface, User Search and/or a Table + Join. If using a Dynamic Query, Statement Shortcut or SQL Text the tables in use will be defined within them.</p>
<p>With Tables + Joins, up to 3 <b>Joins</b> can be made in a search. A join is where a related table row is found. If it is <b>Left</b> join then the join is optional so if no join row is found the data will still be included in the results. This is needed when the relationship is only optional.</p>
<p>A <b>Listfile join</b> is a special type of join where many records can be collected from the listfile join table. This is know as a many to many relationship. It is particularly useful if your driving search is from a Search Interface but the results you are looking for are not suitable for conventional joins. For example, you may want to select Customers in the normal Customer Search Interface and list their current Sales Order Line items. This can be done by making a listfile join on the SO line items file.</p>
<p>A <b>Final Filter Calculation</b> can optionally be applied to further restrict results after they have been delivered by the server. This is most useful when you wish to restrict the results on the basis of values in the joined file records. For instance, if the search main file is Sales History with a join to the Customer file, you may wish to restrict it to certain values of a Customer&#8217;s index code. This would not be possible on the main file search, but is on Final Filter because by then the customer&#8217;s data is available.</p>
<h3><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/custom40-7.jpg" width="24" height="24" alt="Customisation"/> Custom Capability</h3>
<p>Data Views can be used in customisation. All processing of a data view is performed by the <b>oDataView</b> object class. An object class needs to be instantiated into a variable of type Object or Object Reference. You can either do this in the variable definition or in a more controlled way using the following notation (in this case iDataObj is an object reference instance variable and the code is in the $construct of a window):</p>
<pre>Do $clib.$objects.oDataViews.$newref() Returns iDataObj</pre>
<p>To run a Data View you need to call the following method:</p>
<pre>Do iDataObj.$RunDataView(pDataViewName, pReturnRef, pReturnMethod)</pre>
<p>The method has no return value. It starts a Data View data collection process. pDataViewName is the name of the data view with history syntax if wanted (see later section). pReturnRef is an item reference to the object that will process the data (say a report instance) in pReturnMethod, the name of the method. If a user-interactive search is part of the data collection processing it is handed to the search window. Data cacheing is automatically controlled. pReturnRef.[pReturnMethod]() will be called to deliver the data collected.</p>
<p>You then need to create a method for receiving the results. This must be named the same as pReturnMethod and start with a $ symbol. So for example, in the $construct of a report you would have:</p>
<pre>Do iDataObj.$RunDataView('TestView', $cinst, '$Results')</pre>
<p>where <b>TestView</b> is the name of the Data View, <b>$cinst</b> is a reference to the report you are running, and <b>$Results</b> is the name of a class method that you have created to receive and process the data.</p>
<p>When you create <b>$Result</b> you need to create the following parameter variables which will contain the results of the data collection:</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Parameter</p>
</th>
<th valign="top">
<p align="left">Description</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">pName</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Character</b> variable (Simple, 100000000). It will contain the name of the Data View design which you may want to show on the report or window.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pResultList</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>List</b> or <b>Field reference</b> variable that will contain the data returned by the data collection.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pCalculation</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Character</b> variable (Simple, 100000000). It will contain the string appropriate to populate the $calculation property of a headed list on a window. For example, con(iList.Col1,kTab,iList.Col2&#8230;). If you want you can use &#8230;$calculation.$assign(pCalculation) as long as your list is named <b>iList</b>.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pColumnNames</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Character</b> variable (Simple, 100000000). It is a comma delimited list of column headings and can be directly assigned into the $columnnames property of a headed list on a window.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pColumnWidths</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Character</b> variable (Simple, 100000000). It is a comma delimited list of column widths and can be directly assigned into the $columnwidths property of a headed list on a window.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pColumnAlign</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Character</b> variable (Simple, 100000000). It is a comma delimited list of column alignments for a headed list on a window. Each column is set 0 for left justified, 1 for right justified or 2 for centre justification. Because you need to use the $setcolumnalign() method for this the code to use is slightly more complex (see example below).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pTicksRow</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Row</b> variable. It will contain 6 columns named C1 through C7 and these will contain the <b>tick count</b> times in <b><i>ticks</i></b> for the 6 stages of the Data View processing with C7 being the server-returned row count. A <b><i>tick</i></b> is one 60th of a second.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">pSearchSerial</p>
</td>
<td valign="top">
<p align="left">Must be set to a <b>Number, 32bit integer</b> variable. It will contain the serial number of a multi-search Data View.</p>
</td>
</tr>
</table>
<p>The following is an example of the code for a <b>window</b> with a headed list (named List) receiving the data in a method named $Result. You need to set up an instance variable for the list named iList:</p>
<pre>Calculate iName as pName
Do $cinst.$title.$assign(con('Data View Results for : ',iName))
Calculate iList as pResultList
Do $cinst.$objs.List.$colcount.$assign(iList.$cols.$count())
Do $cinst.$objs.List.$calculation.$assign(pCalculation)
Do $cinst.$objs.List.$columnnames.$assign(pColumnNames)
Do $cinst.$objs.List.$columnwidths.$assign(pColumnWidths)
For %i from 1 to $cinst.$objs.List.$colcount step 1
    Calculate lAlign as strtok('pColumnAlign',',')
    Do $cinst.$objs.List.$setcolumnalign(%i,lAlign)
End For
Redraw {List}</pre>
<p><b>Reports</b> are slightly more complicated but there is a demonstration report class called <b>rDataViewDemo</b> to provide a framework for you. With it, for convenience the <b>$userinfo</b> class property is set to the Data View name. The code in the $construct method is as follows:</p>
<pre>Do $ctask.tPrint.$ReportConstruct($cinst)
Do $clib.$objects.oDataViews.$newref() Returns iDataObj
Calculate lName as $cinst.$class().$userinfo
Do iDataObj.$RunDataView(lName,$cinst,'$Return') Returns lMessage
If len(lMessage)=0
    Quit method 
End If
Do $ctask.tEnv.$Ok(con('Report: ',sys(80)),kFalse,kTrue,kFalse,15482,lName,lMessage)
Do $cinst.$close()</pre>
<p>The $destruct method cleans the memory:</p>
<pre>Do iDataObj.$deleteref()</pre>
<p>Then the $Return method receives the data form the Data View, sets up the fields and headings on the report and then prints the data. It uses the $SetReportFields oDataViews method that sets up report fields as long as there is one data field and one heading field (in this case named Field1 and 1009, respectively). It returns the row of the Data View design which holds the design and therefore you can use  the name, description or any other element of the design. The code is as follows:</p>
<pre>Calculate iList as pResultList
Do iDataObj.$SetReportFields(pResultList, pCalculation, pColumnNames, pColumnWidths, pColumnAlign, $cinst,'Field1', '1009') Returns iDesignRow
For %i from 1 to iList.$linecount step 1
    Calculate iList.$line as %i
    Do $cinst.$printrecord()
End For
Do $cinst.$endprint()</pre>
<p>There is no need for a <b>Do $cinst.$close()</b> at the end as typically this is taken care of by the command or method used to run the report. The process of generating the data runs during the $construct of the report other than when the Data View contains a Search Interface. In this case the <b>$Return</b> method is run after the Search Interface has completed collecting the data. This means that while the Search Interface is open the report must remain in memory and can not be closed. The <b><i>Print Report</i></b> command can not be used as this closes the report before the Search Interface has been activated by the user. This <i>interupted program flow</i> requires Data View driven reports to be opened in a special way from a window using the following code:</p>
<pre>Do $ctask.tPrint.$PreReportPrint('rDataViewDemo') Returns lOk
If lOk
  Do code method cReportDest/BeforePrint Returns lOk
  If lOk
    Do $ctask.tPrint.$OpenReport(sys(80))
  Else
    Do $ctask.tPrint.$RevertDest()
  End If
Else
  Do $ctask.tPrint.$RevertDest()
End If
</pre>
<p>The above example is available in the <b>wDemoWindow</b> under the PrintDemoDataView button. The name of the report class (rDataViewDemo) is set in the first line.</p>
<p/>
<h3>User and Group Access</h3>
<p>You can restrict user access to individual Data Views with the <b>User access</b> and <b>Group access</b> settings. If both are left blank, any user can use the Data View design and any history it has generated. You can enter one or more user IDs and Group names, separated by commas, and if you do only users with those IDs or belonging to one of the groups will be permitted to use the Data View. So, for example if you were to set <i>User access</i> to <b>CG,DAB</b> and <i>Group access</i> to <b>Sales,Accounts</b>, then any user belonging to either the Sales or Accounts group plus the two users CG and DAB will get access.</p>
<p>The User Access and Group Access are not stored in the XML data structure, so they will not be saved on the server if they are uploaded to the Web depository. Similarly they will always be blank if downloaded from the server. They are however held in the the XML when exported to a file and imported from one.</p>
<p>When Graphs use Data Views, the graph design saves a copy of the Data View designs that it uses. If the user has access to the stored Data View design, this will be used rather than the self-contained design. This is to make possible the running of a graph after the Data View has been deleted or the user running the graph no longer has access to the Data View. In such circumstances the User and Group access settings are ignored, so tightening security on a data view may not stop graphs from functioning for users now excluded, but it will prevent them from benefiting from any changes to the Design View subsequently made.</p>
<p/>
<h3><a name="cache" id="cache"/>Data View Results Storage and Cacheing</h3>
<p>The Data Views system incorporates a mechanism for the storage of the results of a data collection. This is done in the main datafile in the DAVFILE data slot and is controlled by the <b>Save Results</b> settings on the Advanced tab of the <a href="wdataviewmaint">Data View Maintenance</a> window.</p>
<p>The storage of results has two useful purposes:</p>
<ol>
<li>It allows the results to be <b>cached</b> which in simple terms means that if the Data View is run repeatedly, within a time limit, the collection of data is avoided and instead the results of the first collection is re-used. This is particularly useful when many users on the system tend to run the same Data View with the same search criteria around the same time, say on a Monday morning. Once the data is collected on the first run, other users get the results almost instantly.</li>
<li>It allows the results of dynamic data to be <b>recorded</b> and so can be viewed for comparison purposes in the future, again almost instantly. For example, a monthly stock valuation analysis can be recorded at the start of each month, and will remain on file for future reference or re-display.</li>
</ol>
<p>There are three numeric settings for storage control:</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Entry</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Cache-time in seconds</p>
</td>
<td valign="top">
<p align="left">Cache-seconds for which the last data collection set remains used (cached) after which data will be rebuilt (&lt;1=never saved).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Active-time in seconds</p>
</td>
<td valign="top">
<p align="left">Active-seconds after cache period for which the last data collection set will be rebuilt after which a new record of the data is created (&lt;1=perpetually rebuilt, single record).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Auto-delete time in days</p>
</td>
<td valign="top">
<p align="left">Delete-days after which the data record is automatically deleted (&lt;1=never deleted automatically).</p>
</td>
</tr>
</table>
<p>If the Cache-time is zero no storage takes place at all. During the Cache-time period since last collection was completed, any user using the Data View will receive the results collected in the stored record.</p>
<p>For the subsequent Active-time period the data record that was previously the cache will be updated with a new collection of the Data View. After this time has expired the record will become permanent history until it is deleted automatically when the Auto-delete time in days has expired. The following examples illustrate the alternatives:</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Three field values</p>
</th>
<th valign="top">
<p align="left">Result</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left"><b>0,0,0</b></p>
</td>
<td valign="top">
<p align="left">This will mean no data results record will be maintained at all, so no caching and no history. This is useful for ad hoc Data Views or where user search criteria are randomly applied.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><b>3600,0,0</b></p>
</td>
<td valign="top">
<p align="left">Caching will be for 1 hour after first collection, then the stored record will be forever rebuilt and never deleted automatically. This would be useful for snapshots of data that take a long time for data collection but where it is used in many places such as several graphs and a report.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><b>100,86400,365</b></p>
</td>
<td valign="top">
<p align="left">The results of the first data collection will be cached for 100 seconds and thereafter for 1 day will be rebuilt if run again. It will then be deleted automatically after a year. This could be useful for a Data View of may need several attempts to get right, but when correct needs to be kept as history, such as a stock valuation.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><b>604800,1,7305</b></p>
</td>
<td valign="top">
<p align="left">The results of the first data collection will be cached for a week and effectively then never rebuilt. It will then be deleted automatically after a 20 years. This is useful for a Data View which is viewed by many users after it is initially collected and is reliably correct first time it is run, for instance a ledgers analysis of closed periods, or a financial statement.</p>
</td>
</tr>
</table>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-9.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Do not give a long cache-time to Data Views that contain Search interfaces as, if the cache-time is still valid, no search interface will be offered to the user, so he won&#8217;t get an opportunity to enter an alternative search selection. To do that he has to wait for the cache-time to expire.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/warning40-9.jpg" width="24" height="24" alt="Warning"/><strong> WARNING:</strong> Don&#8217;t over record history. Although the design XML and the data collected is stored in a compressed state to minimise storage demand, you can quickly consume space in the datafile. It is most useful when the data collected is summary. For instance, it would not be sensible to hold large detailed reports, regularly taken, in this way as space requirements would unnecessarily reduce performance of the overall system for little advantage. To store large reports use other techniques such as printing a report to the disk destination and saving that in a known external location. You can view data storage statistics if you <b>Print Results</b> in <a href="../system/wsysperform">File &#8212; System Manager &#8212; System Timing Test</a>, and look for the <i>Data View cache and history data collection</i> DAVFILE.</p>
<p><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/tip40-10.jpg" width="24" height="24" alt="Tip"/><strong> TIP:</strong> Do not set the Cache value until after you have finished and tested the Data View, otherwise you may be misled into thinking changes are not being reflected in the results because you are viewing a cache record rather than a new build from the design.</p>
<p>For any selected Data View you can review and manage historical collected data using the Manage History button on the Advanced tab of the <a href="wdataviewmaint">Data View Maintenance</a> window. This opens the <a href="wdataviewhistory">Data View Data Collection History Maintenance</a> window. Here you can delete unwanted history records and review the data collected on previous occasion.</p>
<p>The stored collected data also holds the ledger period number and language that was applied to the data collection. These are controlled by three settings in the Data View design. You can force the Data View to a particular language, otherwise the Language Swap choice will be used at the time of generating the data. For Data View designs relevant to ledger data, you need to specify which ledger is appropriate and whether it applies to the current open ledger period. With these settings the history will save the appropriate ledger period number.</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Entry</p>
</th>
<th valign="top">
<p align="left">Action</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left">Language code</p>
</td>
<td valign="top">
<p align="left">Language code for the data collection that, if set, overrides the Language Swap choice at the time of collecting .</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Ledger</p>
</td>
<td valign="top">
<p align="left">The ledger (R, P or G) relevant to the data collection to determine which ledger period applies to the data (will set DAVPERN).</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left">Current Period</p>
</td>
<td valign="top">
<p align="left">Check when the current ledger period is applied rather than the preceding closed period.</p>
</td>
</tr>
</table>
<h3>Explicitly Using Data View History</h3>
<p>It may be useful to use Data View history data for comparison purposes, for instance in a graph where you want to compare current results with last month&#8217;s. This can be done when data view name is entered by appending a special syntax of extra characters in the form <b>DataViewName?xxxxx</b> the ? character tells the system that it must look for a data history set for the named data view rather than collecting current data for the data view. There are a number of options for the characters that follow the data view name:</p>
<table border="1" width="100%" cellspacing="0" cellpadding="2">
<tr>
<th valign="top">
<p align="left">Characters</p>
</th>
<th valign="top">
<p align="left">Function and Examples</p>
</th>
</tr>
<tr>
<td valign="top">
<p align="left"><b>?XNNN</b></p>
</td>
<td valign="top">
<p align="left">Where X is either R for Accounts Receivable ledger, P the Accounts Payable ledger or G for the General Ledger, followed either by a period number (not the period descriptor, so view the Ledger Calendar to find the correct number). Or alternatively, if the number is negative, the number of periods prior to the current ledger period.</p>
<p><b>?G22</b> will return data from period id 22.<br />
<b>?G-3</b> will return data from 3 periods back from the current G/L period. So if you are in June it will return March data.<br />
<b>?R-12</b> will return data from 12 periods back from the current A/R period. So if you are in June it will return June of last year&#8217;s data.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><b>?Dddmmyyyy</b></p>
</td>
<td valign="top">
<p align="left">For an absolute date where you enter the date in ddmmyyyy numeric form for the day in question. Data is found only if created on that day, so it may help to view the data view history to find the correct date to use. This is typically used for recovering a specific history record for the data view.</p>
<p><b>?D01012011</b> which recover the data of the view from 1st January 2011.</p>
</td>
</tr>
<tr>
<td valign="top">
<p align="left"><b>?DX-NNN~</b></p>
</td>
<td valign="top">
<p align="left">NN units of date back where X is H for hour, D for day, W for week, M for month, Q for quarter, Y for year, and it can be followed by a ~ character. The data is found based on the date/time-unit calculation back (if &#8211; it is back in time, or if not it is forward) from the start of the current date/time-unit (beginning of the hour, day, week, month, quarter, year, etc.). This finds the data from the record in data view history that is the first after the calculated date within the calculation date/time unit. If not no data is used. If the character ~ is appended, the record does not have to be within the period of the time unit. i.e. any record from the start onwards.</p>
<p><b>?DD-10</b> will find a data record from 10 days ago, recorded sometime during that day.<br />
<b>?DM-12</b> will find a data record from 12 months ago, from the beginning of that month, recorded sometime during that month.<br />
<b>?DQ-2~</b> will find a data record from 12 months ago, from the beginning of that quarter, recorded any time since then (because of the ~ character).
</p>
</td>
</tr>
</table>
<p>So to use a recorded set of data from the data view <i>StockValueMonthly</i> taken 12 months back as a comparison on a layer of a graph you would enter <b>StockValueMonthly?DM-12</b> in the Data property of the layer.</p>
<p/>
<table border="0" cellspacing="0" cellpadding="2">
<tr valign="top" align="left">
<td width="80">See also: &#8211;</td>
<td>
<ul>
<li><a href="../graphs2/graphs2intro">&#8211; Introduction to Graphs 2</a></li>
<li><a href="../dataviews/wdataviewmaint">Data View Maintenance</a></li>
</ul>
</td>
</tr>
</table>
<p id="versionline">Compiled in Program Version 5.10. Help data last modified 4 Jan 2015 05:40:00.00. No class.</p>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a> &gt; <a href="index">Data Views</a> &gt; &#8211; Introduction to Data Views</p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/dataviewintro/">Data Views: &#8211; Introduction to Data Views</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Data Views Topic Contents</title>
		<link>https://caliach.com/knowledge-base/index-11/</link>
		
		<dc:creator><![CDATA[Brendan Proctor]]></dc:creator>
		<pubDate>Wed, 27 May 2020 14:27:51 +0000</pubDate>
				<guid isPermaLink="false">https://kb.caliach.com/index.php/knowledge-base/index-11/</guid>

					<description><![CDATA[<p>Data Views Topic Contents</p>
<p>The post <a href="https://caliach.com/knowledge-base/index-11/">Data Views Topic Contents</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><body></p>
<h2><a name="top"/>Data Views Topic Contents</h2>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a></p>
<p>Most topics are related directly to functional windows, menus or toolbars. Click on the topic to view details.</p>
<ul>
<li><a href="dataviewintro">&#8211; Introduction to Data Views</a></li>
<li><a href="wdataviewhistory">Data View Data Collection History Maintenance</a></li>
<li><a href="wdataviewsearch">Data View Data Selection</a></li>
<li><a href="wdataviewerrors">Data View Errors and Warnings</a></li>
<li><a href="wdataviewmaint">Data View Maintenance</a></li>
<li><a href="tbdataviewtools">Data View Maintenance Toolbar</a></li>
<li><a href="wdataviewresultlist">Data View Result List</a></li>
<li><a href="mdataviewstdsearch">Data View Standard Searches Menu</a></li>
<li><a href="wdataviewfields">Data View Table Columns</a></li>
<li><a href="wdataviewcsm">Statement Dynamic Query Selection</a></li>
</ul>
<p id="navline"><img loading="lazy" decoding="async" src="https://caliach.com/wp-content/uploads/2022/12/arrowright-10.gif" width="9" height="10" alt="Document path" align="bottom"/> <a href="../index">Reference Contents</a></p>
<p></body></p>
<p>The post <a href="https://caliach.com/knowledge-base/index-11/">Data Views Topic Contents</a> appeared first on <a href="https://caliach.com">Caliach</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
