1255
The Change event is called before changing the value. Is there any event such as Changed that is called after updating the cell's value
METHOD OCX_Exontrol1Changed(Item, ColIndex) CLASS MainDialog
	// Changed event - Occurs after the user has changed the content of a cell.
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Items:[CellValue,Item,ColIndex]) ))
RETURN NIL


oDCOCX_Exontrol1:BeginUpdate()
IColumn{oDCOCX_Exontrol1:Columns:Add("Edit")}:Editor:EditType := EditType
oDCOCX_Exontrol1:Items:AddItem("Item 1")
oDCOCX_Exontrol1:Items:AddItem("Item 2")
oDCOCX_Exontrol1:EndUpdate()

1254
How can I reposition the +/- (expand/collapse) icon to show as "number, icon, text" (sample 2)
METHOD OCX_Exontrol1AnchorClick(AnchorID, Options) CLASS MainDialog
	// AnchorClick event - Occurs when an anchor element is clicked.
	local var_Items as IItems
	local exp,i as USUAL
	i := oDCOCX_Exontrol1:FormatABC("int(value)",AnchorID,nil,nil)
	var_Items := oDCOCX_Exontrol1:Items
		i := var_Items:[ItemByIndex,i]
		exp := var_Items:[ExpandItem,i]
		var_Items:[ExpandItem,i] := false
RETURN NIL

local var_Column as IColumn
local var_Columns as IColumns
local var_Editor as IEditor
local var_Items as IItems
local h,hRoot as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:[HTMLPicture,"expand"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyxgjsRzEKv1TqtXrNbrtfsIAwgASAHAGShQwGQzGABUGEzudAqgyWdSmWw2Fw+sABSHI4AGH1XAGAxGAwywlI6eRqjGi1YuaJJEIJUHBPYqSJYKQAwCBDKbBPbncBibrUKQjGLFQo+TBFfR5GaUAR/KbGICyRxsiCOQClgdJxGoMpkGycpdDqUZ0EoJQJHYVoWCSCA4kEbRlHKRwJiYcYCH0PBNB2JwYCaCRsGcE8LDyfZKg+U59EsAZMlQCgJkcEA9CsywkiKJwiFcIQwEEgI="
oDCOCX_Exontrol1:[HTMLPicture,"collapse"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYU7YQBCooJSAiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzyO13dGEAGYzWcqlWrFarlesA3AGcSAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWISpVLiXT5MrxiJyJJEIJUHBPYqSXYOQAgBgAB6jJwufxxX7YYhdYhFCSsSwSC4uMLoQajNJAG8QgZAgSIqGMCwRBkAJDicGwuiMeoHGeaRFlAU5qDwQQ6A+CYnlgPQeisGJfl4AJYhsRISjQYwJHIcpmmALAtlMEpkE4YBREmEpPBAARdicSw8AES5fi+fI5g+PpcAAUJKgyCYknaZRrssJIiicIhXCEMBBICA=="
oDCOCX_Exontrol1:[HTMLPicture,"empty"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYE7YABNTWRIJiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyy/O13dGEAGYzWcqlWrFarlesA3AGcSAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWYSvDpndpkQ9xhRTJJEIJUHBPdqSGIKYAwBgDUpCfytH57FqoVaTKQTGS0DJ6cDBDzOGwIfANHMIxJDmf5CFIAxwA4Q5HEQVJlEWRxnBkMANjsPoqBSEAElkfZ5CMFJMHCC52BALBGjkDpHCuXIAB2bQdEGaQgFIbbLCSIonCIVwhDAQSAg=="
oDCOCX_Exontrol1:HeaderVisible := false
oDCOCX_Exontrol1:HasLines := exNoLine
oDCOCX_Exontrol1:HasButtons := exNoButtons
oDCOCX_Exontrol1:Indent := 12
oDCOCX_Exontrol1:DefaultItemHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exHLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesSolid
oDCOCX_Exontrol1:GridLineColor := RGB(204,204,204)
oDCOCX_Exontrol1:ShowFocusRect := false
oDCOCX_Exontrol1:ExpandOnDblClick := false
oDCOCX_Exontrol1:ExpandOnKeys := false
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Item")}
		var_Column:[Def,exCellValueFormat] := 1
		var_Column:FormatColumn := "(len(parent(1 index ``)) ? (`<b><fgcolor gray>` + (1 pos ``) + `. ` + `</fgcolor></b>` + (%CC0 ? (`<a ` + (0 index ``) + `>`) : ``) + `<img>` + (%CC0 ? (not %CX0 ? `expand` : `collapse`) : `empty`) + `:16</img>` + (%CC0 ? (`</a>`) : ``)) : ``) + ` ` + value"
		var_Editor := var_Column:Editor
			var_Editor:EditType := EditType
			var_Editor:[Option,exEditorAdjustPos] := "32 4 -4 -4"
var_Items := oDCOCX_Exontrol1:Items
	hRoot := var_Items:AddItem("ACME Corporation")
	var_Items:[SelectableItem,hRoot] := false
	var_Items:[ExpandItem,hRoot] := true
	h := var_Items:InsertItem(hRoot,nil,"Management")
	var_Items:InsertItem(h,nil,"CEO - Alice Brown")
	var_Items:InsertItem(h,nil,"COO - James Lee")
	h := var_Items:InsertItem(hRoot,nil,"HR Department")
	var_Items:InsertItem(h,nil,"Recruiter - Jane Smith")
	var_Items:InsertItem(h,nil,"HR Assistant - Bob Green")
	var_Items:[ExpandItem,h] := true
	h := var_Items:InsertItem(h,nil,"Engineering")
	var_Items:InsertItem(h,nil,"Software Team")
	h := var_Items:InsertItem(h,nil,"Lead Developer - Mark H.")
	var_Items:InsertItem(h,nil,"Frontend Dev - Emily R.")
	var_Items:InsertItem(h,nil,"Backend Dev - Tom W.")
	var_Items:InsertItem(hRoot,nil,"QA Team")
oDCOCX_Exontrol1:EndUpdate()

1253
How can I reposition the +/- (expand/collapse) icon to show as "number, icon, text" (sample 1)

METHOD OCX_Exontrol1AnchorClick(AnchorID, Options) CLASS MainDialog
	// AnchorClick event - Occurs when an anchor element is clicked.
	local var_Items as IItems
	local exp,i as USUAL
	i := oDCOCX_Exontrol1:FormatABC("int(value)",AnchorID,nil,nil)
	var_Items := oDCOCX_Exontrol1:Items
		i := var_Items:[ItemByIndex,i]
		exp := var_Items:[ExpandItem,i]
		var_Items:[ExpandItem,i] := false
RETURN NIL

local var_Column as IColumn
local var_Columns as IColumns
local var_Items as IItems
local h,hRoot as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:[HTMLPicture,"expand"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYc7YYBY5vVBkiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyxgjsRzEKv1TqtXrNbrtfsIAwgASAHAGShQwGQzGABUGEzudAqgyWdSmWw2Fw+sABSHI4AGH1XAGAxGAwywlI6eRqjGi1YuaJJEIJUHBPYqSJYKQAwCBDKbBPbncBibrUKQjGLFQo+TBFfR5GaUAR/KbGICyRxsiCOQClgdJxGoMpkGycpdDqUZ0EoJQJHYVoWCSCA4kEbRlHKRwJiYcYCH0PBNB2JwYCaCRsGcE8LDyfZKg+U59EsAZMlQCgJkcEA9CsywkiKJwiFcIQwEEgI="
oDCOCX_Exontrol1:[HTMLPicture,"collapse"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYU7YQBCooJSAiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzyO13dGEAGYzWcqlWrFarlesA3AGcSAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWISpVLiXT5MrxiJyJJEIJUHBPYqSXYOQAgBgAB6jJwufxxX7YYhdYhFCSsSwSC4uMLoQajNJAG8QgZAgSIqGMCwRBkAJDicGwuiMeoHGeaRFlAU5qDwQQ6A+CYnlgPQeisGJfl4AJYhsRISjQYwJHIcpmmALAtlMEpkE4YBREmEpPBAARdicSw8AES5fi+fI5g+PpcAAUJKgyCYknaZRrssJIiicIhXCEMBBICA=="
oDCOCX_Exontrol1:HeaderVisible := false
oDCOCX_Exontrol1:HasLines := exNoLine
oDCOCX_Exontrol1:HasButtons := exNoButtons
oDCOCX_Exontrol1:Indent := 12
oDCOCX_Exontrol1:DefaultItemHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exHLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesSolid
oDCOCX_Exontrol1:GridLineColor := RGB(204,204,204)
oDCOCX_Exontrol1:ShowFocusRect := false
oDCOCX_Exontrol1:ExpandOnDblClick := false
oDCOCX_Exontrol1:ExpandOnKeys := false
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Item")}
		var_Column:[Def,exCellValueFormat] := 1
		var_Column:FormatColumn := "(len(parent(1 index ``)) ? (`<b><fgcolor gray>` + (1 pos ``) + `. ` + `</fgcolor></b>` + `<a ` + (0 index ``) + `><img>` + (%CC0 ? (not %CX0 ? `expand` : `collapse`) : ``) + `:16</img></a>`) : ``) + ` ` + value"
var_Items := oDCOCX_Exontrol1:Items
	hRoot := var_Items:AddItem("ACME Corporation")
	var_Items:[SelectableItem,hRoot] := false
	var_Items:[ExpandItem,hRoot] := true
	h := var_Items:InsertItem(hRoot,nil,"Management")
	var_Items:InsertItem(h,nil,"CEO - Alice Brown")
	var_Items:InsertItem(h,nil,"COO - James Lee")
	h := var_Items:InsertItem(hRoot,nil,"HR Department")
	var_Items:InsertItem(h,nil,"Recruiter - Jane Smith")
	var_Items:InsertItem(h,nil,"HR Assistant - Bob Green")
	var_Items:[ExpandItem,h] := true
	h := var_Items:InsertItem(h,nil,"Engineering")
	var_Items:InsertItem(h,nil,"Software Team")
	h := var_Items:InsertItem(h,nil,"Lead Developer - Mark H.")
	var_Items:InsertItem(h,nil,"Frontend Dev - Emily R.")
	var_Items:InsertItem(h,nil,"Backend Dev - Tom W.")
	var_Items:InsertItem(hRoot,nil,"QA Team")
oDCOCX_Exontrol1:EndUpdate()

1252
Expandable bullet list

METHOD OCX_Exontrol1AnchorClick(AnchorID, Options) CLASS MainDialog
	// AnchorClick event - Occurs when an anchor element is clicked.
	local var_Items as IItems
	local exp,i as USUAL
	i := oDCOCX_Exontrol1:FormatABC("int(value)",AnchorID,nil,nil)
	var_Items := oDCOCX_Exontrol1:Items
		i := var_Items:[ItemByIndex,i]
		exp := var_Items:[ExpandItem,i]
		var_Items:[ExpandItem,i] := false
RETURN NIL

local var_Column as IColumn
local var_Columns as IColumns
local var_Editor as IEditor
local var_Items as IItems
local h,hRoot as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:[HTMLPicture,"expand"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYM7YIBXCRNbtiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzZO13dGEAGYzWcqlWrFarlesA3AGcSAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWNa6awbST7DBTiLyJJEIJUHBPUqSGJuYYwCAES5pBiQfyEX4QKAFH6QSihJQ/GZlET1FhIcgGnUdoVHMmxajSIghlMKhsGiAAFggQ5dmKcRHEUEhbFAFQBgacABmAAJgAAcAJkAZgNjUcwDFecYcD8QoIDsGJjD6aYaGyHI7mqLRfgGfBcg+TYggkEhakQThtFsEpAE2Xh7goSIJiSHp6haKgPGOXx3j+c5hiKLpri6JAPHWYJREuFJkBCYxcFeYS7ikJQzG0ZIVGKMBYGsVwXDWVQHjqfpjAoYpyE4Z5vH2YoHDkZwzkkUxHC8pwCgifIHBCdk4GMLQVmcXJVhicxWi4IIUiKSQ1A8cBUj+eBEGCFQlFSIophiPRkFAWBLFALhwm+HhKjARpmgSGwNn4AIUCcZZUFEKoVmwywkiKJwiFcIQwEEgI"
oDCOCX_Exontrol1:[HTMLPicture,"collapse"] := "gCJKBOI4NBQaBQAhQNJJIIhShQACERCAIA0RD7zf5hiIBOZSI5CACuZwcdMRAhnIJNIMKWKPBb8MIFiIJOBILJzhQOYM7YIBXCRNbtiIYOhFLB0KZvMx0O5hORlABQMJpNx0FxOIpUEA1FwxFw3RbWe45iK2MpYJJmJJJFQABERmgaAM0AMRJURDd1AF3hUQhQoAIDvsRAURGIBw8ThRaiJpQ4EwsKNURyzZO13dGEAGYzWcqlWrFarlesA3AGcSAHAGShQwGQzGABUGEv2TAAFUGS26Uy2GwuH1wAKQ5HAAw+s4YwGIwGGWNa6awbST7DBTiLZJJEIJUHBPdpSGKOAQxCAzGhIBKfbAvUBsSIPbiVMhLTxJPK3banJB0N5sA8VQRlmCRKjSCRaAIOgCiORISiWaI0DYLJPBYJBxB+LAqAMBRgAsIABjAAhYAOEB5kKDQ5kGZoaCaL5vH2KoEDCbpbDaWRrE8SopE+AA/DcMoZkgAgkhKERDlcdYEHAJRzg4IpyCAKRyl6HZLGONwMEMb5clwWB3n2CZki6FoWC4cwQCbGYukKwhiAwOp3HIEJFGCNBGDyLArE8R56n4RUnlOShHGcXJdgcKQlCOSRdEcLw8DmAoInyexvFeMRGG0DARmsbRZmsfRxleFZeHoD4eEKKRxGmPANgAC5xDAWpYHMW4uCGywkiKJwiFcIQwEEgI"
oDCOCX_Exontrol1:HeaderVisible := false
oDCOCX_Exontrol1:HasLines := exNoLine
oDCOCX_Exontrol1:HasButtons := exNoButtons
oDCOCX_Exontrol1:Indent := 12
oDCOCX_Exontrol1:DefaultItemHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exHLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesSolid
oDCOCX_Exontrol1:GridLineColor := RGB(204,204,204)
oDCOCX_Exontrol1:ShowFocusRect := false
oDCOCX_Exontrol1:ExpandOnDblClick := false
oDCOCX_Exontrol1:ExpandOnKeys := false
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Item")}
		var_Column:[Def,exCellValueFormat] := 1
		var_Column:FormatColumn := "(len(parent(1 index ``)) ? (`<b><fgcolor gray>` + (1 pos ``) + `. ` + `</fgcolor></b>` + `<a ` + (0 index ``) + `><img>` + (%CC0 ? (not %CX0 ? `expand` : `collapse`) : `collapse`) + `:16</img></a>`) : ``) + ` ` + value"
		var_Editor := var_Column:Editor
			var_Editor:EditType := EditType
			var_Editor:[Option,exEditorAdjustPos] := "32D 4D -4D -4D"
var_Items := oDCOCX_Exontrol1:Items
	hRoot := var_Items:AddItem("ACME Corporation")
	var_Items:[SelectableItem,hRoot] := false
	var_Items:[ExpandItem,hRoot] := true
	h := var_Items:InsertItem(hRoot,nil,"Management")
	var_Items:InsertItem(h,nil,"CEO - Alice Brown")
	var_Items:InsertItem(h,nil,"COO - James Lee")
	h := var_Items:InsertItem(hRoot,nil,"HR Department")
	var_Items:InsertItem(h,nil,"Recruiter - Jane Smith")
	var_Items:InsertItem(h,nil,"HR Assistant - Bob Green")
	var_Items:[ExpandItem,h] := true
	h := var_Items:InsertItem(h,nil,"Engineering")
	var_Items:InsertItem(h,nil,"Software Team")
	h := var_Items:InsertItem(h,nil,"Lead Developer - Mark H.")
	var_Items:InsertItem(h,nil,"Frontend Dev - Emily R.")
	var_Items:InsertItem(h,nil,"Backend Dev - Tom W.")
	var_Items:InsertItem(hRoot,nil,"QA Team")
oDCOCX_Exontrol1:EndUpdate()

1251
Does grouping support multi-column sorting

local var_Column as IColumn
local var_Items as IItems
local h as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:SingleSort := false
oDCOCX_Exontrol1:HeaderVisible := false
oDCOCX_Exontrol1:DrawGridLines := exRowLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesSolid
oDCOCX_Exontrol1:AllowGroupBy := true
oDCOCX_Exontrol1:Columns:Add("Prefix")
oDCOCX_Exontrol1:Columns:Add("Region")
oDCOCX_Exontrol1:Columns:Add("City")
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("Sort")}
	var_Column:ComputedField := "%1 + %2"
	var_Column:Visible := false
var_Items := oDCOCX_Exontrol1:Items
	h := var_Items:AddItem("+33")
	var_Items:[CellValue,h,1] := "Corsica"
	var_Items:[CellValue,h,2] := "Bastia "
	h := var_Items:AddItem("+33")
	var_Items:[CellValue,h,1] := "Occitanie"
	var_Items:[CellValue,h,2] := "Toulouse "
	h := var_Items:AddItem("+33")
	var_Items:[CellValue,h,1] := "Corsica"
	var_Items:[CellValue,h,2] := "Ajaccio"
	h := var_Items:AddItem("+33")
	var_Items:[CellValue,h,1] := "Occitanie"
	var_Items:[CellValue,h,2] := "Carcassonne "
oDCOCX_Exontrol1:Layout := "multiplesort=" + CHR(34) + "C0:2" + CHR(34) + ";singlesort=" + CHR(34) + "C3:1" + CHR(34) + ";"
oDCOCX_Exontrol1:EndUpdate()

1250
How can I vertically scroll the control

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ColumnAutoResize := false
// Generate Source for 'Microsoft Office 15.0 Access database engine Object Library(ACEDAO.DLL)' server from Tools\Automation Server...
oDCOCX_Exontrol1:DataSource := Recordset2{_DBEngine{"DAO.DBEngine.120"}:OpenDatabase("C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb",nil,nil,nil):OpenRecordset("Orders",nil,nil,nil)}
oDCOCX_Exontrol1:Layout := "Collapse=" + CHR(34) + "" + CHR(34) + ";VScroll=10"
oDCOCX_Exontrol1:EndUpdate()

1249
Export the items as a two-dimensional array

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:PutItems(oDCOCX_Exontrol1:Export("array","all"),nil)
oDCOCX_Exontrol1:EndUpdate()

1248
Export only expanded items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(expanded)")) ))

1247
Export only selectable, sortable leaf items that are neither locked nor dividers

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(leaf,sortable,selectable,!divider,!locked)")) ))

1246
Export only non-divider items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(!divider)")) ))

1245
Export only selectable items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(selectable)")) ))

1244
Export only sortable, but not locked items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(sortable,!locked)")) ))

1243
Export only checked items on specified column

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(checked[0])")) ))

1242
Export only filtered, not locked or divider items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(visible,!locked,!divider)")) ))

1241
Export only selected items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(selected)")) ))

1240
Export only locked items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","only(locked)")) ))

1239
Export the leaf items of the control, excluding parent or grouped items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","leaf")) ))

1238
Export all checked and visible items (the first column in the columns list specifies the index of the column used to query the checkbox state)

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","chk")) ))

1237
Export the selected-items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","sel")) ))

1236
Export the visible items, excluding child items of collapsed elements, non-visible items (such as those with a height of 0), and items that do not match the current filter

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","vis")) ))

1235
Export all items, including the hidden or collapsed items

local var_Column,var_Column1 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:ScrollBySingleLine := true
oDCOCX_Exontrol1:LinesAtRoot := exGroupLinesOutside
var_Columns := oDCOCX_Exontrol1:Columns
	var_Column := IColumn{var_Columns:Add("Desc")}
		var_Column:Width := 32
		var_Column:[Def,exCellHasCheckBox] := true
	var_Column1 := IColumn{var_Columns:Add("Amount")}
		var_Column1:[Def,exTotalColumn] := "sum(current,rec,%1)"
		var_Column1:FormatColumn := "currency(value)"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[LockedItemCount,exTop] := 1
	h := var_Items:[LockedItem,exTop,0]
	var_Items:[CellValue,h,0] := "All"
	var_Items:[CellValue,h,1] := "sum(all,rec,%1)"
	var_Items:[CellValueFormat,h,1] := exTotalField
	r := var_Items:AddItem("Root 1")
	g1 := var_Items:InsertItem(r,nil,"Group A")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 1"),1] := 1
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 2"),1] := 2
	var_Items:[CellState,var_Items:[ItemByIndex,3],0] := 1
	g2 := var_Items:InsertItem(r,nil,"Group B")
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 3"),1] := 3
	var_Items:[CellValue,var_Items:InsertItem(g2,nil,"Item 4"),1] := 4
	var_Items:[ExpandItem,g1] := true
	var_Items:[ExpandItem,r] := true
	h := var_Items:AddItem("divider")
	var_Items:[ItemDivider,h] := 0
	var_Items:[SelectableItem,h] := false
	var_Items:[SortableItem,h] := false
	var_Items:[ItemHeight,h] := 1
	r := var_Items:AddItem("Root 2")
	g1 := var_Items:InsertItem(r,nil,"Group C")
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 5"),1] := 5
	var_Items:[CellValue,var_Items:InsertItem(g1,nil,"Item 6"),1] := 6
	var_Items:[SelectItem,var_Items:[ItemByIndex,2]] := true
oDCOCX_Exontrol1:EndUpdate()
OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Export("","all")) ))

1234
Bolds only the expanded items

local var_Items as IItems
local h as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
oDCOCX_Exontrol1:ConditionalFormats:Add("%CX0",nil):Bold := true
oDCOCX_Exontrol1:Columns:Add("Description")
var_Items := oDCOCX_Exontrol1:Items
	h := var_Items:AddItem("Root 1")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(var_Items:InsertItem(h,nil,"Child 2"),nil,"Sub-Child 2")
	var_Items:[CellState,var_Items:InsertItem(h,nil,"Child 3"),0] := 1
	var_Items:[ExpandItem,h] := true
	h := var_Items:AddItem("Root 2")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(h,nil,"Child 2")
	var_Items:InsertItem(h,nil,"Child 3")
oDCOCX_Exontrol1:EndUpdate()

1233
Displays the root item's index and value/caption using expressions

local var_Column,var_Column1,var_Column2,var_Column3 as IColumn
local var_ConditionalFormat as IConditionalFormat
local var_Items as IItems
local h as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
oDCOCX_Exontrol1:AutoDrag := exAutoDragPositionAny
oDCOCX_Exontrol1:AllowCopyPaste := exAllowPaste | exAllowCut | exAllowCopy
oDCOCX_Exontrol1:SingleSel := false
oDCOCX_Exontrol1:DrawGridLines := exRowLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesSolid
oDCOCX_Exontrol1:GridLineColor := RGB(208,208,208)
oDCOCX_Exontrol1:ConditionalFormats:Add("%CC0 and %CX0",nil):Bold := true
var_ConditionalFormat := oDCOCX_Exontrol1:ConditionalFormats:Add("1",nil)
	var_ConditionalFormat:Bold := true
	var_ConditionalFormat:ApplyTo := 0x2 | 
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("Description")}
	var_Column:[Def,exCellHasCheckBox] := true
	var_Column:PartialCheck := true
var_Column1 := IColumn{oDCOCX_Exontrol1:Columns:Add("Index")}
	var_Column1:FormatColumn := "1 index ``"
	var_Column1:Position := 0
	var_Column1:Width := 16
var_Column2 := IColumn{oDCOCX_Exontrol1:Columns:Add("Root-Index")}
	var_Column2:FormatColumn := "root(1 index ``)"
	var_Column2:Position := 1
	var_Column2:Width := 32
	var_Column2:[Def,exCellBackColor] := 15790320
var_Column3 := IColumn{oDCOCX_Exontrol1:Columns:Add("Root-Value")}
	var_Column3:FormatColumn := "root(%0)"
	var_Column3:Position := 2
	var_Column3:Width := 32
	var_Column3:[Def,exCellBackColor] := 15790320
var_Items := oDCOCX_Exontrol1:Items
	h := var_Items:AddItem("Root 1")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(var_Items:InsertItem(h,nil,"Child 2"),nil,"Sub-Child 2")
	var_Items:[CellState,var_Items:InsertItem(h,nil,"Child 3"),0] := 1
	var_Items:[ExpandItem,h] := true
	h := var_Items:AddItem("Root 2")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(h,nil,"Child 2")
	var_Items:InsertItem(h,nil,"Child 3")
	var_Items:[ExpandItem,h] := true
oDCOCX_Exontrol1:EndUpdate()

1232
Displays the parent item's index and caption/value using expressions

local var_Column,var_Column1,var_Column2,var_Column3 as IColumn
local var_ConditionalFormat as IConditionalFormat
local var_Items as IItems
local h as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
oDCOCX_Exontrol1:AutoDrag := exAutoDragPositionAny
oDCOCX_Exontrol1:AllowCopyPaste := exAllowPaste | exAllowCut | exAllowCopy
oDCOCX_Exontrol1:SingleSel := false
oDCOCX_Exontrol1:DrawGridLines := exRowLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesSolid
oDCOCX_Exontrol1:GridLineColor := RGB(208,208,208)
oDCOCX_Exontrol1:ConditionalFormats:Add("%CC0 and %CX0",nil):Bold := true
var_ConditionalFormat := oDCOCX_Exontrol1:ConditionalFormats:Add("1",nil)
	var_ConditionalFormat:Bold := true
	var_ConditionalFormat:ApplyTo := 0x2 | 
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("Description")}
	var_Column:[Def,exCellHasCheckBox] := true
	var_Column:PartialCheck := true
var_Column1 := IColumn{oDCOCX_Exontrol1:Columns:Add("Index")}
	var_Column1:FormatColumn := "1 index `I`"
	var_Column1:Position := 0
	var_Column1:Width := 16
var_Column2 := IColumn{oDCOCX_Exontrol1:Columns:Add("Parent-Index")}
	var_Column2:FormatColumn := "parent(1 index `I`)"
	var_Column2:Position := 1
	var_Column2:Width := 32
	var_Column2:[Def,exCellBackColor] := 15790320
var_Column3 := IColumn{oDCOCX_Exontrol1:Columns:Add("Parent-Value")}
	var_Column3:FormatColumn := "parent(%0)"
	var_Column3:Position := 2
	var_Column3:Width := 32
	var_Column3:[Def,exCellBackColor] := 15790320
var_Items := oDCOCX_Exontrol1:Items
	h := var_Items:AddItem("Root 1")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(var_Items:InsertItem(h,nil,"Child 2"),nil,"Sub-Child 2")
	var_Items:[CellState,var_Items:InsertItem(h,nil,"Child 3"),0] := 1
	var_Items:[ExpandItem,h] := true
	h := var_Items:AddItem("Root 2")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(h,nil,"Child 2")
	var_Items:InsertItem(h,nil,"Child 3")
	var_Items:[ExpandItem,h] := true
oDCOCX_Exontrol1:EndUpdate()

1231
Copying and Pasting the Selection Programmatically
local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Columns:Add("Tasks")
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
oDCOCX_Exontrol1:SingleSel := false
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Tasks")
	var_Items:[SelectItem,var_Items:AddItem("Task 1")] := true
	var_Items:[SelectItem,var_Items:AddItem("Task 2")] := true
oDCOCX_Exontrol1:IndentSelection(false)
oDCOCX_Exontrol1:CopySelection()
oDCOCX_Exontrol1:Items:UnselectAll()
oDCOCX_Exontrol1:Paste(nil)
oDCOCX_Exontrol1:EndUpdate()

1230
Enable Copy, Cut and Paste Clipboard operations
local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Columns:Add("Tasks")
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
oDCOCX_Exontrol1:AllowCopyPaste := exAllowPaste | exAllowCut | exAllowCopy
oDCOCX_Exontrol1:SingleSel := false
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Tasks")
	var_Items:[SelectItem,var_Items:AddItem("Task 1")] := true
	var_Items:[SelectItem,var_Items:AddItem("Task 2")] := true
oDCOCX_Exontrol1:IndentSelection(false)
oDCOCX_Exontrol1:EndUpdate()

1229
Adjusts the hierarchy of selected items by changing their parent

local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Columns:Add("Tasks")
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
oDCOCX_Exontrol1:SingleSel := false
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Tasks")
	var_Items:[SelectItem,var_Items:AddItem("Task A")] := true
	var_Items:[SelectItem,var_Items:AddItem("Task B")] := true
oDCOCX_Exontrol1:IndentSelection(false)
oDCOCX_Exontrol1:EndUpdate()

1228
Specify the size of the Columns panel

local var_Columns as IColumns

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:HeaderAppearance := Etched
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("City")
	IColumn{var_Columns:Add("Start")}:Visible := false
	IColumn{var_Columns:Add("End")}:Visible := false
oDCOCX_Exontrol1:ColumnsFloatBarRect := ",,96"
oDCOCX_Exontrol1:ColumnsFloatBarVisible := exColumnsFloatBarVisibleAsChild | exColumnsFloatBarVisibleIncludeCheckColumns
oDCOCX_Exontrol1:EndUpdate()

1227
Show a vertical line between pivot and Columns panel (EBN color)

local var_Columns as IColumns

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:VisualAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABRsIQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFICQTIcBhaGIZRiAKCRTDmHwyRCNIwCLD8QxtDqBY4gOZZXhal4cJTgMaBYi+Pw3DZHcbvBRkewzHQAKgnSjoDhEMg1CTVVYTDKdOSzDyEX7sIAACpOIZQVJVEY1VT8cyxIyEZimSypWqiYJ0Ty6cQwTAIgI")
oDCOCX_Exontrol1:[Background,exColumnsFloatBackColor] := 0x1000000
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:HeaderAppearance := Etched
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("City")
	IColumn{var_Columns:Add("Start")}:Visible := false
	IColumn{var_Columns:Add("End")}:Visible := false
oDCOCX_Exontrol1:ColumnsFloatBarVisible := exColumnsFloatBarVisibleAsChild | exColumnsFloatBarVisibleIncludeCheckColumns
oDCOCX_Exontrol1:EndUpdate()

1226
Change the background of the Columns panel (EBN color)

local var_Columns as IColumns

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:VisualAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzTJ0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSNAgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPpTlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJlEkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLBqOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA")
oDCOCX_Exontrol1:[Background,exColumnsFloatBackColor] := 0x1000000
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:HeaderAppearance := Etched
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("City")
	IColumn{var_Columns:Add("Start")}:Visible := false
	IColumn{var_Columns:Add("End")}:Visible := false
oDCOCX_Exontrol1:ColumnsFloatBarVisible := exColumnsFloatBarVisibleAsChild | exColumnsFloatBarVisibleIncludeCheckColumns
oDCOCX_Exontrol1:EndUpdate()

1225
Change the background of the Columns panel (solid color)

local var_Columns as IColumns

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:HeaderAppearance := Etched
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("City")
	IColumn{var_Columns:Add("Start")}:Visible := false
	IColumn{var_Columns:Add("End")}:Visible := false
oDCOCX_Exontrol1:ColumnsFloatBarVisible := exColumnsFloatBarVisibleAsChild | exColumnsFloatBarVisibleIncludeCheckColumns
oDCOCX_Exontrol1:[Background,exColumnsFloatBackColor] := RGB(240,240,240)
oDCOCX_Exontrol1:EndUpdate()

1224
Change the visual appearance of the Columns panel

local var_Columns as IColumns

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:VisualAppearance:Add(1,"gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzTJ0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSNAgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPpTlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJlEkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLBqOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA")
oDCOCX_Exontrol1:[Background,exColumnsFloatAppearance] := 0x1000000
oDCOCX_Exontrol1:[Background,exColumnsFloatCaptionBackColor] := RGB(246,246,246)
oDCOCX_Exontrol1:BackColorHeader := 0x1000000
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:HeaderAppearance := Etched
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("City")
	IColumn{var_Columns:Add("Start")}:Visible := false
	IColumn{var_Columns:Add("End")}:Visible := false
oDCOCX_Exontrol1:[Description,exColumnsFloatBar] := "Show/Hide"
oDCOCX_Exontrol1:ColumnsFloatBarVisible := exColumnsFloatBarVisibleIncludeCheckColumns
oDCOCX_Exontrol1:EndUpdate()

1223
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (ditto mark)

local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exRowLines
IColumn{oDCOCX_Exontrol1:Columns:Add("Country")}:ShowIdem := "<fgcolor gray>〃"
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Spain")
	var_Items:AddItem("Spain")
	var_Items:AddItem("Spain")
	var_Items:AddItem("Spain")
	var_Items:AddItem("Germany")
	var_Items:AddItem("Germany")
	var_Items:AddItem("Germany")
	var_Items:AddItem("Germany")
oDCOCX_Exontrol1:EndUpdate()

1222
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (space)

local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exRowLines
IColumn{oDCOCX_Exontrol1:Columns:Add("Country")}:ShowIdem := " "
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Spain")
	var_Items:AddItem("Spain")
	var_Items:AddItem("Spain")
	var_Items:AddItem("Spain")
	var_Items:AddItem("Germany")
	var_Items:AddItem("Germany")
	var_Items:AddItem("Germany")
	var_Items:AddItem("Germany")
oDCOCX_Exontrol1:EndUpdate()

1221
Displays a glitch funnel for drop-down filter buttons (empty or active)

local var_Appearance as IAppearance
local var_Column as IColumn
local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
var_Appearance := oDCOCX_Exontrol1:VisualAppearance
	var_Appearance:RenderType := -1
	var_Appearance:Add(1,"gBFLBCJwBAEHhEJAAEhABa8IQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFMbxCKQahLEiTIhGUYJHgmK4tRiAUgxVDkBxrECZYqjcBZOiwLQ2TxDM7DNKUCBnIoABhGOaYDh+IQNQjUFKwTRFGRxK4EIRKAyTDLQdRyGSMMbjdQpBCbMiMRqhESKRq2UwYRYCFS1NalaztO6BUAvK67YrWez/YBfF+SfwGeqDYReWAPfgWERnQrGMLxbD8KwZAKTRjkGJ4XhuB41TbQMqufL9ByXHKSSDpGjaXjeO5VVjYNAvS69UzXNq3bhtQAOXCMEwCgI=")
	var_Appearance:Add(2,"CP:1 -2 0 0 0")
oDCOCX_Exontrol1:DrawGridLines := exAllLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesGeometric
oDCOCX_Exontrol1:ShowFocusRect := false
oDCOCX_Exontrol1:[Background,exHeaderFilterBarButton] := 0x2000000
oDCOCX_Exontrol1:[Background,exHeaderFilterBarActive] := 0x2000001
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:BackColorHeader := RGB(255,255,255)
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:HeaderVisible := true
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("1st col")}
	var_Column:DisplayFilterButton := true
	var_Column:DisplayFilterPattern := false
	var_Column:Filter := "Item B"
	var_Column:FilterType := exFilter
oDCOCX_Exontrol1:Columns:Add("2nd col")
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Item A")
	var_Items:AddItem("Item B")
	var_Items:AddItem("Item C")
oDCOCX_Exontrol1:ApplyFilter()
oDCOCX_Exontrol1:EndUpdate()

1220
How can I store any extra data associated with a cell
METHOD OCX_Exontrol1ButtonClick(Item, ColIndex, Key) CLASS MainDialog
	// ButtonClick event - Occurs when user clicks on the cell's button.
	OutputDebugString(String2Psz( AsString(oDCOCX_Exontrol1:Items:[CellData,Item,ColIndex]) ))
RETURN NIL

local var_Editor as IEditor
local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
var_Editor := IColumn{oDCOCX_Exontrol1:Columns:Add("Def")}:Editor
	var_Editor:EditType := ButtonType
	var_Editor:Locked := true
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[CellData,var_Items:AddItem("Cell 1"),0] := "your extra data for cell 1"
	var_Items:[CellData,var_Items:AddItem("Cell 2"),0] := "your extra data for cell 2"
oDCOCX_Exontrol1:EndUpdate()

1219
How can I replace or add an icon at runtime


oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ReplaceIcon("gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+OkYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==",nil)
oDCOCX_Exontrol1:ReplaceIcon("C:\images\favicon.ico",0)
IColumn{oDCOCX_Exontrol1:Columns:Add("Items")}:[Def,exCellValueFormat] := 1
oDCOCX_Exontrol1:Items:AddItem("Item <img>1</img>")
oDCOCX_Exontrol1:EndUpdate()

1218
How can I save the changes, such as column's width, order

METHOD OCX_Exontrol1Click() CLASS MainDialog
	// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
	oDCOCX_Exontrol1:Layout := "Select=" + CHR(34) + "0" + CHR(34) + ";SingleSort=" + CHR(34) + "C0:2" + CHR(34) + ";Columns=1"
RETURN NIL

local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Columns:Add("Column")
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Item 1")
	var_Items:AddItem("Item 2")
	var_Items:AddItem("Item 3")
oDCOCX_Exontrol1:EndUpdate()

1217
How can I add totals to groups without having to go through the AddGroupItem grid function

local var_Column,var_Column1,var_Column2 as IColumn
local var_Columns as IColumns
local var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormat2 as IConditionalFormat
local var_ConditionalFormats as IConditionalFormats
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:FreezeEvents(true)
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_ConditionalFormats := oDCOCX_Exontrol1:ConditionalFormats
	var_ConditionalFormat := var_ConditionalFormats:Add("%CT1",nil)
		var_ConditionalFormat:ForeColor := RGB(128,128,128)
		var_ConditionalFormat:ApplyTo := 0x1 | 
	var_ConditionalFormat1 := var_ConditionalFormats:Add("%CT2",nil)
		var_ConditionalFormat1:ForeColor := RGB(128,128,128)
		var_ConditionalFormat1:ApplyTo := 0x2 | 
	var_ConditionalFormat2 := var_ConditionalFormats:Add("%CT3",nil)
		var_ConditionalFormat2:ForeColor := RGB(128,128,128)
		var_ConditionalFormat2:ApplyTo := 0x3 | 
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("Description")
	var_Column := IColumn{var_Columns:Add("Qty")}
		var_Column:Editor:EditType := SpinType
		var_Column:[Def,exTotalColumn] := "sum(current,rec,%1)"
	var_Column1 := IColumn{var_Columns:Add("Price")}
		var_Column1:[Def,exTotalColumn] := "avg(current,rec,%2)"
		var_Column1:Editor:EditType := SpinType
	var_Column2 := IColumn{var_Columns:Add("Amount")}
		var_Column2:ComputedField := "%1 * %2"
		var_Column2:[Def,exTotalColumn] := "sum(current,rec,%3)"
var_Items := oDCOCX_Exontrol1:Items
	r := var_Items:AddItem("Root")
	g1 := var_Items:InsertItem(r,nil,"Group 1")
	h := var_Items:InsertItem(g1,nil,"Item 1")
	var_Items:[CellValue,h,1] := 1
	var_Items:[CellValue,h,2] := 10
	h := var_Items:InsertItem(g1,nil,"Item 2")
	var_Items:[CellValue,h,1] := 2
	var_Items:[CellValue,h,2] := 11
	g2 := var_Items:InsertItem(r,nil,"Group 2")
	h := var_Items:InsertItem(g2,nil,"Item 1")
	var_Items:[CellValue,h,1] := 3
	var_Items:[CellValue,h,2] := 12
	h := var_Items:InsertItem(g2,nil,"Item 2")
	var_Items:[CellValue,h,1] := 4
	var_Items:[CellValue,h,2] := 13
	var_Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:EndUpdate()
oDCOCX_Exontrol1:FreezeEvents(false)

1216
How can I configure the filters in the text columns to search by content

local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:FilterBarPromptVisible := exFilterBarPromptVisible
oDCOCX_Exontrol1:HeaderAppearance := None2
oDCOCX_Exontrol1:FilterBarPromptType := exFilterPromptContainsAll
oDCOCX_Exontrol1:Columns:Add("Names")
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Mantel")
	var_Items:AddItem("Mechanik")
	var_Items:AddItem("Motor")
	var_Items:AddItem("Murks")
	var_Items:AddItem("Märchen")
	var_Items:AddItem("Möhren")
	var_Items:AddItem("Mühle")
	var_Items:AddItem("Sérigraphie")
oDCOCX_Exontrol1:FilterBarPromptPattern := "a"
oDCOCX_Exontrol1:EndUpdate()

1215
How can I display the control's captions in Spanish

local var_Column as IColumn
local var_Items as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:FilterBarPromptVisible := exFilterBarPromptVisible
oDCOCX_Exontrol1:HeaderAppearance := None2
oDCOCX_Exontrol1:[Description,exFilterBarAll] := "(todo) "
oDCOCX_Exontrol1:[Description,exFilterBarFilterForCaption] := "filtrar por..."
oDCOCX_Exontrol1:FilterBarPrompt := "<i><fgcolor=808080>iniciar filtro...</fgcolor></i>"
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("Names")}
	var_Column:DisplayFilterButton := true
	var_Column:FilterType := exPattern
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Mantel")
	var_Items:AddItem("Mechanik")
	var_Items:AddItem("Motor")
	var_Items:AddItem("Murks")
	var_Items:AddItem("Märchen")
	var_Items:AddItem("Möhren")
	var_Items:AddItem("Mühle")
	var_Items:AddItem("Sérigraphie")
oDCOCX_Exontrol1:EndUpdate()

1214
How can I zoom in the control

local var_Column as IColumn
local var_Items as IItems
local s1,s2 as USUAL

oDCOCX_Exontrol1:BeginUpdate()
s1 := 16
s2 := oDCOCX_Exontrol1:FormatABC("2 * value",s1,nil,nil)
oDCOCX_Exontrol1:ImageSize := s2
oDCOCX_Exontrol1:DefaultItemHeight := s2
oDCOCX_Exontrol1:HeaderHeight := s2
oDCOCX_Exontrol1:SortBarHeight := s2
oDCOCX_Exontrol1:Indent := s2
oDCOCX_Exontrol1:Font:Size := s1
oDCOCX_Exontrol1:FilterBarFont:Size := s1
oDCOCX_Exontrol1:ToolTipFont:Size := s1
oDCOCX_Exontrol1:FilterBarPromptVisible := exFilterBarPromptVisible
oDCOCX_Exontrol1:HeaderAppearance := None2
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("Names")}
	var_Column:DisplayFilterButton := true
	var_Column:FilterType := exPattern
var_Items := oDCOCX_Exontrol1:Items
	var_Items:AddItem("Mantel")
	var_Items:AddItem("Mechanik")
	var_Items:AddItem("Motor")
	var_Items:AddItem("Murks")
	var_Items:AddItem("Märchen")
	var_Items:AddItem("Möhren")
	var_Items:AddItem("Mühle")
	var_Items:AddItem("Sérigraphie")
oDCOCX_Exontrol1:EndUpdate()

1213
Can I set a filter that automatically adds a * before and after the word, so the user can just search for 'cat' and it becomes '*cat*' automatically

local var_Column as IColumn
local var_Items as IItems
local h as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("Items")}
	var_Column:DisplayFilterButton := true
	var_Column:DisplayFilterPattern := true
	var_Column:[Def,exFilterPatternTemplate] := "*<%filter%>*"
	var_Column:FilterType := exPattern
	var_Column:Filter := "1"
var_Items := oDCOCX_Exontrol1:Items
	h := var_Items:AddItem("Root 1")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(h,nil,"Child 2")
	var_Items:[ExpandItem,h] := true
	h := var_Items:AddItem("Root 2")
	var_Items:InsertItem(h,nil,"Child 1")
	var_Items:InsertItem(h,nil,"Child 2")
oDCOCX_Exontrol1:ApplyFilter()
oDCOCX_Exontrol1:EndUpdate()

1212
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this


oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exAllLines
oDCOCX_Exontrol1:GridLineStyle := exGridLinesGeometric
oDCOCX_Exontrol1:ColumnAutoResize := false
oDCOCX_Exontrol1:Columns:Add("Column 1")
oDCOCX_Exontrol1:Columns:Add("Column 2")
oDCOCX_Exontrol1:Columns:Add("Column 3")
oDCOCX_Exontrol1:Columns:Add("Column 4")
oDCOCX_Exontrol1:EndUpdate()

1211
Load data as a tree using a parent-id relationship

local rs as _Recordset

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ColumnAutoResize := false
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:DrawGridLines := exVLines
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
// Generate Source for 'Microsoft ActiveX Data Objects 6.1 Library(msado15.dll)' server from Tools\Automation Server...
rs := _Recordset{"ADODB.Recordset"}
	rs:Open("Select * FROM Employees WHERE 1=0","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb",3,3,0)
oDCOCX_Exontrol1:DataSource := _Recordset{rs}
oDCOCX_Exontrol1:Columns:[Item,0]:Width := 128
rs := _Recordset{"ADODB.Recordset"}
	rs:Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb",3,3,0)
oDCOCX_Exontrol1:PutItems(rs:GetRows(0,nil,nil),";0;17")
oDCOCX_Exontrol1:Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:EndUpdate()

1210
Is there a way to change the contents of the drop down editor based on a value in another column

METHOD OCX_Exontrol1AddItem(Item) CLASS MainDialog
	// AddItem event - Occurs after a new Item has been inserted to Items collection.
	oDCOCX_Exontrol1:Items:[CellEditorVisible,Item,0] := exEditorVisible
	oDCOCX_Exontrol1:Items:[CellEditorVisible,Item,1] := exEditorVisible
RETURN NIL

METHOD OCX_Exontrol1EditOpen() CLASS MainDialog
	// EditOpen event - Occurs when the edit operation starts.
	local var_Editor as IEditor
	local var_Items as IItems
	local c,v as USUAL
	var_Items := oDCOCX_Exontrol1:Items
		v := var_Items:[CellValue,var_Items:FocusItem,0]
		c := var_Items:[CellCaption,var_Items:FocusItem,0]
	var_Editor := oDCOCX_Exontrol1:Columns:[Item,1]:Editor
		var_Editor:ClearItems()
		var_Editor:AddItem(v,AsString(c),nil)
RETURN NIL

local var_Column as IColumn
local var_Editor as IEditor
local var_Items as IItems
local h as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:GridLineStyle := exGridLinesGeometric
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("DropDownList")}
	var_Editor := var_Column:Editor
		var_Editor:EditType := DropDownListType
		var_Editor:AddItem(1,"First",nil)
		var_Editor:AddItem(2,"Second",nil)
		var_Editor:AddItem(3,"Third",nil)
oDCOCX_Exontrol1:DrawGridLines := exAllLines
IColumn{oDCOCX_Exontrol1:Columns:Add("DropDownList-Related")}:Editor:EditType := DropDownListType
var_Items := oDCOCX_Exontrol1:Items
	var_Items:[CellValue,var_Items:AddItem(1),1] := -1
	var_Items:[CellValue,var_Items:AddItem(2),1] := -1
	var_Items:[CellValue,var_Items:AddItem(3),1] := -1
	var_Items:[LockedItemCount,exBottom] := 1
	h := var_Items:[LockedItem,exBottom,0]
	var_Items:[ItemDivider,h] := 0
	var_Items:[ItemDividerLineAlignment,h] := DividerTop
	var_Items:[CellEditorVisible,h,0] := exEditorHidden
	var_Items:[CellSingleLine,h,0] := exCaptionWordWrap
	var_Items:[CellValueFormat,h,0] := exHTML
	var_Items:[CellValue,h,0] := "The drop down editor in the second column is filled during the <b>EditOpen event</b>, and the values are based on the selection on the first column."
oDCOCX_Exontrol1:EndUpdate()

1209
Highlight the editable fields

METHOD OCX_Exontrol1Change(Item, ColIndex, NewValue) CLASS MainDialog
	// Change event - Occurs when the user changes the cell's content.
	oDCOCX_Exontrol1:Refresh()
RETURN NIL

local var_Column,var_Column1,var_Column2 as IColumn
local var_Columns as IColumns
local var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormat2 as IConditionalFormat
local var_ConditionalFormats as IConditionalFormats
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:FreezeEvents(true)
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_ConditionalFormats := oDCOCX_Exontrol1:ConditionalFormats
	var_ConditionalFormat := var_ConditionalFormats:Add("%CE1",nil)
		var_ConditionalFormat:Bold := true
		var_ConditionalFormat:BackColor := RGB(245,245,245)
		var_ConditionalFormat:ApplyTo := 0x1 | 
	var_ConditionalFormat1 := var_ConditionalFormats:Add("%CE2",nil)
		var_ConditionalFormat1:Bold := true
		var_ConditionalFormat1:BackColor := RGB(245,245,245)
		var_ConditionalFormat1:ApplyTo := 0x2 | 
	var_ConditionalFormat2 := var_ConditionalFormats:Add("%CE3",nil)
		var_ConditionalFormat2:Bold := true
		var_ConditionalFormat2:BackColor := RGB(245,245,245)
		var_ConditionalFormat2:ApplyTo := 0x3 | 
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("Description")
	var_Column := IColumn{var_Columns:Add("Qty")}
		var_Column:Editor:EditType := SpinType
		var_Column:[Def,exTotalColumn] := "sum(current,rec,%1)"
	var_Column1 := IColumn{var_Columns:Add("Price")}
		var_Column1:[Def,exTotalColumn] := "avg(current,rec,%2)"
		var_Column1:Editor:EditType := SpinType
	var_Column2 := IColumn{var_Columns:Add("Amount")}
		var_Column2:ComputedField := "%1 * %2"
		var_Column2:[Def,exTotalColumn] := "sum(current,rec,%3)"
var_Items := oDCOCX_Exontrol1:Items
	r := var_Items:AddItem("Root")
	g1 := var_Items:InsertItem(r,nil,"Group 1")
	h := var_Items:InsertItem(g1,nil,"Item 1")
	var_Items:[CellValue,h,1] := 1
	var_Items:[CellValue,h,2] := 10
	h := var_Items:InsertItem(g1,nil,"Item 2")
	var_Items:[CellValue,h,1] := 2
	var_Items:[CellValue,h,2] := 11
	g2 := var_Items:InsertItem(r,nil,"Group 2")
	h := var_Items:InsertItem(g2,nil,"Item 1")
	var_Items:[CellValue,h,1] := 3
	var_Items:[CellValue,h,2] := 12
	h := var_Items:InsertItem(g2,nil,"Item 2")
	var_Items:[CellValue,h,1] := 4
	var_Items:[CellValue,h,2] := 13
	var_Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:EndUpdate()
oDCOCX_Exontrol1:FreezeEvents(false)

1208
Highlight the total fields

METHOD OCX_Exontrol1Change(Item, ColIndex, NewValue) CLASS MainDialog
	// Change event - Occurs when the user changes the cell's content.
	oDCOCX_Exontrol1:Refresh()
RETURN NIL

local var_Column,var_Column1,var_Column2 as IColumn
local var_Columns as IColumns
local var_ConditionalFormat,var_ConditionalFormat1,var_ConditionalFormat2 as IConditionalFormat
local var_ConditionalFormats as IConditionalFormats
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:FreezeEvents(true)
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_ConditionalFormats := oDCOCX_Exontrol1:ConditionalFormats
	var_ConditionalFormat := var_ConditionalFormats:Add("%CT1",nil)
		var_ConditionalFormat:ForeColor := RGB(128,128,128)
		var_ConditionalFormat:ApplyTo := 0x1 | 
	var_ConditionalFormat1 := var_ConditionalFormats:Add("%CT2",nil)
		var_ConditionalFormat1:ForeColor := RGB(128,128,128)
		var_ConditionalFormat1:ApplyTo := 0x2 | 
	var_ConditionalFormat2 := var_ConditionalFormats:Add("%CT3",nil)
		var_ConditionalFormat2:ForeColor := RGB(128,128,128)
		var_ConditionalFormat2:ApplyTo := 0x3 | 
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("Description")
	var_Column := IColumn{var_Columns:Add("Qty")}
		var_Column:Editor:EditType := SpinType
		var_Column:[Def,exTotalColumn] := "sum(current,rec,%1)"
	var_Column1 := IColumn{var_Columns:Add("Price")}
		var_Column1:[Def,exTotalColumn] := "avg(current,rec,%2)"
		var_Column1:Editor:EditType := SpinType
	var_Column2 := IColumn{var_Columns:Add("Amount")}
		var_Column2:ComputedField := "%1 * %2"
		var_Column2:[Def,exTotalColumn] := "sum(current,rec,%3)"
var_Items := oDCOCX_Exontrol1:Items
	r := var_Items:AddItem("Root")
	g1 := var_Items:InsertItem(r,nil,"Group 1")
	h := var_Items:InsertItem(g1,nil,"Item 1")
	var_Items:[CellValue,h,1] := 1
	var_Items:[CellValue,h,2] := 10
	h := var_Items:InsertItem(g1,nil,"Item 2")
	var_Items:[CellValue,h,1] := 2
	var_Items:[CellValue,h,2] := 11
	g2 := var_Items:InsertItem(r,nil,"Group 2")
	h := var_Items:InsertItem(g2,nil,"Item 1")
	var_Items:[CellValue,h,1] := 3
	var_Items:[CellValue,h,2] := 12
	h := var_Items:InsertItem(g2,nil,"Item 2")
	var_Items:[CellValue,h,1] := 4
	var_Items:[CellValue,h,2] := 13
	var_Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:EndUpdate()
oDCOCX_Exontrol1:FreezeEvents(false)

1207
Highlight the leaf items

local var_Columns as IColumns
local var_Items as IItems
local h,hR as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ConditionalFormats:Add("%CC0=0",nil):ForeColor := RGB(128,128,128)
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Columns := oDCOCX_Exontrol1:Columns
	IColumn{var_Columns:Add("Item")}:Width := 16
	var_Columns:Add("Desc")
var_Items := oDCOCX_Exontrol1:Items
	hR := var_Items:AddItem("Root")
	var_Items:[CellValue,hR,1] := "The root directory /"
	var_Items:[ExpandItem,hR] := true
	h := var_Items:InsertItem(hR,nil,"Home")
	var_Items:[CellValue,h,1] := "The home directory with user directories Alice and Bob"
	var_Items:InsertItem(h,nil,"Alice")
	var_Items:InsertItem(h,nil,"Bob")
	var_Items:[ExpandItem,h] := true
	h := var_Items:InsertItem(hR,nil,"Etc")
	var_Items:[CellValue,h,1] := "The etc directory with one configuration file"
	h := var_Items:InsertItem(h,nil,"nginx.conf")
	var_Items:[CellValue,var_Items:InsertItem(hR,nil,"Var"),1] := "The var directory"
oDCOCX_Exontrol1:EndUpdate()

1206
Highlight the parent items

local var_Columns as IColumns
local var_Items as IItems
local h,hR as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ConditionalFormats:Add("%CC0",nil):ForeColor := RGB(255,0,0)
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Columns := oDCOCX_Exontrol1:Columns
	IColumn{var_Columns:Add("Item")}:Width := 16
	var_Columns:Add("Desc")
var_Items := oDCOCX_Exontrol1:Items
	hR := var_Items:AddItem("Root")
	var_Items:[CellValue,hR,1] := "The root directory /"
	var_Items:[ExpandItem,hR] := true
	h := var_Items:InsertItem(hR,nil,"Home")
	var_Items:[CellValue,h,1] := "The home directory with user directories Alice and Bob"
	var_Items:InsertItem(h,nil,"Alice")
	var_Items:InsertItem(h,nil,"Bob")
	var_Items:[ExpandItem,h] := true
	h := var_Items:InsertItem(hR,nil,"Etc")
	var_Items:[CellValue,h,1] := "The etc directory with one configuration file"
	h := var_Items:InsertItem(h,nil,"nginx.conf")
	var_Items:[CellValue,var_Items:InsertItem(hR,nil,"Var"),1] := "The var directory"
oDCOCX_Exontrol1:EndUpdate()

1205
Highlight the item being expanded or collapsed

local var_Columns as IColumns
local var_Items as IItems
local h,hR as USUAL

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:ConditionalFormats:Add("%CX0",nil):Bold := true
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Columns := oDCOCX_Exontrol1:Columns
	IColumn{var_Columns:Add("Item")}:Width := 16
	var_Columns:Add("Desc")
var_Items := oDCOCX_Exontrol1:Items
	hR := var_Items:AddItem("Root")
	var_Items:[CellValue,hR,1] := "The root directory /"
	var_Items:[ExpandItem,hR] := true
	h := var_Items:InsertItem(hR,nil,"Home")
	var_Items:[CellValue,h,1] := "The home directory with user directories Alice and Bob"
	var_Items:InsertItem(h,nil,"Alice")
	var_Items:InsertItem(h,nil,"Bob")
	var_Items:[ExpandItem,h] := true
	h := var_Items:InsertItem(hR,nil,"Etc")
	var_Items:[CellValue,h,1] := "The etc directory with one configuration file"
	h := var_Items:InsertItem(h,nil,"nginx.conf")
	var_Items:[CellValue,var_Items:InsertItem(hR,nil,"Var"),1] := "The var directory"
oDCOCX_Exontrol1:EndUpdate()

1204
I am using exTotalColumn. Is there an option to exclude specific cells to display the total

METHOD OCX_Exontrol1Change(Item, ColIndex, NewValue) CLASS MainDialog
	// Change event - Occurs when the user changes the cell's content.
	oDCOCX_Exontrol1:Refresh()
RETURN NIL

local var_Column,var_Column1,var_Column2 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:FreezeEvents(true)
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("Description")
	var_Column := IColumn{var_Columns:Add("Qty")}
		var_Column:Editor:EditType := SpinType
		var_Column:[Def,exTotalColumn] := "sum(current,rec,%1)"
	var_Column1 := IColumn{var_Columns:Add("Price")}
		var_Column1:[Def,exTotalColumn] := "avg(current,rec,%2)"
		var_Column1:Editor:EditType := SpinType
	var_Column2 := IColumn{var_Columns:Add("Amount")}
		var_Column2:ComputedField := "%1 * %2"
		var_Column2:[Def,exTotalColumn] := "sum(current,rec,%3)"
var_Items := oDCOCX_Exontrol1:Items
	r := var_Items:AddItem("Root")
	g1 := var_Items:InsertItem(r,nil,"Group 1")
	var_Items:[FormatCell,g1,2] := "`<average missing>`"
	var_Items:[CellEditorVisible,g1,2] := exEditorHidden
	var_Items:[CellBold,g1,2] := true
	var_Items:[CellForeColor,g1,2] := RGB(255,0,0)
	h := var_Items:InsertItem(g1,nil,"Item 1")
	var_Items:[CellValue,h,1] := 1
	var_Items:[CellValue,h,2] := 10
	h := var_Items:InsertItem(g1,nil,"Item 2")
	var_Items:[CellValue,h,1] := 2
	var_Items:[CellValue,h,2] := 11
	g2 := var_Items:InsertItem(r,nil,"Group 2")
	h := var_Items:InsertItem(g2,nil,"Item 1")
	var_Items:[CellValue,h,1] := 3
	var_Items:[CellValue,h,2] := 12
	h := var_Items:InsertItem(g2,nil,"Item 2")
	var_Items:[CellValue,h,1] := 4
	var_Items:[CellValue,h,2] := 13
	var_Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:EndUpdate()
oDCOCX_Exontrol1:FreezeEvents(false)

1203
How can I add a total column

METHOD OCX_Exontrol1Change(Item, ColIndex, NewValue) CLASS MainDialog
	// Change event - Occurs when the user changes the cell's content.
	oDCOCX_Exontrol1:Refresh()
RETURN NIL

local var_Column,var_Column1,var_Column2 as IColumn
local var_Columns as IColumns
local var_Items as IItems
local g1,g2,h,r as USUAL

oDCOCX_Exontrol1:FreezeEvents(true)
oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:HeaderHeight := 24
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Columns := oDCOCX_Exontrol1:Columns
	var_Columns:Add("Description")
	var_Column := IColumn{var_Columns:Add("Qty")}
		var_Column:Editor:EditType := SpinType
		var_Column:[Def,exTotalColumn] := "sum(current,rec,%1)"
	var_Column1 := IColumn{var_Columns:Add("Price")}
		var_Column1:[Def,exTotalColumn] := "avg(current,rec,%2)"
		var_Column1:Editor:EditType := SpinType
	var_Column2 := IColumn{var_Columns:Add("Amount")}
		var_Column2:ComputedField := "%1 * %2"
		var_Column2:[Def,exTotalColumn] := "sum(current,rec,%3)"
var_Items := oDCOCX_Exontrol1:Items
	r := var_Items:AddItem("Root")
	g1 := var_Items:InsertItem(r,nil,"Group 1")
	h := var_Items:InsertItem(g1,nil,"Item 1")
	var_Items:[CellValue,h,1] := 1
	var_Items:[CellValue,h,2] := 10
	h := var_Items:InsertItem(g1,nil,"Item 2")
	var_Items:[CellValue,h,1] := 2
	var_Items:[CellValue,h,2] := 11
	g2 := var_Items:InsertItem(r,nil,"Group 2")
	h := var_Items:InsertItem(g2,nil,"Item 1")
	var_Items:[CellValue,h,1] := 3
	var_Items:[CellValue,h,2] := 12
	h := var_Items:InsertItem(g2,nil,"Item 2")
	var_Items:[CellValue,h,1] := 4
	var_Items:[CellValue,h,2] := 13
	var_Items:[ExpandItem,0] := true
oDCOCX_Exontrol1:EndUpdate()
oDCOCX_Exontrol1:FreezeEvents(false)

1202
Is it possible to disable sizing(size) the column
local var_Column as IColumn

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:DrawGridLines := exVLines
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("32px")}
	var_Column:Width := 32
	var_Column:AllowSizing := false
oDCOCX_Exontrol1:Columns:Add("Rest")
oDCOCX_Exontrol1:ColumnAutoResize := true
oDCOCX_Exontrol1:EndUpdate()

1201
How can I add two columns of 25% and the third of 50%


oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:HeaderAppearance := Etched
oDCOCX_Exontrol1:DrawGridLines := exVLines
IColumn{oDCOCX_Exontrol1:Columns:Add("25%")}:Width := 25
IColumn{oDCOCX_Exontrol1:Columns:Add("25%")}:Width := 25
IColumn{oDCOCX_Exontrol1:Columns:Add("50%")}:Width := 50
oDCOCX_Exontrol1:ColumnAutoResize := true
oDCOCX_Exontrol1:EndUpdate()