50
How do I get the start/end of the bar once the BarResize/BarResizing event occurs

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	local h,key as USUAL
	h := oDCOCX_Exontrol1:[HostEventParam,0]
	key := oDCOCX_Exontrol1:[HostEventParam,1]
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
	OutputDebugString(String2Psz( "Start:" ))
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Host:Items:[ItemBar,h,key,1]) ))
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
	OutputDebugString(String2Psz( "End:" ))
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Host:Items:[ItemBar,h,key,2]) ))
RETURN NIL

local var_Chart as IChart
local var_Items as IItems

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Chart := IG2antt{oDCOCX_Exontrol1:Host}:Chart
	var_Chart:[PaneWidth,false] := 128
	var_Chart:FirstVisibleDate := SToD("20190330")
var_Items := IG2antt{oDCOCX_Exontrol1:Host}:Items
	var_Items:AddBar(var_Items:AddItem("Task"),"Task",SToD("20190401"),SToD("20190414"),nil,nil)

49
How do I get the bar/task from the cursor
METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	local var_Chart as IChart
	local var_G2antt as IG2antt
	local b,i as USUAL
	OutputDebugString(String2Psz( "Event:" ))
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
	// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
	var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
		i := var_G2antt:[ItemFromPoint,-1,-1,c,h]
		OutputDebugString(String2Psz( "Cell:" ))
		OutputDebugString(String2Psz( var_G2antt:Items:[CellCaption,i,c] ))
		var_Chart := var_G2antt:Chart
			b := var_Chart:[BarFromPoint,-1,1]
			OutputDebugString(String2Psz( "Bar:" ))
			OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1IG2antt{:Host}:Items:[ItemBar,i,b,0]) ))
RETURN NIL



48
How do I get the cell from the cursor

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	local var_G2antt as IG2antt
	local i as USUAL
	OutputDebugString(String2Psz( "Event:" ))
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
	// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
	var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
		i := var_G2antt:[ItemFromPoint,-1,-1,c,h]
		OutputDebugString(String2Psz( "Cell:" ))
		OutputDebugString(String2Psz( var_G2antt:Items:[CellCaption,i,c] ))
RETURN NIL



47
How can I highlights cells based on its value

local var_Column,var_Column1 as IColumn
local var_ConditionalFormats as IConditionalFormats
local var_G2antt as IG2antt

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:BeginUpdate()
	var_G2antt:BackColorAlternate := RGB(0,0,0)
	var_Column := var_G2antt:Columns:[Item,"Title"]
		var_Column:[Def,4] := 15790320
		var_Column:Width := var_Column:AutoWidth
	var_ConditionalFormats := var_G2antt:ConditionalFormats
		var_ConditionalFormats:Add("lower(%4) contains `manager`",nil):Bold := true
		var_ConditionalFormats:Add("%3",nil):BackColor := RGB(240,240,240)
	var_G2antt:Items:[ExpandItem,0] := true
	var_Column1 := var_G2antt:Columns:[Item,"EmployeeID"]
		var_Column1:Width := var_Column1:AutoWidth
	var_G2antt:EndUpdate()

46
How do I programatically hide a column


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
IG2antt{oDCOCX_Exontrol1:Host}:Columns:[Item,"LastName"]:Visible := false

45
Is it possible to get the information from the control when we click on the bar/item

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	local var_G2antt as IG2antt
	local b,i as USUAL
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
	// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
	var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
		i := var_G2antt:[ItemFromPoint,-1,-1,c,hit]
		OutputDebugString(String2Psz( "cell's value from cursor: " ))
		OutputDebugString(String2Psz( AsString(var_G2antt:Items:[CellValue,i,c]) ))
		OutputDebugString(String2Psz( "cell's value on col 1: " ))
		OutputDebugString(String2Psz( AsString(var_G2antt:Items:[CellValue,i,1]) ))
		b := var_G2antt:Chart:[BarFromPoint,-1,-1]
		OutputDebugString(String2Psz( "Bar:" ))
		OutputDebugString(String2Psz( AsString(b) ))
		OutputDebugString(String2Psz( "Bar Start:" ))
		OutputDebugString(String2Psz( AsString(var_G2antt:Items:[ItemBar,i,b,1]) ))
		OutputDebugString(String2Psz( "Bar End:" ))
		OutputDebugString(String2Psz( AsString(var_G2antt:Items:[ItemBar,i,b,2]) ))
		OutputDebugString(String2Psz( "Bar Caption:" ))
		OutputDebugString(String2Psz( AsString(var_G2antt:Items:[ItemBar,i,b,3]) ))
RETURN NIL

local var_Bar as IBar
local var_Chart as IChart
local var_G2antt as IG2antt

var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:Debug := true
	var_Bar := var_G2antt:Chart:Bars:[Item,"Task"]
		var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
		var_Bar:OverlaidGroup := "Task,Progress"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
var_Chart := IG2antt{oDCOCX_Exontrol1:Host}:Chart
	var_Chart:[PaneWidth,false] := 128
	var_Chart:ScrollTo(SToD("20170527"),1)

44
How do I get the bar from the cursor

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Host:Chart:[BarFromPoint,-1,-1]) ))
RETURN NIL

local var_Bar as IBar
local var_Chart as IChart
local var_G2antt as IG2antt

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1: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 := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
		var_Bar:OverlaidGroup := "Task,Progress"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
var_Chart := IG2antt{oDCOCX_Exontrol1:Host}:Chart
	var_Chart:[PaneWidth,false] := 128
	var_Chart:ScrollTo(SToD("20170527"),1)

43
How do I add Start/End columns

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
RETURN NIL

local var_Chart as IChart
local var_Column,var_Column1 as IColumn
local var_G2antt as IG2antt

oDCOCX_Exontrol1:HostReadOnly := exHostReadWrite | exHostAllowAddEmptyItem
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:SingleSel := false
	var_G2antt:OnResizeControl := 1
	var_G2antt:ScrollBars := exVScrollEmptySpace | exDisableNoVertical
	var_Column := IColumn{var_G2antt:Columns:Add("Start")}
		var_Column:AllowSizing := false
		var_Column:[Def,18] := 1
		var_Column:Editor:EditType := 7
	var_Column1 := IColumn{var_G2antt:Columns:Add("End")}
		var_Column1:AllowSizing := false
		var_Column1:[Def,18] := 2
		var_Column1:Editor:EditType := 7
	var_G2antt:Items:AllowCellValueToItemBar := true
	var_Chart := var_G2antt:Chart
		var_Chart:AllowCreateBar := 1
		var_Chart:[PaneWidth,false] := 256
		var_Chart:Bars:[Item,"Task"]:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar
local var_Chart as IChart
local var_G2antt as IG2antt

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:Pattern := 1
	var_Bar:Color := RGB(0,0,255)
	var_Bar:[Def,19] := 50
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:HostReadOnly := exHostReadWrite | exHostAllowAddEmptyItem
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:OnResizeControl := exDisableSplitter | exResizeChart
	var_Chart := var_G2antt:Chart
		var_Chart:ColumnsFormatLevel := "1"
		var_Chart:[PaneWidth,false] := 0
		var_Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar
local var_Chart as IChart
local var_G2antt as IG2antt

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:Pattern := 1
	var_Bar:Color := RGB(0,0,255)
	var_Bar:[Def,19] := 50
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_Chart := var_G2antt:Chart
		var_Chart:[PaneWidth,true] := 0
		var_Chart:OverviewVisible := 0

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Chart as IChart
local var_G2antt as IG2antt

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := oDCOCX_Exontrol1:[DataField,exItemsDataSource]
oDCOCX_Exontrol1:[DataField,exTasksStart] := "BirthDate"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "HireDate"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_Chart := var_G2antt:Chart
		var_Chart:OverviewVisible := 0
		var_Chart:[PaneWidth,false] := 256
		var_Chart:ScrollTo(SToD("19690427"),1)

39
How do I resize the panels

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar
local var_Chart as IChart
local var_G2antt as IG2antt

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1: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 := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
		var_Bar:OverlaidGroup := "Task,Progress"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
var_Chart := IG2antt{oDCOCX_Exontrol1:Host}:Chart
	var_Chart:[PaneWidth,false] := 128
	var_Chart:ScrollTo(SToD("20170527"),1)

38
How do I lock the first column

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_G2antt as IG2antt

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:CountLockedColumns := 1
	var_G2antt:BackColorLock := var_G2antt:BackColorAlternate

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar
local var_G2antt as IG2antt

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1: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 := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
		var_Bar:OverlaidGroup := "Task,Progress"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:[PaneWidth,false] := 256
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:Pattern := 1
	var_Bar:Color := RGB(0,0,255)
	var_Bar:[Def,19] := 50
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataField,exTasksColor] := "Color"
oDCOCX_Exontrol1:[DataField,exTasksCaption] := "TaskName"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:[PaneWidth,false] := 256
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

35
GroupBy

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar
local var_Column as IColumn
local var_G2antt as IG2antt

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:AllowGroupBy := true
	var_G2antt:SortBarVisible := true
	var_G2antt:BackColorSortBar := oDCOCX_Exontrol1IG2antt{: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 := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
		var_Bar:OverlaidGroup := "Task,Progress"
	var_G2antt:Items:[ExpandItem,0] := true
	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] := oDCOCX_Exontrol1IG2antt{:Host}:BackColorAlternate
	var_G2antt:Columns:[Item,"Title"]:SortOrder := 1
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

34
How can I hide a column
METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
IG2antt{oDCOCX_Exontrol1: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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[HostDef,exErrorClearOnChange] := false

32
No error is highligthed

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[HostDef,exErrorBackColor] := 0
oDCOCX_Exontrol1:[HostDef,exErrorForeColor] := 16777215

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

local var_G2antt as IG2antt

oDCOCX_Exontrol1:[HostDef,exNew] := "*"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:BeginUpdate()
	var_G2antt:Items:AddItem("A")
	var_G2antt:Items:AddItem("B")
	var_G2antt:EndUpdate()
oDCOCX_Exontrol1:Refresh()

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

local var_G2antt as IG2antt

oDCOCX_Exontrol1:HostReadOnly := exHostAllowUpdate | exHostAllowDelete
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1: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 var_G2antt as IG2antt

oDCOCX_Exontrol1:[HostDef,exNew] := ""
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:BeginUpdate()
	var_G2antt:Items:AddItem("A")
	var_G2antt:Items:AddItem("B")
	var_G2antt:EndUpdate()
oDCOCX_Exontrol1:Refresh()

27
Read-Only

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:HostReadOnly := exHostReadOnly

26
How can I prevent user create new /delete tasks ( only move or resize then )
METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:HostReadOnly := exHostAllowUpdate
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	OutputDebugString(String2Psz( oDCOCX_Exontrol1:HostContext:ToString ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:HostReadOnly := exHostAllowUpdate | exHostAllowAddNew

24
Disable Delete
METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:HostReadOnly := exHostAllowUpdate | exHostAllowAddNew

23
Disable AddNew

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:HostReadOnly := exHostAllowUpdate | exHostAllowDelete

22
ACCDB sample ( file )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

21
MDB sample ( file )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar

oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.mdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

20
DBF sample ( file )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.dbf"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Database as Database
local var_Bar as IBar
local rsEmployees,rsLinks,rsTasks as Recordset2
local var_PrivDBEngine as _DBEngine

// Generate Source for 'Microsoft Office 12.0 Access database engine Object Library(ACEDAO.DLL)' server from Tools\Automation Server...
var_PrivDBEngine := _DBEngine{"DAO.DBEngine.120"}
	var_Database := var_PrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",nil,nil,nil)
		rsEmployees := Recordset2{var_Database:OpenRecordset("Employees",nil,nil,nil)}
		rsTasks := Recordset2{var_Database:OpenRecordset("EmployeeDetails",nil,nil,nil)}
		rsLinks := Recordset2{var_Database:OpenRecordset("EmployeeLinks",nil,nil,nil)}
oDCOCX_Exontrol1:[DataSource,"Items"] := Recordset2{rsEmployees}
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := Recordset2{rsTasks}
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataSource,"Links"] := Recordset2{rsLinks}
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar

oDCOCX_Exontrol1:[DataTechnology,"Items"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataTechnology,"Tasks"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataTechnology,"Links"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Database as Database
local rsEmployees,rsLinks as Recordset2
local var_PrivDBEngine as _DBEngine

// Generate Source for 'Microsoft Office 12.0 Access database engine Object Library(ACEDAO.DLL)' server from Tools\Automation Server...
var_PrivDBEngine := _DBEngine{"DAO.DBEngine.120"}
	var_Database := var_PrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",nil,nil,nil)
		rsEmployees := Recordset2{var_Database:OpenRecordset("Employees",nil,nil,nil)}
		rsLinks := Recordset2{var_Database:OpenRecordset("EmployeeLinks",nil,nil,nil)}
oDCOCX_Exontrol1:[DataSource,"Items"] := Recordset2{rsEmployees}
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := oDCOCX_Exontrol1:[DataField,exItemsDataSource]
oDCOCX_Exontrol1:[DataField,exTasksStart] := "BirthDate"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "HireDate"
oDCOCX_Exontrol1:[DataSource,"Links"] := Recordset2{rsLinks}
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataTechnology,"Items"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := oDCOCX_Exontrol1:[DataField,exItemsDataSource]
oDCOCX_Exontrol1:[DataField,exTasksStart] := "BirthDate"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "HireDate"
oDCOCX_Exontrol1:[DataTechnology,"Links"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"

15
DAO sample ( tree recordset )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataTechnology,"Items"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"

14
DAO sample ( flat recordset )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Database as Database
local rsEmployees as Recordset2
local var_PrivDBEngine as _DBEngine

// Generate Source for 'Microsoft Office 12.0 Access database engine Object Library(ACEDAO.DLL)' server from Tools\Automation Server...
var_PrivDBEngine := _DBEngine{"DAO.DBEngine.120"}
	var_Database := var_PrivDBEngine:OpenDatabase("C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",nil,nil,nil)
		rsEmployees := Recordset2{var_Database:OpenRecordset("Employees",nil,nil,nil)}
oDCOCX_Exontrol1:[DataSource,"Items"] := Recordset2{rsEmployees}
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"

13
DAO sample ( flat )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataTechnology,"Items"] := "DAO.DBEngine.120;DAO.DBEngine.36"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar
local rsEmployees,rsLinks,rsTasks as _Recordset

// Generate Source for 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' server from Tools\Automation Server...
rsEmployees := _Recordset{"ADODB.Recordset"}
rsEmployees:Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3,0)
oDCOCX_Exontrol1:[DataSource,"Items"] := _Recordset{rsEmployees}
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
rsTasks := _Recordset{"ADODB.Recordset"}
rsTasks:Open("EmployeeDetails","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3,0)
oDCOCX_Exontrol1:[DataSource,"Tasks"] := _Recordset{rstasks}
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
rsLinks := _Recordset{"ADODB.Recordset"}
rsLinks:Open("EmployeeLinks","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3,0)
oDCOCX_Exontrol1:[DataSource,"Links"] := _Recordset{rsLinks}
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_Bar as IBar

oDCOCX_Exontrol1:[DataTechnology,"Items"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataTechnology,"Tasks"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Tasks"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Tasks"] := "EmployeeDetails"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := "Tasks"
oDCOCX_Exontrol1:[DataField,exTasksItemID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exTasksStart] := "DateStart"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "DateEnd"
oDCOCX_Exontrol1:[DataField,exTasksID] := "TaskID"
oDCOCX_Exontrol1:[DataTechnology,"Links"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_Bar := IG2antt{oDCOCX_Exontrol1:Host}:Chart:Bars:[Item,"Task"]
	var_Bar:OverlaidType := exOverlaidBarsStackAutoArrange | exOverlaidBarsStack
	var_Bar:OverlaidGroup := "Task,Progress"
IG2antt{oDCOCX_Exontrol1:Host}:Items:[ExpandItem,0] := true
IG2antt{oDCOCX_Exontrol1:Host}:Chart:ScrollTo(SToD("20170527"),1)

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local rsEmployees,rsLinks as _Recordset

// Generate Source for 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' server from Tools\Automation Server...
rsEmployees := _Recordset{"ADODB.Recordset"}
rsEmployees:Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3,0)
oDCOCX_Exontrol1:[DataSource,"Items"] := _Recordset{rsEmployees}
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := oDCOCX_Exontrol1:[DataField,exItemsDataSource]
oDCOCX_Exontrol1:[DataField,exTasksStart] := "BirthDate"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "HireDate"
rsLinks := _Recordset{"ADODB.Recordset"}
rsLinks:Open("EmployeeLinks","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3,0)
oDCOCX_Exontrol1:[DataSource,"Links"] := _Recordset{rsLinks}
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"

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

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataTechnology,"Items"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"
oDCOCX_Exontrol1:[DataField,exTasksDataSource] := oDCOCX_Exontrol1:[DataField,exItemsDataSource]
oDCOCX_Exontrol1:[DataField,exTasksStart] := "BirthDate"
oDCOCX_Exontrol1:[DataField,exTasksEnd] := "HireDate"
oDCOCX_Exontrol1:[DataTechnology,"Links"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Links"] := oDCOCX_Exontrol1:[DataSource,"Items"]
oDCOCX_Exontrol1:[DataMember,"Links"] := "EmployeeLinks"
oDCOCX_Exontrol1:[DataField,exLinksDataSource] := "Links"
oDCOCX_Exontrol1:[DataField,exLinksStart] := "Start"
oDCOCX_Exontrol1:[DataField,exLinksEnd] := "End"

8
ADO sample ( tree recordset )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataTechnology,"Items"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
oDCOCX_Exontrol1:[DataField,exItemsID] := "EmployeeID"
oDCOCX_Exontrol1:[DataField,exItemsParentID] := "ReportsTo"

7
ADO sample ( flat recordset )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local rsEmployees as _Recordset

// Generate Source for 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' server from Tools\Automation Server...
rsEmployees := _Recordset{"ADODB.Recordset"}
rsEmployees:Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb",3,3,0)
oDCOCX_Exontrol1:[DataSource,"Items"] := _Recordset{rsEmployees}
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"

6
ADO sample ( flat table )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL


oDCOCX_Exontrol1:[DataTechnology,"Items"] := "ADODB.Recordset;ADOR.Recordset"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.accdb"
oDCOCX_Exontrol1:[DataMember,"Items"] := "Employees"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"

5
XML sample ( object, MSXML.DOMDocument )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_G2antt as IG2antt
local xml as IXMLDOMDocument2

// Generate Source for 'Microsoft XML, v3.0(msxml3.dll)' server from Tools\Automation Server...
xml := IXMLDOMDocument2{"MSXML.DOMDocument"}
xml:async := false
xml:load("C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml")
oDCOCX_Exontrol1:[DataSource,"Items"] := IXMLDOMDocument2{xml}
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:LinesAtRoot := -1
	var_G2antt:SingleSel := false
	var_G2antt:AutoDrag := 3

4
XML sample ( file tree )

METHOD OCX_Exontrol1Error(Error,Description) CLASS MainDialog
	// Error event - Fired when an internal error occurs.
	OutputDebugString(String2Psz( AsString(Error) ))
	OutputDebugString(String2Psz( AsString(Description) ))
RETURN NIL

local var_G2antt as IG2antt

oDCOCX_Exontrol1:[DataTechnology,"Items"] := "MSXML.DOMDocument"
oDCOCX_Exontrol1:[DataSource,"Items"] := "C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml"
oDCOCX_Exontrol1:[DataField,exItemsDataSource] := "Items"
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1: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
METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
RETURN NIL

local var_Chart as IChart
local var_G2antt as IG2antt

oDCOCX_Exontrol1:HostReadOnly := exHostReadWrite | exHostAllowAddEmptyItem
// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1:Host}
	var_G2antt:ScrollBars := exVScrollEmptySpace | exDisableNoVertical
	var_Chart := var_G2antt:Chart
		var_Chart:[PaneWidth,false] := 128
		var_Chart:AllowCreateBar := 1

2
How do I handle events of the host

METHOD OCX_Exontrol1HostEvent(EventID) CLASS MainDialog
	// HostEvent event - Notifies the application once the host fires an event.
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:[HostEventParam,-2]) ))
RETURN NIL

local var_G2antt as IG2antt

// Generate Source for 'ExG2antt 1.0 Control Library(ExG2antt.dll)' server from Tools\Automation Server...
var_G2antt := IG2antt{oDCOCX_Exontrol1: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


OutputDebugString(String2Psz( oDCOCX_Exontrol1:Version ))
OutputDebugString(String2Psz( "Host" ))
OutputDebugString(String2Psz( oDCOCX_Exontrol1:Host:Version ))