Glossary Item Box
The DataEngine object connects to databases or consumes data objects such as a 'DataTable' and converts them to a SeriesCollection which can then be manipulated and used to generate a chart. The DataEngine offers many data manipulation features saving countless hours of development, particularly for date specific aggregation.
We encourage you to review the following tutorials before working with the DataEngine:
The basic concept of using the data engine is to specify a database, connection string and retrieve the SeriesCollection it generates. A basic example:
[C#]DataEngine de = new DataEngine(connectionString,queryString);
SeriesCollection mySC = de.GetSeries();
[Visual Basic]Dim de As New DataEngine(connectionString,queryString)
SeriesCollection mySC = de.GetSeries()
When specifying a start and end date in a database query, the following method should be used.
[C#] DataEngine de = new DataEngine(); // Instantiate the data engine object de.StartDate = new DateTime(2002,1,1,8,0,0); // Specify the start date de.EndDate = new DateTime(2002,1,1,23,59,59); // Specify the end date. //Specify a query. de.SqlStatement = "SELECT names, values FROM myTable WHERE start > #StartDate# AND end < #EndDate#";
[Visual Basic] Dim de As New DataEngine() ' Instantiate the data engine object de.StartDate = New DateTime(2002,1,1,8,0,0) ' Specify the start date de.EndDate = New DateTime(2002,1,1,23,59,59) ' Specify the end date.
'Specify a query. de.SqlStatement = "SELECT names, values FROM myTable WHERE start > #StartDate# AND end < #EndDate#"
Notes:
This feature controls how the values of a given series are grouped by date. In order to use this option the first column returned by the SqlStatement must be a date/time data type.
Example 1
[C#] de.SqlStatement = "SELECT time, unitsSold FROM sales"; de.DateGrouping = TimeInterval.Days;
[Visual Basic] de.SqlStatement = "SELECT time, unitsSold FROM sales" de.DateGrouping = TimeInterval.Days
The above will create an aggregated element for each day within the start and end date of your data. Similar options include:
Example 2
[C#] myDataEngine.SqlStatement = "SELECT time, unitsSold FROM sales"; myDataEngine.DateGrouping = TimeInterval.Day;
[Visual Basic] myDataEngine.SqlStatement = "SELECT time, unitsSold FROM sales" myDataEngine.DateGrouping = TimeInterval.Day
When using day instead of days, data is grouped into 24 elements representing each hour of the day. For example, if the date range spans a week the element representing 11pm will contain the sum of all values that fall into that hour throughout the week.
Options include:
See also DataEngine.DateGrouping | TimeInterval
Generated data can be limited in two ways. First, you can limit the number of elements returned for each series by using the 'Limit' property of the data engine.
[C#] myDataEngine.Limit = "5";
[Visual Basic] myDataEngine.Limit = "5"
Notes
The second way is to limit the number of series generated when using split by. For an example of SplitBy, see: Tutorials > Simple Queries > Multiple Series from a Single Query.
[C#] myDataEngine.SplitByLimit = "2";
[Visual Basic] myDataEngine.SplitByLimit = "2"
Notes
The additional series not shown due to the use of SplitByLimit, or the additional elements not shown due to the use of Limit are aggregated into a single series or element respectively, and graphed alongside the main data when the ShowOther property is true.
[C#] myDataEngine.ShowOther = true; myDataEngine.OtherElementText = "The Rest";
[Visual Basic] myDataEngine.ShowOther = True myDataEngine.OtherElementText = "The Rest"
Notes:
If you would like to show series eliminated by Limit or SplitByLimit when drilling down or in a legend box, the LimitMode enumeration can be used. For example if you limit data to 5 and would like to see the rest, the LimitMode.ExcludeTop enumeration member can be used.
[C#] myDataEngine.LimitMode = LimitMode.ExcludeTop;
myDataEngine.Limit = "5";
[Visual Basic] myDataEngine.LimitMode = LimitMode.ExcludeTop
myDataEngine.Limit = "5"
This feature allows limit to be bound to a specific series. First the series will be limited based on the specified value, then .netCHARTING will automatically match any remaining series to that limit order rather than limiting for each series independently.
[C#]myDataEngine.Limit = "5";
myDataEngine.LimitPrimarySeries = "customers";
[Visual Basic]myDataEngine.Limit = "5"
myDataEngine.LimitPrimarySeries = "customers"
The data engine may populate an element's name property. The name property is a string, therefore, in order to ensure proper formatting of those values we can set the 'FormatString' and 'CultureName' properties of the data engine:
[C#] myDataEngine.FormatString = "d"; myDataEngine.CultureName = "en-US";
[Visual Basic] myDataEngine.FormatString = "d" myDataEngine.CultureName = "en-US"
Notes:
2002 - 2005 Webavail Productions Inc. & Corporate Web Solutions Ltd.. All Rights Reserved.