43:
How do I add Start/End columns

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	HostEvent = class::nativeObject_HostEvent
endwith
*/
// Notifies the application once the host fires an event.
function nativeObject_HostEvent(EventID)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(oG2Host.HostEventParam(-2)) 
return

local oG2Host,var_Chart,var_Column,var_Column1,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.HostReadOnly = 255 /*exHostReadWrite | exHostAllowAddEmptyItem*/
var_G2antt = oG2Host.Host
	var_G2antt.SingleSel = false
	var_G2antt.OnResizeControl = 1
	var_G2antt.ScrollBars = 2058 /*0x800 | exDisableNoVertical*/
	var_Column = var_G2antt.Columns.Add("Start")
		var_Column.AllowSizing = false
		// var_Column.Def(18) = 1
		with (oG2Host)
			TemplateDef = [dim var_Column]
			TemplateDef = var_Column
			Template = [var_Column.Def(18) = 1]
		endwith
		var_Column.Editor.EditType = 7
	var_Column1 = var_G2antt.Columns.Add("End")
		var_Column1.AllowSizing = false
		// var_Column1.Def(18) = 2
		with (oG2Host)
			TemplateDef = [dim var_Column1]
			TemplateDef = var_Column1
			Template = [var_Column1.Def(18) = 2]
		endwith
		var_Column1.Editor.EditType = 7
	var_G2antt.Items.AllowCellValueToItemBar = true
	var_Chart = var_G2antt.Chart
		var_Chart.AllowCreateBar = 1
		// var_Chart.PaneWidth(false) = 256
		with (oG2Host)
			TemplateDef = [dim var_Chart]
			TemplateDef = var_Chart
			Template = [var_Chart.PaneWidth(False) = 256]
		endwith
		var_Chart.Bars.Item("Task").OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/

42:
How do I hide the left/items/columns part of the control

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Chart,var_G2antt,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.Pattern = 1
	var_Bar.Color = 0xff0000
	// var_Bar.Def(19) = 50
	with (oG2Host)
		TemplateDef = [dim var_Bar]
		TemplateDef = var_Bar
		Template = [var_Bar.Def(19) = 50]
	endwith
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataField(12) = "Color"] // oG2Host.DataField(12) = "Color"
oG2Host.Template = [DataField(13) = "TaskName"] // oG2Host.DataField(13) = "TaskName"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.HostReadOnly = 255 /*exHostReadWrite | exHostAllowAddEmptyItem*/
var_G2antt = oG2Host.Host
	var_G2antt.OnResizeControl = 129 /*exDisableSplitter | exResizeChart*/
	var_Chart = var_G2antt.Chart
		var_Chart.ColumnsFormatLevel = "1"
		// var_Chart.PaneWidth(false) = 0
		with (oG2Host)
			TemplateDef = [dim var_Chart]
			TemplateDef = var_Chart
			Template = [var_Chart.PaneWidth(False) = 0]
		endwith
		var_Chart.ScrollTo("05/27/2017",1)

41:
How do I hide the right/chart/tasks part of the control

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Chart,var_G2antt,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.Pattern = 1
	var_Bar.Color = 0xff0000
	// var_Bar.Def(19) = 50
	with (oG2Host)
		TemplateDef = [dim var_Bar]
		TemplateDef = var_Bar
		Template = [var_Bar.Def(19) = 50]
	endwith
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataField(12) = "Color"] // oG2Host.DataField(12) = "Color"
oG2Host.Template = [DataField(13) = "TaskName"] // oG2Host.DataField(13) = "TaskName"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
var_G2antt = oG2Host.Host
	var_Chart = var_G2antt.Chart
		// var_Chart.PaneWidth(true) = 0
		with (oG2Host)
			TemplateDef = [dim var_Chart]
			TemplateDef = var_Chart
			Template = [var_Chart.PaneWidth(True) = 0]
		endwith
		var_Chart.OverviewVisible = 0

40:
How do hide the top/overview part of the control

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Chart,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataField(7) = DataField(0)] // oG2Host.DataField(7) = oG2Host.DataField(0)
oG2Host.Template = [DataField(9) = "BirthDate"] // oG2Host.DataField(9) = "BirthDate"
oG2Host.Template = [DataField(10) = "HireDate"] // oG2Host.DataField(10) = "HireDate"
var_G2antt = oG2Host.Host
	var_Chart = var_G2antt.Chart
		var_Chart.OverviewVisible = 0
		// var_Chart.PaneWidth(false) = 256
		with (oG2Host)
			TemplateDef = [dim var_Chart]
			TemplateDef = var_Chart
			Template = [var_Chart.PaneWidth(False) = 256]
		endwith
		var_Chart.ScrollTo("04/27/1969",1)

39:
How do I resize the panels

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Chart,var_G2antt,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_G2antt = oG2Host.Host
	var_G2antt.VisualAppearance.Add(1,"C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn")
	var_Bar = var_G2antt.Chart.Bars.Item("Task")
		var_Bar.Height = 15
		var_Bar.Color = 0x1ff0000
		var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
		var_Bar.OverlaidGroup = "Task,Progress"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataField(12) = "Color"] // oG2Host.DataField(12) = "Color"
oG2Host.Template = [DataField(13) = "TaskName"] // oG2Host.DataField(13) = "TaskName"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
var_Chart = oG2Host.Host.Chart
	// var_Chart.PaneWidth(false) = 128
	with (oG2Host)
		TemplateDef = [dim var_Chart]
		TemplateDef = var_Chart
		Template = [var_Chart.PaneWidth(False) = 128]
	endwith
	var_Chart.ScrollTo("05/27/2017",1)

38:
How do I lock the first column

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
var_G2antt = oG2Host.Host
	var_G2antt.CountLockedColumns = 1
	var_G2antt.BackColorLock = var_G2antt.BackColorAlternate

37:
How do I specify a different color for the tasks ( EBN color )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Chart,var_G2antt,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_G2antt = oG2Host.Host
	var_G2antt.VisualAppearance.Add(1,"C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn")
	var_Bar = var_G2antt.Chart.Bars.Item("Task")
		var_Bar.Height = 15
		var_Bar.Color = 0x1ff0000
		var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
		var_Bar.OverlaidGroup = "Task,Progress"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataField(12) = "Color"] // oG2Host.DataField(12) = "Color"
oG2Host.Template = [DataField(13) = "TaskName"] // oG2Host.DataField(13) = "TaskName"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
// oG2Host.Host.Chart.PaneWidth(false) = 256
var_Chart = oG2Host.Host.Chart
with (oG2Host)
	TemplateDef = [dim var_Chart]
	TemplateDef = var_Chart
	Template = [var_Chart.PaneWidth(False) = 256]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

36:
How do I specify a different color for the tasks ( solid color, transparent )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Chart,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.Pattern = 1
	var_Bar.Color = 0xff0000
	// var_Bar.Def(19) = 50
	with (oG2Host)
		TemplateDef = [dim var_Bar]
		TemplateDef = var_Bar
		Template = [var_Bar.Def(19) = 50]
	endwith
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataField(12) = "Color"] // oG2Host.DataField(12) = "Color"
oG2Host.Template = [DataField(13) = "TaskName"] // oG2Host.DataField(13) = "TaskName"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
// oG2Host.Host.Chart.PaneWidth(false) = 256
var_Chart = oG2Host.Host.Chart
with (oG2Host)
	TemplateDef = [dim var_Chart]
	TemplateDef = var_Chart
	Template = [var_Chart.PaneWidth(False) = 256]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

35:
GroupBy

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Column,var_G2antt,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_G2antt = oG2Host.Host
	var_G2antt.AllowGroupBy = true
	var_G2antt.SortBarVisible = true
	var_G2antt.BackColorSortBar = oG2Host.Host.BackColor
	var_G2antt.BackColorSortBarCaption = var_G2antt.BackColorSortBar
	var_G2antt.SortBarCaption = "<sha ;;0><fgcolor=FF0000>Drag a <b>column</b> header here to sort by that column."
	var_Bar = var_G2antt.Chart.Bars.Item("Task")
		var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
		var_Bar.OverlaidGroup = "Task,Progress"
	// var_G2antt.Items.ExpandItem(0) = true
	var_Items = var_G2antt.Items
	with (oG2Host)
		TemplateDef = [dim var_Items]
		TemplateDef = var_Items
		Template = [var_Items.ExpandItem(0) = True]
	endwith
	var_G2antt.CountLockedColumns = 1
	var_G2antt.BackColorLock = var_G2antt.BackColorAlternate
	var_Column = var_G2antt.Columns.Item("EmployeeID")
		var_Column.AllowGroupBy = false
		// var_Column.Def(7) = oG2Host.Host.BackColorAlternate
		with (oG2Host)
			TemplateDef = [dim var_Column]
			TemplateDef = var_Column
			Template = [var_Column.Def(7) = Me.Host.BackColorAlternate]
		endwith
	var_G2antt.Columns.Item("Title").SortOrder = 1
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

34:
How can I hide a column
/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Host.Columns.Item(0).Visible = false

33:
Can row errors being highligted until the user correct them, not to clear them as soon a change occurs

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [HostDef(7) = False] // oG2Host.HostDef(7) = false

32:
No error is highligthed

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"

31:
I've noticed that rows with errors are shown in red. Is it possible to change the colors

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [HostDef(6) = 0] // oG2Host.HostDef(6) = 0
oG2Host.Template = [HostDef(5) = 16777215] // oG2Host.HostDef(5) = 16777215

30:
Is it possible to rename the (New) to something else

local oG2Host,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [HostDef(1) = "*"] // oG2Host.HostDef(1) = "*"
var_G2antt = oG2Host.Host
	var_G2antt.BeginUpdate()
	var_G2antt.Items.AddItem("A")
	var_G2antt.Items.AddItem("B")
	var_G2antt.EndUpdate()
oG2Host.Refresh()

29:
How can I hide the (New) item (sample 2)

local oG2Host,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.HostReadOnly = 240 /*exHostAllowUpdate | exHostAllowDelete*/
var_G2antt = oG2Host.Host
	var_G2antt.BeginUpdate()
	var_G2antt.Items.AddItem("A")
	var_G2antt.Items.AddItem("B")
	var_G2antt.EndUpdate()

28:
How can I hide the (New) item (sample 1)

local oG2Host,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [HostDef(1) = ""] // oG2Host.HostDef(1) = ""
var_G2antt = oG2Host.Host
	var_G2antt.BeginUpdate()
	var_G2antt.Items.AddItem("A")
	var_G2antt.Items.AddItem("B")
	var_G2antt.EndUpdate()
oG2Host.Refresh()

27:
Read-Only

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.HostReadOnly = 0

26:
How can I prevent user create new /delete tasks ( only move or resize then )
/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.HostReadOnly = 128
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

25:
How do I get the row/item/task/link from the cursor

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	HostEvent = class::nativeObject_HostEvent
endwith
*/
// Notifies the application once the host fires an event.
function nativeObject_HostEvent(EventID)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? oG2Host.HostContext.ToString 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.HostReadOnly = 141 /*exHostAllowUpdate | exHostAllowAddNew*/

24:
Disable Delete
/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.HostReadOnly = 141 /*exHostAllowUpdate | exHostAllowAddNew*/

23:
Disable AddNew

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.HostReadOnly = 240 /*exHostAllowUpdate | exHostAllowDelete*/

22:
ACCDB sample ( file )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

21:
MDB sample ( file )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.mdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.mdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

20:
DBF sample ( file )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.dbf"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.dbf"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"

19:
DAO sample ( object, DAO.DBEngine.120, multiple tasks, multiple tables )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,rsEmployees,rsLinks,rsTasks,var_Bar,var_Database,var_Items,var_PrivDBEngine

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_PrivDBEngine = new OleAutoClient("DAO.DBEngine.120")
	var_Database = var_PrivDBEngine.OpenDatabase("C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb")
		rsEmployees = var_Database.OpenRecordset("Employees")
		rsTasks = var_Database.OpenRecordset("EmployeeDetails")
		rsLinks = var_Database.OpenRecordset("EmployeeLinks")
oG2Host.Template = [DataSource("Items") = rsEmployees] // oG2Host.DataSource("Items") = rsEmployees
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataSource("Tasks") = rsTasks] // oG2Host.DataSource("Tasks") = rsTasks
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataSource("Links") = rsLinks] // oG2Host.DataSource("Links") = rsLinks
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

18:
DAO sample ( file, multiple tasks, multiple tables )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataTechnology("Tasks") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Tasks") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataTechnology("Links") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Links") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

17:
DAO sample ( object, DAO.DBEngine.120, single task, single table )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,rsEmployees,rsLinks,var_Database,var_PrivDBEngine

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_PrivDBEngine = new OleAutoClient("DAO.DBEngine.120")
	var_Database = var_PrivDBEngine.OpenDatabase("C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb")
		rsEmployees = var_Database.OpenRecordset("Employees")
		rsLinks = var_Database.OpenRecordset("EmployeeLinks")
oG2Host.Template = [DataSource("Items") = rsEmployees] // oG2Host.DataSource("Items") = rsEmployees
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataField(7) = DataField(0)] // oG2Host.DataField(7) = oG2Host.DataField(0)
oG2Host.Template = [DataField(9) = "BirthDate"] // oG2Host.DataField(9) = "BirthDate"
oG2Host.Template = [DataField(10) = "HireDate"] // oG2Host.DataField(10) = "HireDate"
oG2Host.Template = [DataSource("Links") = rsLinks] // oG2Host.DataSource("Links") = rsLinks
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"

16:
DAO sample ( file, single task, single table )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataField(7) = DataField(0)] // oG2Host.DataField(7) = oG2Host.DataField(0)
oG2Host.Template = [DataField(9) = "BirthDate"] // oG2Host.DataField(9) = "BirthDate"
oG2Host.Template = [DataField(10) = "HireDate"] // oG2Host.DataField(10) = "HireDate"
oG2Host.Template = [DataTechnology("Links") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Links") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"

15:
DAO sample ( tree recordset )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"

14:
DAO sample ( flat recordset )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,rsEmployees,var_Database,var_PrivDBEngine

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_PrivDBEngine = new OleAutoClient("DAO.DBEngine.120")
	var_Database = var_PrivDBEngine.OpenDatabase("C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb")
		rsEmployees = var_Database.OpenRecordset("Employees")
oG2Host.Template = [DataSource("Items") = rsEmployees] // oG2Host.DataSource("Items") = rsEmployees
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"

13:
DAO sample ( flat )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"] // oG2Host.DataTechnology("Items") = "DAO.DBEngine.120;DAO.DBEngine.36"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"

12:
ADO sample ( object, ADODB.Recordset, multiple tasks )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,rsEmployees,rsLinks,rsTasks,var_Bar,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
rsEmployees = new OleAutoClient("ADODB.Recordset")
rsEmployees.Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3)
oG2Host.Template = [DataSource("Items") = rsEmployees] // oG2Host.DataSource("Items") = rsEmployees
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
rsTasks = new OleAutoClient("ADODB.Recordset")
rsTasks.Open("EmployeeDetails","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3)
oG2Host.Template = [DataSource("Tasks") = rstasks] // oG2Host.DataSource("Tasks") = rstasks
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
rsLinks = new OleAutoClient("ADODB.Recordset")
rsLinks.Open("EmployeeLinks","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3)
oG2Host.Template = [DataSource("Links") = rsLinks] // oG2Host.DataSource("Links") = rsLinks
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

11:
ADO sample ( file, multiple tasks, multiple tables )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_Bar,var_Items

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataTechnology("Tasks") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Tasks") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Tasks") = DataSource("Items")] // oG2Host.DataSource("Tasks") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Tasks") = "EmployeeDetails"] // oG2Host.DataMember("Tasks") = "EmployeeDetails"
oG2Host.Template = [DataField(7) = "Tasks"] // oG2Host.DataField(7) = "Tasks"
oG2Host.Template = [DataField(8) = "EmployeeID"] // oG2Host.DataField(8) = "EmployeeID"
oG2Host.Template = [DataField(9) = "DateStart"] // oG2Host.DataField(9) = "DateStart"
oG2Host.Template = [DataField(10) = "DateEnd"] // oG2Host.DataField(10) = "DateEnd"
oG2Host.Template = [DataField(14) = "TaskID"] // oG2Host.DataField(14) = "TaskID"
oG2Host.Template = [DataTechnology("Links") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Links") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"
var_Bar = oG2Host.Host.Chart.Bars.Item("Task")
	var_Bar.OverlaidType = 515 /*exOverlaidBarsStackAutoArrange | exOverlaidBarsStack*/
	var_Bar.OverlaidGroup = "Task,Progress"
// oG2Host.Host.Items.ExpandItem(0) = true
var_Items = oG2Host.Host.Items
with (oG2Host)
	TemplateDef = [dim var_Items]
	TemplateDef = var_Items
	Template = [var_Items.ExpandItem(0) = True]
endwith
oG2Host.Host.Chart.ScrollTo("05/27/2017",1)

10:
ADO sample ( object, ADODB.Recordset, single task, single table )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,rsEmployees,rsLinks

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
rsEmployees = new OleAutoClient("ADODB.Recordset")
rsEmployees.Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3)
oG2Host.Template = [DataSource("Items") = rsEmployees] // oG2Host.DataSource("Items") = rsEmployees
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataField(7) = DataField(0)] // oG2Host.DataField(7) = oG2Host.DataField(0)
oG2Host.Template = [DataField(9) = "BirthDate"] // oG2Host.DataField(9) = "BirthDate"
oG2Host.Template = [DataField(10) = "HireDate"] // oG2Host.DataField(10) = "HireDate"
rsLinks = new OleAutoClient("ADODB.Recordset")
rsLinks.Open("EmployeeLinks","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3)
oG2Host.Template = [DataSource("Links") = rsLinks] // oG2Host.DataSource("Links") = rsLinks
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"

9:
ADO sample ( file, single task, single table )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"
oG2Host.Template = [DataField(7) = DataField(0)] // oG2Host.DataField(7) = oG2Host.DataField(0)
oG2Host.Template = [DataField(9) = "BirthDate"] // oG2Host.DataField(9) = "BirthDate"
oG2Host.Template = [DataField(10) = "HireDate"] // oG2Host.DataField(10) = "HireDate"
oG2Host.Template = [DataTechnology("Links") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Links") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Links") = DataSource("Items")] // oG2Host.DataSource("Links") = oG2Host.DataSource("Items")
oG2Host.Template = [DataMember("Links") = "EmployeeLinks"] // oG2Host.DataMember("Links") = "EmployeeLinks"
oG2Host.Template = [DataField(15) = "Links"] // oG2Host.DataField(15) = "Links"
oG2Host.Template = [DataField(16) = "Start"] // oG2Host.DataField(16) = "Start"
oG2Host.Template = [DataField(17) = "End"] // oG2Host.DataField(17) = "End"

8:
ADO sample ( tree recordset )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
oG2Host.Template = [DataField(1) = "EmployeeID"] // oG2Host.DataField(1) = "EmployeeID"
oG2Host.Template = [DataField(2) = "ReportsTo"] // oG2Host.DataField(2) = "ReportsTo"

7:
ADO sample ( flat recordset )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,rsEmployees

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
rsEmployees = new OleAutoClient("ADODB.Recordset")
rsEmployees.Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3)
oG2Host.Template = [DataSource("Items") = rsEmployees] // oG2Host.DataSource("Items") = rsEmployees
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"

6:
ADO sample ( flat table )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"] // oG2Host.DataTechnology("Items") = "ADODB.Recordset;ADOR.Recordset"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oG2Host.Template = [DataMember("Items") = "Employees"] // oG2Host.DataMember("Items") = "Employees"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"

5:
XML sample ( object, MSXML.DOMDocument )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_G2antt,xml

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
xml = new OleAutoClient("MSXML.DOMDocument")
xml.async = false
xml.load("C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml")
oG2Host.Template = [DataSource("Items") = xml] // oG2Host.DataSource("Items") = xml
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
var_G2antt = oG2Host.Host
	var_G2antt.LinesAtRoot = -1
	var_G2antt.SingleSel = false
	var_G2antt.AutoDrag = 3

4:
XML sample ( file tree )

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	Error = class::nativeObject_Error
endwith
*/
// Fired when an internal error occurs.
function nativeObject_Error(Error,Description)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(Error) 
	? Str(Description) 
return

local oG2Host,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.Template = [DataTechnology("Items") = "MSXML.DOMDocument"] // oG2Host.DataTechnology("Items") = "MSXML.DOMDocument"
oG2Host.Template = [DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml"] // oG2Host.DataSource("Items") = "C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml"
oG2Host.Template = [DataField(0) = "Items"] // oG2Host.DataField(0) = "Items"
var_G2antt = oG2Host.Host
	var_G2antt.LinesAtRoot = -1
	var_G2antt.SingleSel = false
	var_G2antt.AutoDrag = 3

3:
How can I let user create new items/bars when clicking the empty area of the control
/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	HostEvent = class::nativeObject_HostEvent
endwith
*/
// Notifies the application once the host fires an event.
function nativeObject_HostEvent(EventID)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(oG2Host.HostEventParam(-2)) 
return

local oG2Host,var_Chart,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
oG2Host.HostReadOnly = 255 /*exHostReadWrite | exHostAllowAddEmptyItem*/
var_G2antt = oG2Host.Host
	var_G2antt.ScrollBars = 2058 /*0x800 | exDisableNoVertical*/
	var_Chart = var_G2antt.Chart
		// var_Chart.PaneWidth(false) = 128
		with (oG2Host)
			TemplateDef = [dim var_Chart]
			TemplateDef = var_Chart
			Template = [var_Chart.PaneWidth(False) = 128]
		endwith
		var_Chart.AllowCreateBar = 1

2:
How do I handle events of the host

/*
with (this.EXG2HOSTACTIVEXCONTROL1.nativeObject)
	HostEvent = class::nativeObject_HostEvent
endwith
*/
// Notifies the application once the host fires an event.
function nativeObject_HostEvent(EventID)
	oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
	? Str(oG2Host.HostEventParam(-2)) 
return

local oG2Host,var_G2antt

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
var_G2antt = oG2Host.Host
	var_G2antt.BeginUpdate()
	var_G2antt.Columns.Add("new column")
	var_G2antt.EndUpdate()

1:
How can I get the version of the host/exg2antt control

local oG2Host

oG2Host = form.EXG2HOSTACTIVEXCONTROL1.nativeObject
? oG2Host.Version 
? "Host" 
? oG2Host.Host.Version