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"
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.