52
Print and Print Preview

OBJECT chart,createobject("exontrol.print"),g2antt,g2host,items;

g2host =  ObjectByName("AN1") ;
_ObjectSetProperty( g2host , "HostReadOnly", 0);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectCallMethod( g2antt , "ReplaceIcon", "gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+O" +
	"kYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==");
	_ObjectCallMethod( g2antt , "ReplaceIcon", "C:\images\favicon.ico",0);
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
		_ObjectSetProperty( chart , "LevelCount", 2);
	items = _ObjectGetProperty( g2antt , "Items");
		h = _ObjectCallMethod( items , "AddItem", "Task 1");
		_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","K1");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim iteObj,h")
		_ObjectCallMethod(g2host, "TemplatePut", items)
		_ObjectCallMethod(g2host, "TemplatePut", h)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,3) = `<img>1</img>`");
	_ObjectCallMethod( g2antt , "EndUpdate");
createobject("exontrol.print") = CreateObject("Exontrol.Print");
	_ObjectSetProperty( createobject("exontrol.print") , "PrintExt", _ObjectGetProperty( g2host , "Host"));
	_ObjectCallMethod( createobject("exontrol.print") , "Preview");

51
How can I replace or add an icon at runtime

OBJECT chart,g2antt,g2host,items;

g2host =  ObjectByName("AN1") ;
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectCallMethod( g2antt , "ReplaceIcon", "gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+O" +
	"kYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==");
	_ObjectCallMethod( g2antt , "ReplaceIcon", "C:\images\favicon.ico",0);
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectSetProperty( chart , "FirstVisibleDate", "1/1/2001");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
		_ObjectSetProperty( chart , "LevelCount", 2);
	items = _ObjectGetProperty( g2antt , "Items");
		h = _ObjectCallMethod( items , "AddItem", "Task 1");
		_ObjectCallMethod( items , "AddBar", h,"Task","1/2/2001","1/6/2001","K1");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim iteObj,h")
		_ObjectCallMethod(g2host, "TemplatePut", items)
		_ObjectCallMethod(g2host, "TemplatePut", h)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "iteObj.ItemBar(h,`K1`,3) = `<img>1</img>`");
	_ObjectCallMethod( g2antt , "EndUpdate");

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

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	h = _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(0)");
	key = _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(1)");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj,h,key")
	_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2host , "Host"))
	_ObjectCallMethod(g2host, "TemplatePut", h)
	_ObjectCallMethod(g2host, "TemplatePut", key)
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
	Message( "Start:" );
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.Items.ItemBar(h,key,1)") );
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
	Message( "End:" );
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.Items.ItemBar(h,key,2)") );
END

OBJECT chart,g2host,items;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
chart = _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2host, "TemplatePut", chart)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectSetProperty( chart , "FirstVisibleDate", "3/30/2019");
items = _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Items");
	_ObjectCallMethod( items , "AddBar", _ObjectCallMethod( items , "AddItem", "Task"),"Task","4/1/2019","4/14/2019");

49
How do I get the bar/task from the cursor
// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	OBJECT chart,g2antt;
	Message( "Event:" );
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
	g2antt = _ObjectGetProperty( g2host , "Host");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim g2aObj,c,h")
		_ObjectCallMethod(g2host, "TemplatePut", g2antt)
		_ObjectCallMethod(g2host, "TemplatePut", c)
		_ObjectCallMethod(g2host, "TemplatePut", h)
		i = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.ItemFromPoint(-1,-1,c,h)");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj,c,i")
		_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2antt , "Items"))
		_ObjectCallMethod(g2host, "TemplatePut", c)
		_ObjectCallMethod(g2host, "TemplatePut", i)
		Message( "Cell:" );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.CellCaption(i,c)") );
		chart = _ObjectGetProperty( g2antt , "Chart");
			_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
			_ObjectCallMethod(g2host, "TemplatePut", chart)
			b = _ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.BarFromPoint(-1,1)");
			_ObjectCallMethod(g2host, "TemplatePut", "Dim b,i")
			_ObjectCallMethod(g2host, "TemplatePut", b)
			_ObjectCallMethod(g2host, "TemplatePut", i)
			Message( "Bar:" );
			Message( _ObjectCallMethod(g2host, "ExecuteTemplate", ".Host.Items.ItemBar(i,b,0)") );
END



48
How do I get the cell from the cursor

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	OBJECT g2antt;
	Message( "Event:" );
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
	g2antt = _ObjectGetProperty( g2host , "Host");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim g2aObj,c,h")
		_ObjectCallMethod(g2host, "TemplatePut", g2antt)
		_ObjectCallMethod(g2host, "TemplatePut", c)
		_ObjectCallMethod(g2host, "TemplatePut", h)
		i = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.ItemFromPoint(-1,-1,c,h)");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj,c,i")
		_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2antt , "Items"))
		_ObjectCallMethod(g2host, "TemplatePut", c)
		_ObjectCallMethod(g2host, "TemplatePut", i)
		Message( "Cell:" );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.CellCaption(i,c)") );
END



47
How can I highlights cells based on its value

OBJECT column,conditionalformats,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectSetProperty( g2antt , "BackColorAlternate", 0);
	column = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Columns.Item(`Title`)");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2host, "TemplatePut", column)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "colObj.Def(4) = 15790320");
		_ObjectSetProperty( column , "Width", _ObjectGetProperty( column , "AutoWidth"));
	conditionalformats = _ObjectGetProperty( g2antt , "ConditionalFormats");
		_ObjectSetProperty( _ObjectCallMethod( conditionalformats , "Add", "lower(%4) contains `manager`") , "Bold", -1);
		_ObjectSetProperty( _ObjectCallMethod( conditionalformats , "Add", "%3") , "BackColor", 15790320);
	_ObjectCallMethod(g2host, "TemplatePut", "Dim g2aObj")
	_ObjectCallMethod(g2host, "TemplatePut", g2antt)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Items.ExpandItem(0) = True");
	column = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Columns.Item(`EmployeeID`)");
		_ObjectSetProperty( column , "Width", _ObjectGetProperty( column , "AutoWidth"));
	_ObjectCallMethod( g2antt , "EndUpdate");

46
How do I programatically hide a column

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Columns.Item(`LastName`).Visible = False");

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

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	OBJECT g2antt;
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
	g2antt = _ObjectGetProperty( g2host , "Host");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim g2aObj,c,hit")
		_ObjectCallMethod(g2host, "TemplatePut", g2antt)
		_ObjectCallMethod(g2host, "TemplatePut", c)
		_ObjectCallMethod(g2host, "TemplatePut", hit)
		i = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.ItemFromPoint(-1,-1,c,hit)");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj,c,i")
		_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2antt , "Items"))
		_ObjectCallMethod(g2host, "TemplatePut", c)
		_ObjectCallMethod(g2host, "TemplatePut", i)
		Message( "cell's value from cursor: " );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.CellValue(i,c)") );
		_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj,i")
		_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2antt , "Items"))
		_ObjectCallMethod(g2host, "TemplatePut", i)
		Message( "cell's value on col 1: " );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.CellValue(i,1)") );
		_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj")
		_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2antt , "Chart"))
		b = _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.BarFromPoint(-1,-1)");
		Message( "Bar:" );
		Message( b );
		_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj,b,i")
		_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2antt , "Items"))
		_ObjectCallMethod(g2host, "TemplatePut", b)
		_ObjectCallMethod(g2host, "TemplatePut", i)
		Message( "Bar Start:" );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.ItemBar(i,b,1)") );
		Message( "Bar End:" );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.ItemBar(i,b,2)") );
		Message( "Bar Caption:" );
		Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.ItemBar(i,b,3)") );
END

OBJECT bar,chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "Debug", -1);
	bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Chart.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "OverlaidType", 515);
		_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
chart = _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2host, "TemplatePut", chart)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectCallMethod( chart , "ScrollTo", "5/27/2017",1);

44
How do I get the bar from the cursor

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
	_ObjectCallMethod(g2host, "TemplatePut", "Dim _ObObj")
	_ObjectCallMethod(g2host, "TemplatePut", _ObjectGetProperty( g2host , "Host"))
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "_ObObj.Chart.BarFromPoint(-1,-1)") );
END

OBJECT bar,chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn");
	bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Chart.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Height", 15);
		_ObjectSetProperty( bar , "Color", 33488896);
		_ObjectSetProperty( bar , "OverlaidType", 515);
		_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
chart = _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2host, "TemplatePut", chart)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectCallMethod( chart , "ScrollTo", "5/27/2017",1);

43
How do I add Start/End columns

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
END

OBJECT chart,column,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectSetProperty( g2host , "HostReadOnly", 255);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "SingleSel", 0);
	_ObjectSetProperty( g2antt , "OnResizeControl", 1);
	_ObjectSetProperty( g2antt , "ScrollBars", 2058);
	column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "Start");
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectCallMethod(g2host, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2host, "TemplatePut", column)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "colObj.Def(18) = 1");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
	column = _ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "End");
		_ObjectSetProperty( column , "AllowSizing", 0);
		_ObjectCallMethod(g2host, "ExecuteTemplate", "colObj.Def(18) = 2");
		_ObjectSetProperty( _ObjectGetProperty( column , "Editor") , "EditType", 7);
	_ObjectSetProperty( _ObjectGetProperty( g2antt , "Items") , "AllowCellValueToItemBar", -1);
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectSetProperty( chart , "AllowCreateBar", 1);
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 256");
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.Bars.Item(`Task`).OverlaidType = 515");

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "Pattern", 1);
	_ObjectSetProperty( bar , "Color", 16711680);
	_ObjectCallMethod(g2host, "TemplatePut", "Dim barObj")
	_ObjectCallMethod(g2host, "TemplatePut", bar)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "barObj.Def(19) = 50");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectSetProperty( g2host , "HostReadOnly", 255);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "OnResizeControl", 129);
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectSetProperty( chart , "ColumnsFormatLevel", "1");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 0");
		_ObjectCallMethod( chart , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "Pattern", 1);
	_ObjectSetProperty( bar , "Color", 16711680);
	_ObjectCallMethod(g2host, "TemplatePut", "Dim barObj")
	_ObjectCallMethod(g2host, "TemplatePut", bar)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "barObj.Def(19) = 50");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
g2antt = _ObjectGetProperty( g2host , "Host");
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(True) = 0");
		_ObjectSetProperty( chart , "OverviewVisible", 0);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = DataField(0)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `BirthDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `HireDate`");
g2antt = _ObjectGetProperty( g2host , "Host");
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectSetProperty( chart , "OverviewVisible", 0);
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 256");
		_ObjectCallMethod( chart , "ScrollTo", "4/27/1969",1);

39
How do I resize the panels

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn");
	bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Chart.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Height", 15);
		_ObjectSetProperty( bar , "Color", 33488896);
		_ObjectSetProperty( bar , "OverlaidType", 515);
		_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
chart = _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
	_ObjectCallMethod(g2host, "TemplatePut", chart)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
	_ObjectCallMethod( chart , "ScrollTo", "5/27/2017",1);

38
How do I lock the first column

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "CountLockedColumns", 1);
	_ObjectSetProperty( g2antt , "BackColorLock", _ObjectGetProperty( g2antt , "BackColorAlternate"));

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "VisualAppearance") , "Add", 1,"C:\Program Files\Exontrol\ExG2Host\Sample\EBN\Assorted\wbs-ass.ebn");
	bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Chart.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "Height", 15);
		_ObjectSetProperty( bar , "Color", 33488896);
		_ObjectSetProperty( bar , "OverlaidType", 515);
		_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.PaneWidth(False) = 256");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "Pattern", 1);
	_ObjectSetProperty( bar , "Color", 16711680);
	_ObjectCallMethod(g2host, "TemplatePut", "Dim barObj")
	_ObjectCallMethod(g2host, "TemplatePut", bar)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "barObj.Def(19) = 50");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(12) = `Color`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(13) = `TaskName`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.PaneWidth(False) = 256");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

35
GroupBy

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,column,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "AllowGroupBy", -1);
	_ObjectSetProperty( g2antt , "SortBarVisible", -1);
	_ObjectSetProperty( g2antt , "BackColorSortBar", _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "BackColor"));
	_ObjectSetProperty( g2antt , "BackColorSortBarCaption", _ObjectGetProperty( g2antt , "BackColorSortBar"));
	_ObjectSetProperty( g2antt , "SortBarCaption", "<sha ;;0><fgcolor=FF0000>Drag a <b>column</b> header here to sort by that column.");
	bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Chart.Bars.Item(`Task`)");
		_ObjectSetProperty( bar , "OverlaidType", 515);
		_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim g2aObj")
	_ObjectCallMethod(g2host, "TemplatePut", g2antt)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Items.ExpandItem(0) = True");
	_ObjectSetProperty( g2antt , "CountLockedColumns", 1);
	_ObjectSetProperty( g2antt , "BackColorLock", _ObjectGetProperty( g2antt , "BackColorAlternate"));
	column = _ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Columns.Item(`EmployeeID`)");
		_ObjectSetProperty( column , "AllowGroupBy", 0);
		_ObjectCallMethod(g2host, "TemplatePut", "Dim colObj")
		_ObjectCallMethod(g2host, "TemplatePut", column)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "colObj.Def(7) = Me.Host.BackColorAlternate");
	_ObjectCallMethod(g2host, "TemplatePut", "Dim g2aObj")
	_ObjectCallMethod(g2host, "TemplatePut", g2antt)
	_ObjectCallMethod(g2host, "ExecuteTemplate", "g2aObj.Columns.Item(`Title`).SortOrder = 1");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

34
How can I hide a column
// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "HostDef(7) = False");

32
No error is highligthed

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "HostDef(6) = 0");
_ObjectCallMethod(g2host, "ExecuteTemplate", "HostDef(5) = 16777215");

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

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
_ObjectCallMethod(g2host, "ExecuteTemplate", "HostDef(1) = `*`");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "A");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "B");
	_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectCallMethod( g2host , "Refresh");

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

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
_ObjectSetProperty( g2host , "HostReadOnly", 240);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "A");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "B");
	_ObjectCallMethod( g2antt , "EndUpdate");

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

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
_ObjectCallMethod(g2host, "ExecuteTemplate", "HostDef(1) = ``");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "A");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Items") , "AddItem", "B");
	_ObjectCallMethod( g2antt , "EndUpdate");
_ObjectCallMethod( g2host , "Refresh");

27
Read-Only

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectSetProperty( g2host , "HostReadOnly", 0);

26
How can I prevent user create new /delete tasks ( only move or resize then )
// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectSetProperty( g2host , "HostReadOnly", 128);
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	Message( _ObjectGetProperty( _ObjectGetProperty( g2host , "HostContext") , "ToString") );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectSetProperty( g2host , "HostReadOnly", 141);

24
Disable Delete
// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectSetProperty( g2host , "HostReadOnly", 141);

23
Disable AddNew

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectSetProperty( g2host , "HostReadOnly", 240);

22
ACCDB sample ( file )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

21
MDB sample ( file )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\sample.mdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

20
DBF sample ( file )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\sample.dbf`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,createobject("dao.dbengine.120"),database,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
createobject("dao.dbengine.120") = CreateObject("DAO.DBEngine.120");
	database = _ObjectCallMethod( createobject("dao.dbengine.120") , "OpenDatabase", "C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb");
		rsEmployees = _ObjectCallMethod( database , "OpenRecordset", "Employees");
		rsTasks = _ObjectCallMethod( database , "OpenRecordset", "EmployeeDetails");
		rsLinks = _ObjectCallMethod( database , "OpenRecordset", "EmployeeLinks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = rsEmployees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = rsTasks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = rsLinks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Tasks`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Links`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT createobject("dao.dbengine.120"),database,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
createobject("dao.dbengine.120") = CreateObject("DAO.DBEngine.120");
	database = _ObjectCallMethod( createobject("dao.dbengine.120") , "OpenDatabase", "C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb");
		rsEmployees = _ObjectCallMethod( database , "OpenRecordset", "Employees");
		rsLinks = _ObjectCallMethod( database , "OpenRecordset", "EmployeeLinks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = rsEmployees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = DataField(0)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `BirthDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `HireDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = rsLinks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = DataField(0)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `BirthDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `HireDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Links`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");

15
DAO sample ( tree recordset )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");

14
DAO sample ( flat recordset )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT createobject("dao.dbengine.120"),database,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
createobject("dao.dbengine.120") = CreateObject("DAO.DBEngine.120");
	database = _ObjectCallMethod( createobject("dao.dbengine.120") , "OpenDatabase", "C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb");
		rsEmployees = _ObjectCallMethod( database , "OpenRecordset", "Employees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = rsEmployees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");

13
DAO sample ( flat )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `DAO.DBEngine.120;DAO.DBEngine.36`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
rsEmployees = CreateObject("ADODB.Recordset");
_ObjectCallMethod( rsEmployees , "Open", "Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb",3,3);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = rsEmployees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
rsTasks = CreateObject("ADODB.Recordset");
_ObjectCallMethod( rsTasks , "Open", "EmployeeDetails","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb",3,3);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = rstasks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
rsLinks = CreateObject("ADODB.Recordset");
_ObjectCallMethod( rsLinks , "Open", "EmployeeLinks","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb",3,3);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = rsLinks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT bar,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Tasks`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Tasks`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Tasks`) = `EmployeeDetails`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = `Tasks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(8) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `DateStart`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `DateEnd`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(14) = `TaskID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Links`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");
bar = _ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Chart.Bars.Item(`Task`)");
	_ObjectSetProperty( bar , "OverlaidType", 515);
	_ObjectSetProperty( bar , "OverlaidGroup", "Task,Progress");
_ObjectCallMethod(g2host, "ExecuteTemplate", "Host.Items.ExpandItem(0) = True");
_ObjectCallMethod( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Chart") , "ScrollTo", "5/27/2017",1);

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
rsEmployees = CreateObject("ADODB.Recordset");
_ObjectCallMethod( rsEmployees , "Open", "Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb",3,3);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = rsEmployees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = DataField(0)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `BirthDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `HireDate`");
rsLinks = CreateObject("ADODB.Recordset");
_ObjectCallMethod( rsLinks , "Open", "EmployeeLinks","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb",3,3);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = rsLinks");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");

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

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(7) = DataField(0)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(9) = `BirthDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(10) = `HireDate`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Links`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Links`) = DataSource(`Items`)");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Links`) = `EmployeeLinks`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(15) = `Links`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(16) = `Start`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(17) = `End`");

8
ADO sample ( tree recordset )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(1) = `EmployeeID`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(2) = `ReportsTo`");

7
ADO sample ( flat recordset )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
rsEmployees = CreateObject("ADODB.Recordset");
_ObjectCallMethod( rsEmployees , "Open", "Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb",3,3);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = rsEmployees");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");

6
ADO sample ( flat table )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `ADODB.Recordset;ADOR.Recordset`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\Access\sample.accdb`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataMember(`Items`) = `Employees`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");

5
XML sample ( object, MSXML.DOMDocument )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
xml = CreateObject("MSXML.DOMDocument");
_ObjectSetProperty( xml , "async", 0);
_ObjectCallMethod( xml , "load", "C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = xml");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
	_ObjectSetProperty( g2antt , "SingleSel", 0);
	_ObjectSetProperty( g2antt , "AutoDrag", 3);

4
XML sample ( file tree )

// Error event - Fired when an internal error occurs.
FUNCTION g2hostEvents_Error(OBJECT g2host, INT Error, STRING Description)
	Message( Error );
	Message( Description );
END

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataTechnology(`Items`) = `MSXML.DOMDocument`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataSource(`Items`) = `C:\Program Files\Exontrol\ExG2Host\Sample\sample.xml`");
_ObjectCallMethod(g2host, "ExecuteTemplate", "DataField(0) = `Items`");
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "LinesAtRoot", -1);
	_ObjectSetProperty( g2antt , "SingleSel", 0);
	_ObjectSetProperty( g2antt , "AutoDrag", 3);

3
How can I let user create new items/bars when clicking the empty area of the control
// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
END

OBJECT chart,g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
_ObjectSetProperty( g2host , "HostReadOnly", 255);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectSetProperty( g2antt , "ScrollBars", 2058);
	chart = _ObjectGetProperty( g2antt , "Chart");
		_ObjectCallMethod(g2host, "TemplatePut", "Dim chaObj")
		_ObjectCallMethod(g2host, "TemplatePut", chart)
		_ObjectCallMethod(g2host, "ExecuteTemplate", "chaObj.PaneWidth(False) = 128");
		_ObjectSetProperty( chart , "AllowCreateBar", 1);

2
How do I handle events of the host

// HostEvent event - Notifies the application once the host fires an event.
FUNCTION g2hostEvents_HostEvent(OBJECT g2host, INT EventID)
	Message( _ObjectCallMethod(g2host, "ExecuteTemplate", "HostEventParam(-2)") );
END

OBJECT g2antt,g2host;

g2host =  ObjectByName("AN1") ;
ObjectAssociateEvents("g2hostEvents", g2host);
g2antt = _ObjectGetProperty( g2host , "Host");
	_ObjectCallMethod( g2antt , "BeginUpdate");
	_ObjectCallMethod( _ObjectGetProperty( g2antt , "Columns") , "Add", "new column");
	_ObjectCallMethod( g2antt , "EndUpdate");

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

OBJECT g2host;

g2host =  ObjectByName("AN1") ;
Message( _ObjectGetProperty( g2host , "Version") );
Message( "Host" );
Message( _ObjectGetProperty( _ObjectGetProperty( g2host , "Host") , "Version") );