2381
|
I am using EBN for my milestone bars, but they appear very small on high DPI resolutions

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
EXG2ANTTLib::IAppearancePtr var_Appearance = spG2antt1->GetVisualAppearance();
var_Appearance->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABM8GACAADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6EX7kIAJCb+IIDATCIyjAIoWhxFKGZYlYAoJDENo0QRCcZTR") +
"I8NQGCyEQwnOQZDiWFofR6CEIlAZJRjoOo5DJGGL0WAaAxCEzVMYjNBIUQTICBaCgOCLCgkYJWT5aMi2XZlWzdNhTVIfC4XYq+dp3UZJF4XXZtaTpPjALxwG5rerJGTk" +
"P7hb74LauBzdAbHLaxTCsKwzEZtZBjWR4RimOY9RLEMqxbKcDxvIKnZzpehYHomCTlOjUdhzfYtKy+cp7azbejbJrmZ5DWzGbr3HC+Az3KK+cbyOo6XgVYaLZDjOh5Dh" +
"kgwAY7mgdg5F2Hg2DIB5Xm0eA6F4HJ/HeLZPnGeg8F2TgHHuT5qm2fA8B4W5vjuY5vmSdQkle7p/m+dx+FwN5RHMYYfGeRZ5GYH42joAw+B+ZxmAcWwgBWYZ9gOHAGEY" +
"ERdmEN5KBUaJghYXZEgKXI4G4Hh1GINIVl+A5akgdglgmIgoi0a4FmIOIiCMQJOjQRQJEAQCAgA==");
var_Appearance->Add(2,"CP:1 0 -1D 11D 1D");
var_Appearance->Add(3,_bstr_t("gBFLBCJwBAEHhEJAAEhABIICg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6EX7kIAJCb+IIDATCIyjAIoWhxFKGZYlYAoJDENo0QRCcZTR") +
"I8NQGCyEQ4nOQZDiWFofR6CEIlAZJRjoOo5DJGGL1GAeAxCEzVMYjNBIUQTICBaCgOCAYhYcJWT5aMi2XZlWzaaBnWauC4rRrObp3XhbMB3TbkSznP66bhvXA7MrvBJ+" +
"YDdGJLMwTC4YYrAGawe6MGxPEaRY7jeQ5Ha+KzxS7EWDXBTdCS1DBeD7pY76LouN45Ty7dAxLTNDyrKq0KzrWR7A7+ZTnXBFTDJXgSNThGx+cYfXCcJrGdYpEi2N6uHg" +
"HAuCZJmScp4FyXBNnYB5SGcdSTiaGoMm+ZA7jsFpph8Shnk+Z5shMex4iuUADj+YZiHuPI+k8Z5km+cB8hcZgVlAWpfHeDZlHmX43ioCR6mCJ4pn0fANFMEI3gQSx3lE" +
"bYBESV52AuBpgleNgHHkYQIEoFB9CESBRnCBohlgcgMgqYooD2VRwiIWBJAODBLHiHgfHoIoYmYLIOh+SJeCGBJjCAAY2GoHR3B4KoRmOSQmCuERHmkDA/ECZJpDISIO" +
"mUSROAuEwkmiTgigSHwCkiIgjiWYg6FaEogjMUIyCaZhiG4P4FCWKQCDWC5ElmBhhhiZRYmoaYaGaOQFG2DQfAmXhnDsTAyiqhwoBoDoGiAZ5piocINCEZYyHyHAohoH" +
"oEiSaQqCYeYFGAJZ2g8eIEloJJ3DKSxqHyNoliiORuhgXhbkmbomh8Zh5iaIooioShygwXwqhWcobHWHB3GKJYbhmRIaAMYZrHcChMiWa5alWE4NCSapOj0WpsGsAomj" +
"IahrC6GY0heAxYlwNwtGMcpUHObY1l6WY2G2VY5AMOpRBQJQBICA=");
var_Appearance->Add(4,"CP:3 0 -1D 11D 1D");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
EXG2ANTTLib::IBarPtr var_Bar = var_Chart->GetBars()->Copy(L"Milestone",L"Milestonee3");
var_Bar->PutColor(0x2000000);
var_Bar->PutHeight(22);
EXG2ANTTLib::IBarPtr var_Bar1 = var_Chart->GetBars()->Copy(L"Milestone",L"Milestonee4");
var_Bar1->PutColor(0x4000000);
var_Bar1->PutHeight(22);
spG2antt1->PutDefaultItemHeight(28);
spG2antt1->GetColumns()->Add(L"Tasks");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Milestone"),"Milestone",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,2,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("milestonee3.ebn"),"Milestonee3",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,2,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("milestonee4.ebn"),"Milestonee4",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,2,0,00,00).operator DATE(),vtMissing,vtMissing);
spG2antt1->EndUpdate();
|
2380
|
How can I vertically scroll the control
// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemG2antt1(long Item)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(Item,"Task",var_Items->GetCellValue(Item,long(2)),var_Items->GetCellValue(Item,long(4)),vtMissing,vtMissing);
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutColumnAutoResize(VARIANT_FALSE);
/*
Includes the definition for CreateObject function like follows:
#include <comdef.h>
IUnknownPtr CreateObject( BSTR Object )
{
IUnknownPtr spResult;
spResult.CreateInstance( Object );
return spResult;
};
*/
/*
Copy and paste the following directives to your header file as
it defines the namespace 'DAO' for the library: 'Microsoft Office 15.0 Access database engine Object Library'
#import <ACEDAO.DLL>
*/
spG2antt1->PutDataSource(((DAO::Recordset2Ptr)(::CreateObject(L"DAO.DBEngine.120")->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",vtMissing,vtMissing,vtMissing)->OpenRecordset(L"Orders",vtMissing,vtMissing,vtMissing)->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",vtMissing,vtMissing,vtMissing)->OpenRecordset(L"Orders",vtMissing,vtMissing,vtMissing))));
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(1994,8,4,0,00,00).operator DATE());
var_Chart->PutLevelCount(2);
var_Chart->PutPaneWidth(VARIANT_FALSE,256);
spG2antt1->GetItems()->PutAllowCellValueToItemBar(VARIANT_TRUE);
spG2antt1->GetColumns()->GetItem(long(2))->PutDef(EXG2ANTTLib::exCellValueToItemBarProperty,long(1));
spG2antt1->GetColumns()->GetItem(long(4))->PutDef(EXG2ANTTLib::exCellValueToItemBarProperty,long(2));
spG2antt1->PutLayout(L"Collapse=\"\";VScroll=10");
spG2antt1->EndUpdate();
|
2379
|
Export the items as a two-dimensional array

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->PutItems(spG2antt1->Export("array","all"),vtMissing);
spG2antt1->EndUpdate();
|
2378
|
Export only expanded items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(expanded)")) );
|
2377
|
Export only selectable, sortable leaf items that are neither locked nor dividers

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(leaf,sortable,selectable,!divider,!locked)")) );
|
2376
|
Export only non-divider items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(!divider)")) );
|
2375
|
Export only selectable items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(selectable)")) );
|
2374
|
Export only sortable, but not locked items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(sortable,!locked)")) );
|
2373
|
Export only checked items on specified column

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(checked[0])")) );
|
2372
|
Export only filtered, not locked or divider items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(visible,!locked,!divider)")) );
|
2371
|
Export only selected items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(selected)")) );
|
2370
|
Export only locked items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","only(locked)")) );
|
2369
|
Export the leaf items of the control, excluding parent or grouped items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","leaf")) );
|
2368
|
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)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","chk")) );
|
2367
|
Export the selected-items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","sel")) );
|
2366
|
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

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","vis")) );
|
2365
|
Export all items, including the hidden or collapsed items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exGroupLinesOutside);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Desc")));
var_Column->PutWidth(32);
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
var_Column1->PutFormatColumn(L"currency(value)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutLockedItemCount(EXG2ANTTLib::exTop,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exTop,0);
var_Items->PutCellValue(h,long(0),"All");
var_Items->PutCellValue(h,long(1),"sum(all,rec,%1)");
var_Items->PutCellValueFormat(h,long(1),EXG2ANTTLib::exTotalField);
long r = var_Items->AddItem("Root 1");
long g1 = var_Items->InsertItem(r,vtMissing,"Group A");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 1"),long(1),long(1));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 2"),long(1),long(2));
var_Items->PutCellState(var_Items->GetItemByIndex(3),long(0),1);
long g2 = var_Items->InsertItem(r,vtMissing,"Group B");
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 3"),long(1),long(3));
var_Items->PutCellValue(var_Items->InsertItem(g2,vtMissing,"Item 4"),long(1),long(4));
var_Items->PutExpandItem(g1,VARIANT_TRUE);
var_Items->PutExpandItem(r,VARIANT_TRUE);
h = var_Items->AddItem("divider");
var_Items->PutItemDivider(h,0);
var_Items->PutSelectableItem(h,VARIANT_FALSE);
var_Items->PutSortableItem(h,VARIANT_FALSE);
var_Items->PutItemHeight(h,1);
r = var_Items->AddItem("Root 2");
g1 = var_Items->InsertItem(r,vtMissing,"Group C");
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 5"),long(1),long(5));
var_Items->PutCellValue(var_Items->InsertItem(g1,vtMissing,"Item 6"),long(1),long(6));
var_Items->PutSelectItem(var_Items->GetItemByIndex(2),VARIANT_TRUE);
spG2antt1->EndUpdate();
OutputDebugStringW( _bstr_t(spG2antt1->Export("","all")) );
|
2364
|
Bolds only the expanded items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
spG2antt1->GetConditionalFormats()->Add(L"%CX0",vtMissing)->PutBold(VARIANT_TRUE);
spG2antt1->GetColumns()->Add(L"Description");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Root 1");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(var_Items->InsertItem(h,vtMissing,"Child 2"),vtMissing,"Sub-Child 2");
var_Items->PutCellState(var_Items->InsertItem(h,vtMissing,"Child 3"),long(0),1);
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->AddItem("Root 2");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(h,vtMissing,"Child 2");
var_Items->InsertItem(h,vtMissing,"Child 3");
spG2antt1->EndUpdate();
|
2363
|
Displays the root item's index and value/caption using expressions

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
spG2antt1->PutAutoDrag(EXG2ANTTLib::exAutoDragPositionAny);
spG2antt1->PutAllowCopyPaste(EXG2ANTTLib::AllowCopyPasteEnum(EXG2ANTTLib::exAllowPaste | EXG2ANTTLib::exAllowCut | EXG2ANTTLib::exAllowCopy));
spG2antt1->PutSingleSel(VARIANT_FALSE);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exRowLines);
spG2antt1->PutGridLineStyle(EXG2ANTTLib::exGridLinesSolid);
spG2antt1->PutGridLineColor(RGB(208,208,208));
spG2antt1->GetConditionalFormats()->Add(L"%CC0 and %CX0",vtMissing)->PutBold(VARIANT_TRUE);
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat = spG2antt1->GetConditionalFormats()->Add(L"1",vtMissing);
var_ConditionalFormat->PutBold(VARIANT_TRUE);
var_ConditionalFormat->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x2));
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Description")));
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
var_Column->PutPartialCheck(VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Index")));
var_Column1->PutFormatColumn(L"1 index ``");
var_Column1->PutPosition(0);
var_Column1->PutWidth(16);
EXG2ANTTLib::IColumnPtr var_Column2 = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Root-Index")));
var_Column2->PutFormatColumn(L"root(1 index ``)");
var_Column2->PutPosition(1);
var_Column2->PutWidth(32);
var_Column2->PutDef(EXG2ANTTLib::exCellBackColor,long(15790320));
EXG2ANTTLib::IColumnPtr var_Column3 = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Root-Value")));
var_Column3->PutFormatColumn(L"root(%0)");
var_Column3->PutPosition(2);
var_Column3->PutWidth(32);
var_Column3->PutDef(EXG2ANTTLib::exCellBackColor,long(15790320));
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Root 1");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(var_Items->InsertItem(h,vtMissing,"Child 2"),vtMissing,"Sub-Child 2");
var_Items->PutCellState(var_Items->InsertItem(h,vtMissing,"Child 3"),long(0),1);
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->AddItem("Root 2");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(h,vtMissing,"Child 2");
var_Items->InsertItem(h,vtMissing,"Child 3");
var_Items->PutExpandItem(h,VARIANT_TRUE);
spG2antt1->EndUpdate();
|
2362
|
Displays the parent item's index and caption/value using expressions

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
spG2antt1->PutAutoDrag(EXG2ANTTLib::exAutoDragPositionAny);
spG2antt1->PutAllowCopyPaste(EXG2ANTTLib::AllowCopyPasteEnum(EXG2ANTTLib::exAllowPaste | EXG2ANTTLib::exAllowCut | EXG2ANTTLib::exAllowCopy));
spG2antt1->PutSingleSel(VARIANT_FALSE);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exRowLines);
spG2antt1->PutGridLineStyle(EXG2ANTTLib::exGridLinesSolid);
spG2antt1->PutGridLineColor(RGB(208,208,208));
spG2antt1->GetConditionalFormats()->Add(L"%CC0 and %CX0",vtMissing)->PutBold(VARIANT_TRUE);
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat = spG2antt1->GetConditionalFormats()->Add(L"1",vtMissing);
var_ConditionalFormat->PutBold(VARIANT_TRUE);
var_ConditionalFormat->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x2));
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Description")));
var_Column->PutDef(EXG2ANTTLib::exCellHasCheckBox,VARIANT_TRUE);
var_Column->PutPartialCheck(VARIANT_TRUE);
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Index")));
var_Column1->PutFormatColumn(L"1 index `I`");
var_Column1->PutPosition(0);
var_Column1->PutWidth(16);
EXG2ANTTLib::IColumnPtr var_Column2 = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Parent-Index")));
var_Column2->PutFormatColumn(L"parent(1 index `I`)");
var_Column2->PutPosition(1);
var_Column2->PutWidth(32);
var_Column2->PutDef(EXG2ANTTLib::exCellBackColor,long(15790320));
EXG2ANTTLib::IColumnPtr var_Column3 = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Parent-Value")));
var_Column3->PutFormatColumn(L"parent(%0)");
var_Column3->PutPosition(2);
var_Column3->PutWidth(32);
var_Column3->PutDef(EXG2ANTTLib::exCellBackColor,long(15790320));
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Root 1");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(var_Items->InsertItem(h,vtMissing,"Child 2"),vtMissing,"Sub-Child 2");
var_Items->PutCellState(var_Items->InsertItem(h,vtMissing,"Child 3"),long(0),1);
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->AddItem("Root 2");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(h,vtMissing,"Child 2");
var_Items->InsertItem(h,vtMissing,"Child 3");
var_Items->PutExpandItem(h,VARIANT_TRUE);
spG2antt1->EndUpdate();
|
2361
|
Copying and Pasting the Selection Programmatically
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Tasks");
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2025,1,1,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutSelBackColor(spG2antt1->GetSelBackColor());
var_Chart->GetBars()->GetItem("Task")->PutOverlaidType(EXG2ANTTLib::exOverlaidBarsCascade);
spG2antt1->PutSingleSel(VARIANT_FALSE);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("Tasks");
long h = var_Items->AddItem("Task 1");
var_Items->AddBar(h,"Task",COleDateTime(2025,1,2,0,00,00).operator DATE(),COleDateTime(2025,1,8,0,00,00).operator DATE(),"T1",vtMissing);
var_Items->AddBar(h,"Task",COleDateTime(2025,1,7,0,00,00).operator DATE(),COleDateTime(2025,1,13,0,00,00).operator DATE(),"T2",vtMissing);
var_Items->PutSelectItem(h,VARIANT_TRUE);
h = var_Items->AddItem("Task 2");
var_Items->AddBar(h,"Task",COleDateTime(2025,1,2,0,00,00).operator DATE(),COleDateTime(2025,1,8,0,00,00).operator DATE(),"T1",vtMissing);
var_Items->AddBar(h,"Task",COleDateTime(2025,1,7,0,00,00).operator DATE(),COleDateTime(2025,1,13,0,00,00).operator DATE(),"T2",vtMissing);
var_Items->PutSelectItem(h,VARIANT_TRUE);
spG2antt1->IndentSelection(VARIANT_FALSE);
spG2antt1->CopySelection();
spG2antt1->GetItems()->UnselectAll();
spG2antt1->Paste(vtMissing);
spG2antt1->EndUpdate();
|
2360
|
Enable Copy, Cut and Paste Clipboard operations
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Tasks");
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
spG2antt1->PutAllowCopyPaste(EXG2ANTTLib::AllowCopyPasteEnum(EXG2ANTTLib::exAllowPaste | EXG2ANTTLib::exAllowCut | EXG2ANTTLib::exAllowCopy));
spG2antt1->GetConditionalFormats()->Add(L"%CC0 and %CX0",vtMissing)->PutBold(VARIANT_TRUE);
spG2antt1->GetConditionalFormats()->Add(L"1",vtMissing);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2025,1,1,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutSelBackColor(spG2antt1->GetSelBackColor());
var_Chart->GetBars()->GetItem("Task")->PutOverlaidType(EXG2ANTTLib::exOverlaidBarsCascade);
spG2antt1->PutSingleSel(VARIANT_FALSE);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("Tasks");
long h = var_Items->AddItem("Task 1");
var_Items->AddBar(h,"Task",COleDateTime(2025,1,2,0,00,00).operator DATE(),COleDateTime(2025,1,8,0,00,00).operator DATE(),"T1",vtMissing);
var_Items->AddBar(h,"Task",COleDateTime(2025,1,7,0,00,00).operator DATE(),COleDateTime(2025,1,13,0,00,00).operator DATE(),"T2",vtMissing);
var_Items->PutSelectItem(h,VARIANT_TRUE);
h = var_Items->AddItem("Task 2");
var_Items->AddBar(h,"Task",COleDateTime(2025,1,2,0,00,00).operator DATE(),COleDateTime(2025,1,8,0,00,00).operator DATE(),"T1",vtMissing);
var_Items->AddBar(h,"Task",COleDateTime(2025,1,7,0,00,00).operator DATE(),COleDateTime(2025,1,13,0,00,00).operator DATE(),"T2",vtMissing);
var_Items->PutSelectItem(h,VARIANT_TRUE);
spG2antt1->IndentSelection(VARIANT_FALSE);
spG2antt1->EndUpdate();
|
2359
|
Adjusts the hierarchy of selected items by changing their parent

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Tasks");
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
spG2antt1->PutSingleSel(VARIANT_FALSE);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("Tasks");
var_Items->PutSelectItem(var_Items->AddItem("Task A"),VARIANT_TRUE);
var_Items->PutSelectItem(var_Items->AddItem("Task B"),VARIANT_TRUE);
spG2antt1->IndentSelection(VARIANT_FALSE);
spG2antt1->EndUpdate();
|
2358
|
How can I change the visual appearance for selected bars (EBN, frame, dash, enlarged)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
EXG2ANTTLib::IAppearancePtr var_Appearance = spG2antt1->GetVisualAppearance();
var_Appearance->Add(2,_bstr_t("gBFLBCJwBAEHhEJAAEhABMcGACAADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWCYRDEMw4AJCI4DRCIZBuGyPRhASQZUhmHIDTbIEBxf") +
"IMIxLE6YaBjObIaoSGYfUhCMowG79GgBJp/YqncaKCgSHwyUrNEbgRDQEw9L6BaxqCj6OhWLQ1CTZdowSKoYTXBq3IhkGiYZpyO5gABYVLWHY0ExNFCVJYjOT5RiONaH" +
"ABOM43JKkfT9IC/KpxGhoWxSdo6ABXVz2DBNRz5EjHaoyHQ5Ypmc4JZbleZZTbFdSjT6BbS2KzLRzSb5aXhqMI6XD+XTJKK+YIkeqZLjGJaEYblGKZPruOz3MrQOCwCA" +
"fBafZHBsaYojqmovhkSpnGuegbBiXYjGccJblsdpxFqTgyjeW5Nl4fAbnyLpmBIUA0hiToHFOmBjFcRgECENQHEYQxkCQKBumCBZcBgRYPkYIQaGwERoEEFRsBUCBWBa" +
"BZhCafgYgaYYYHIHh4iGeIGBWBJiCgYgPgkYR4h4KIIl8JIGBkUwUmOLRyECUAQIC");
var_Appearance->Add(1,"CP:2 -2 -2 2 2");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2002,1,1,0,00,00).operator DATE());
var_Chart->PutSelBarColor(0x1000000);
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem(vtMissing);
long h = var_Items->AddItem("Task 1");
var_Items->AddBar(h,"Task",COleDateTime(2002,1,2,0,00,00).operator DATE(),COleDateTime(2002,1,4,0,00,00).operator DATE(),"A",vtMissing);
var_Items->AddBar(h,"Task",COleDateTime(2002,1,6,0,00,00).operator DATE(),COleDateTime(2002,1,10,0,00,00).operator DATE(),"B",vtMissing);
var_Items->AddBar(h,"Task",COleDateTime(2002,1,11,0,00,00).operator DATE(),COleDateTime(2002,1,14,0,00,00).operator DATE(),"C",vtMissing);
var_Items->PutItemBar(h,"A",EXG2ANTTLib::exBarSelected,VARIANT_TRUE);
var_Items->PutItemBar(h,"B",EXG2ANTTLib::exBarSelected,VARIANT_TRUE);
var_Items->AddItem(vtMissing);
spG2antt1->EndUpdate();
|
2357
|
Specify the size of the Columns panel

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"City");
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Start")))->PutVisible(VARIANT_FALSE);
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"End")))->PutVisible(VARIANT_FALSE);
spG2antt1->PutColumnsFloatBarRect(L",,96");
spG2antt1->PutColumnsFloatBarVisible(EXG2ANTTLib::ColumnsFloatBarVisibleEnum(EXG2ANTTLib::exColumnsFloatBarVisibleAsChild | EXG2ANTTLib::exColumnsFloatBarVisibleIncludeCheckColumns));
spG2antt1->EndUpdate();
|
2356
|
Show a vertical line between pivot and Columns panel (EBN color)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetVisualAppearance()->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABRsIQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFICQTIcBhaGIZRiAKCRTDmHwyRCNIwCLD8QxtDqBY4gOZZX") +
"hal4cJTgMaBYi+Pw3DZHcbvBRkewzHQAKgnSjoDhEMg1CTVVYTDKdOSzDyEX7sIAACpOIZQVJVEY1VT8cyxIyEZimSypWqiYJ0Ty6cQwTAIgI");
spG2antt1->PutBackground(EXG2ANTTLib::exColumnsFloatBackColor,0x1000000);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"City");
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Start")))->PutVisible(VARIANT_FALSE);
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"End")))->PutVisible(VARIANT_FALSE);
spG2antt1->PutColumnsFloatBarVisible(EXG2ANTTLib::ColumnsFloatBarVisibleEnum(EXG2ANTTLib::exColumnsFloatBarVisibleAsChild | EXG2ANTTLib::exColumnsFloatBarVisibleIncludeCheckColumns));
spG2antt1->EndUpdate();
|
2355
|
Change the background of the Columns panel (EBN color)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetVisualAppearance()->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzT") +
"J0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSN" +
"AgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPp" +
"TlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+" +
"BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJl" +
"EkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd" +
"4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLB" +
"qOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA");
spG2antt1->PutBackground(EXG2ANTTLib::exColumnsFloatBackColor,0x1000000);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"City");
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Start")))->PutVisible(VARIANT_FALSE);
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"End")))->PutVisible(VARIANT_FALSE);
spG2antt1->PutColumnsFloatBarVisible(EXG2ANTTLib::ColumnsFloatBarVisibleEnum(EXG2ANTTLib::exColumnsFloatBarVisibleAsChild | EXG2ANTTLib::exColumnsFloatBarVisibleIncludeCheckColumns));
spG2antt1->EndUpdate();
|
2354
|
Change the background of the Columns panel (solid color)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"City");
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Start")))->PutVisible(VARIANT_FALSE);
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"End")))->PutVisible(VARIANT_FALSE);
spG2antt1->PutColumnsFloatBarVisible(EXG2ANTTLib::ColumnsFloatBarVisibleEnum(EXG2ANTTLib::exColumnsFloatBarVisibleAsChild | EXG2ANTTLib::exColumnsFloatBarVisibleIncludeCheckColumns));
spG2antt1->PutBackground(EXG2ANTTLib::exColumnsFloatBackColor,RGB(240,240,240));
spG2antt1->EndUpdate();
|
2353
|
Change the visual appearance of the Columns panel

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetVisualAppearance()->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABNoCg6AADACAxRDAMgBQKAAzQFAYahqGKGAAGOD4JhUAIIRZGMIjFDcEwxC6NIpAWLoJDCH4mSTHYxgJIMWwzDiBZgkCA4fiGEYnThCIxzT") +
"J0aw1CKbYRAKCUKoUAJFsSnQAJIgOO4lULPMIhDDQKQTIKBahoehqIhaEQyDSJNb2DCIahhMSEbKtCooDhGFZUWzLVxTJJNawHJqJJDuOTpSjKH4+RjWFKUXR9b4BJSN" +
"AgqeCQTiSWZEVxRUS0XbGCyZLSQY7uAAMKgOVoDYzdGLwHTtOwrMa1QAsDSbKqWZ5uRpHcQ5aAGN5DPbMbqwOaqLznAaLQLtG4RTikVRPTDYaj437+OaHGyNbI6HTNPp" +
"TlWDJWjYXI8l8C4fg6GYAAEEISgGJJGHQOocgyIwYnqKhYAAIQTH2MYRjQJBRAmZptmEAYIjGU5dk8UgOFgBJUgCTQIBYBoBmCCAmAqApghgDJUDmYQFCCZoEk2OBUm+" +
"BZPCgZgagaYZIHYHoHmGWBcm8NwiEiFJVgmYgji4Kg6GKSI2C6C5jAiRgygwIojiycINkyeJmAYPJjkiTg+g+ZAIkCdIQkyWQWDuDxkBkJhKguZAzlIRQzGQc5ODWFJl" +
"EkVhWhWZYJFYTYTmUE4yF6F5mAmBhihiZhJhYX4WmQaAUnWGpOlmNhuhuZwJkYcocmcSY4naHZlkmKhrDuJ5JnYfofmgCgGgKIJnlmXJ2h4TQKBosRokoNoOiOaQKDSd" +
"4kmiChMncPBpgoZoaiaaZKHaHonmmE5iiKJRpDicomimaoKiaKoqmqSoeiIPgogqPotiyaxKlYPA+GuCqbBMa5KnaPovmwCwGj6LgP24RIhiyCwmkqMpsksNpKD6LQLB" +
"qOIzi0SxWlaHZtAOahPssM5Wi+IYtlsXpijKbZ5lyTo5mAE4UlqOpjHOQpEjubyanKPJvEuNgVj2TY1CCao+k2G52AyP5wAwBp9DYZZ1CCaxsAABAEICA");
spG2antt1->PutBackground(EXG2ANTTLib::exColumnsFloatAppearance,0x1000000);
spG2antt1->PutBackground(EXG2ANTTLib::exColumnsFloatCaptionBackColor,RGB(246,246,246));
spG2antt1->PutBackColorHeader(0x1000000);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"City");
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Start")))->PutVisible(VARIANT_FALSE);
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"End")))->PutVisible(VARIANT_FALSE);
spG2antt1->PutDescription(EXG2ANTTLib::exColumnsFloatBar,L"Show/Hide");
spG2antt1->PutColumnsFloatBarVisible(EXG2ANTTLib::exColumnsFloatBarVisibleIncludeCheckColumns);
spG2antt1->EndUpdate();
|
2352
|
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (ditto mark)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exRowLines);
((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Country")))->PutShowIdem(L"<fgcolor gray>〃");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
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");
spG2antt1->EndUpdate();
|
2351
|
Defines the symbol used to indicate repeated captions, providing a clear visual cue for identical entries (space)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exRowLines);
((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Country")))->PutShowIdem(L" ");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
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");
spG2antt1->EndUpdate();
|
2350
|
Displays a glitch funnel for drop-down filter buttons (empty or active)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
EXG2ANTTLib::IAppearancePtr var_Appearance = spG2antt1->GetVisualAppearance();
var_Appearance->PutRenderType(-1);
var_Appearance->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABa8IQAAYAQGKIYBkAKBQAGaAoDDUNQxQwAAxwfBMKgBBCLIxhEYobgmGIXRpFMbxCKQahLEiTIhGUYJHgmK4tRiAUgxVDkBxrECZYqjcBZO") +
"iwLQ2TxDM7DNKUCBnIoABhGOaYDh+IQNQjUFKwTRFGRxK4EIRKAyTDLQdRyGSMMbjdQpBCbMiMRqhESKRq2UwYRYCFS1NalaztO6BUAvK67YrWez/YBfF+SfwGeqDYRe" +
"WAPfgWERnQrGMLxbD8KwZAKTRjkGJ4XhuB41TbQMqufL9ByXHKSSDpGjaXjeO5VVjYNAvS69UzXNq3bhtQAOXCMEwCgI=");
var_Appearance->Add(2,"CP:1 -2 0 0 0");
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exAllLines);
spG2antt1->PutGridLineStyle(EXG2ANTTLib::exGridLinesGeometric);
spG2antt1->PutShowFocusRect(VARIANT_FALSE);
spG2antt1->PutBackground(EXG2ANTTLib::exHeaderFilterBarButton,0x2000000);
spG2antt1->PutBackground(EXG2ANTTLib::exHeaderFilterBarActive,0x2000001);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutBackColorHeader(RGB(255,255,255));
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutHeaderVisible(EXG2ANTTLib::exHeaderVisibleExtendLevels);
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"1st col")));
var_Column->PutDisplayFilterButton(VARIANT_TRUE);
var_Column->PutDisplayFilterPattern(VARIANT_FALSE);
var_Column->PutFilter(L"Item B");
var_Column->PutFilterType(EXG2ANTTLib::exFilter);
spG2antt1->GetColumns()->Add(L"2nd col");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("Item A");
var_Items->AddItem("Item B");
var_Items->AddItem("Item C");
spG2antt1->ApplyFilter();
spG2antt1->EndUpdate();
|
2349
|
Stack vs Cascade

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutScrollBySingleLine(VARIANT_TRUE);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Flat);
spG2antt1->GetColumns()->Add(L"Type");
spG2antt1->PutBackColorAlternate(RGB(240,240,240));
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exCreateBarAuto);
var_Chart->PutAllowLinkBars(VARIANT_FALSE);
var_Chart->PutResizeUnitScale(EXG2ANTTLib::exHour);
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
EXG2ANTTLib::IBarPtr var_Bar = var_Chart->GetBars()->Copy(L"Task",L"T1");
var_Bar->PutOverlaidType(EXG2ANTTLib::exOverlaidBarsCascade);
var_Bar->PutDef(EXG2ANTTLib::exBarCaption,"<%=%9%>");
EXG2ANTTLib::IBarPtr var_Bar1 = var_Chart->GetBars()->Copy(L"Task",L"T2");
var_Bar1->PutOverlaidType(EXG2ANTTLib::OverlaidBarsTypeEnum(EXG2ANTTLib::exOverlaidBarsStackAutoArrange | EXG2ANTTLib::exOverlaidBarsStack));
var_Bar1->PutDef(EXG2ANTTLib::exBarCaption,"<%=%9%>");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Cascade");
var_Items->AddBar(h,"T1",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,4,0,00,00).operator DATE(),"A1",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,5,0,00,00).operator DATE(),"A2",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,4,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"A3",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"A4",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A5",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A6",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A7",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A8",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A9",vtMissing);
var_Items->AddBar(h,"T1",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"AA",vtMissing);
h = var_Items->AddItem("Stack-AutoArrange");
var_Items->AddBar(h,"T2",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,4,0,00,00).operator DATE(),"A1",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,5,0,00,00).operator DATE(),"A2",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,4,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"A3",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"A4",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A5",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A6",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A7",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A8",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"A9",vtMissing);
var_Items->AddBar(h,"T2",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"AA",vtMissing);
spG2antt1->EndUpdate();
|
2348
|
Horizontally(left) align the multi-line caption of the bar

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Task");
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutLevelCount(2);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutSelectableItem(var_Items->AddItem(vtMissing),VARIANT_FALSE);
long h = var_Items->AddItem("Task 1");
var_Items->PutItemHeight(h,42);
var_Items->AddBar(h,"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"K1","This is a bit of 1'st line<br>2'nd line<br>3'rd line");
var_Items->PutItemBar(h,"K1",EXG2ANTTLib::exBarHAlignCaption,long(0));
spG2antt1->EndUpdate();
|
2347
|
Defines the colors, to display overlapping links

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
spG2antt1->PutAntiAliasing(VARIANT_TRUE);
spG2antt1->PutOverlapLinksColors("black,gray,lightgray");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutShowLinks(EXG2ANTTLib::ShowExtendedLinksEnum(EXG2ANTTLib::exChangeColorOnOverlap | EXG2ANTTLib::exPreventOverlapMixt | EXG2ANTTLib::exShowDefaultLinks));
var_Chart->PutNonworkingDays(0);
var_Chart->PutLinksStyle(EXG2ANTTLib::exLinkSolid);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("");
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),"A",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,11,0,00,00).operator DATE(),"B",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,13,0,00,00).operator DATE(),COleDateTime(2001,1,16,0,00,00).operator DATE(),"C",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,18,0,00,00).operator DATE(),COleDateTime(2001,1,21,0,00,00).operator DATE(),"D",vtMissing);
var_Items->AddLink("Link1",h1,"D",h1,"A");
var_Items->AddLink("Link2",h1,"C",h1,"B");
spG2antt1->EndUpdate();
|
2346
|
The exPreventOverlapMixt option can be combined with the exChangeColorOnOverlap flag, allowing overlapping links to alternately adjust their width while also changing colors

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
spG2antt1->PutAntiAliasing(VARIANT_TRUE);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutShowLinks(EXG2ANTTLib::ShowExtendedLinksEnum(EXG2ANTTLib::exChangeColorOnOverlap | EXG2ANTTLib::exPreventOverlapMixt | EXG2ANTTLib::exShowDefaultLinks));
var_Chart->PutNonworkingDays(0);
var_Chart->PutLinksStyle(EXG2ANTTLib::exLinkSolid);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("");
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),"A",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,11,0,00,00).operator DATE(),"B",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,13,0,00,00).operator DATE(),COleDateTime(2001,1,16,0,00,00).operator DATE(),"C",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,18,0,00,00).operator DATE(),COleDateTime(2001,1,21,0,00,00).operator DATE(),"D",vtMissing);
var_Items->AddLink("Link1",h1,"D",h1,"A");
var_Items->AddLink("Link2",h1,"C",h1,"B");
spG2antt1->EndUpdate();
|
2345
|
The exChangeColorOnOverlap flag changes the color for links in areas where they overlap with other links, enhancing clarity and distinction between them

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutAntiAliasing(VARIANT_TRUE);
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutShowLinks(EXG2ANTTLib::ShowExtendedLinksEnum(EXG2ANTTLib::exChangeColorOnOverlap | EXG2ANTTLib::exShowDefaultLinks));
var_Chart->PutNonworkingDays(0);
var_Chart->PutLinksStyle(EXG2ANTTLib::exLinkSolid);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("");
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),"A",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,11,0,00,00).operator DATE(),"B",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,13,0,00,00).operator DATE(),COleDateTime(2001,1,16,0,00,00).operator DATE(),"C",vtMissing);
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,18,0,00,00).operator DATE(),COleDateTime(2001,1,21,0,00,00).operator DATE(),"D",vtMissing);
var_Items->AddLink("Link1",h1,"D",h1,"A");
var_Items->AddLink("Link2",h1,"C",h1,"B");
spG2antt1->EndUpdate();
|
2344
|
How can I assign a multiple-lines caption to an bar

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Task");
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutLevelCount(2);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutSelectableItem(var_Items->AddItem(vtMissing),VARIANT_FALSE);
long h = var_Items->AddItem("Task 1");
var_Items->PutItemHeight(h,42);
var_Items->AddBar(h,"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->PutItemBar(h,"K1",EXG2ANTTLib::exBarCaption,"This is a bit of 1'st line<br>2'nd line<br>3'rd line");
spG2antt1->EndUpdate();
|
2343
|
The text on the chart overlap the rest of the bars, while using OverlaidType property on exOverlaidBarsStack

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
var_Chart->PutFirstVisibleDate(COleDateTime(2002,1,3,0,00,00).operator DATE());
var_Chart->PutLevelCount(2);
var_Chart->PutFirstWeekDay(EXG2ANTTLib::exMonday);
var_Chart->GetBars()->Add(L"Text")->PutDef(EXG2ANTTLib::exBarHAlignCaption,long(0));
EXG2ANTTLib::IBarPtr var_Bar = var_Chart->GetBars()->GetItem("Task");
var_Bar->PutDef(EXG2ANTTLib::exBarHAlignCaption,long(0));
var_Bar->PutOverlaidType(EXG2ANTTLib::OverlaidBarsTypeEnum(EXG2ANTTLib::exOverlaidBarsIncludeCaption | EXG2ANTTLib::exOverlaidBarsStackAutoArrange | EXG2ANTTLib::exOverlaidBarsStack));
var_Bar->PutOverlaidGroup(L"Text,Task");
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Default");
var_Items->AddBar(h,"Text",COleDateTime(2002,1,4,0,00,00).operator DATE(),COleDateTime(2002,1,4,0,00,00).operator DATE(),"","This is another text");
var_Items->AddBar(h,"Task",COleDateTime(2002,1,6,0,00,00).operator DATE(),COleDateTime(2002,1,8,0,00,00).operator DATE(),"A","This is a bit of text");
spG2antt1->EndUpdate();
|
2342
|
We are running our application on an Azure server using RDP, with the server language set to English. However, my client has their national language set to Swedish, but the tooltip is displaying dates in the English format (mm/dd/yyyy) instead of the Swedish format (yyyy-mm-dd) (method 2)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Def");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exNoCreateBar);
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2010,1,1,0,00,00).operator DATE());
var_Chart->GetBars()->GetItem("Task")->PutDef(EXG2ANTTLib::exBarToolTip,"<%=`Start: ` + (date(%1) format `yyyy-MM-dd` )%>");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Task");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,2,0,00,00).operator DATE(),COleDateTime(2010,1,5,0,00,00).operator DATE(),"A","A");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,5,0,00,00).operator DATE(),COleDateTime(2010,1,8,0,00,00).operator DATE(),"B","B");
spG2antt1->EndUpdate();
|
2341
|
We are running our application on an Azure server using RDP, with the server language set to English. However, my client has their national language set to Swedish, but the tooltip is displaying dates in the English format (mm/dd/yyyy) instead of the Swedish format (yyyy-mm-dd) (method 1)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Def");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exNoCreateBar);
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2010,1,1,0,00,00).operator DATE());
var_Chart->GetBars()->GetItem("Task")->PutDef(EXG2ANTTLib::exBarToolTip,"<%=`Start: ` + year(%1) + `-` + (month(%1) lpad `00`) + `-` + (day(%1) lpad `00`)%>");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Task");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,2,0,00,00).operator DATE(),COleDateTime(2010,1,5,0,00,00).operator DATE(),"A","A");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,5,0,00,00).operator DATE(),COleDateTime(2010,1,8,0,00,00).operator DATE(),"B","B");
spG2antt1->EndUpdate();
|
2340
|
How can I replace or add an icon at runtime

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->ReplaceIcon(_bstr_t("gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+O") +
"kYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==",vtMissing);
spG2antt1->ReplaceIcon("C:\\images\\favicon.ico",long(0));
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
var_Chart->PutLevelCount(2);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Task 1");
var_Items->AddBar(h,"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->PutItemBar(h,"K1",EXG2ANTTLib::exBarCaption,"<img>1</img>");
spG2antt1->EndUpdate();
|
2339
|
How can I define the sensitivity for link selection when the user clicks or selects a link
// MouseMove event - Occurs when the user moves the mouse.
void OnMouseMoveG2antt1(short Button,short Shift,long X,long Y)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
OutputDebugStringW( _bstr_t(spG2antt1->GetChart()->GetLinkFromPoint(-1,-1)) );
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,29,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutLevelCount(2);
var_Chart->PutLinksWidth(1026);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Task 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,4,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->AddItem(vtMissing);
long h2 = var_Items->AddItem("Task 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,10,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->AddLink("L1",h1,"K1",h2,"K2");
var_Items->AddItem(vtMissing);
long h3 = var_Items->AddItem("Task 3");
var_Items->AddBar(h3,"Task",COleDateTime(2001,1,14,0,00,00).operator DATE(),COleDateTime(2001,1,16,0,00,00).operator DATE(),"K3",vtMissing);
var_Items->AddLink("L2",h2,"K2",h3,"K3");
spG2antt1->EndUpdate();
|
2338
|
How can I let the user to create task-bars for leaf0-items only, when AllowCreateBar is exCreateBarAuto
// CreateBar event - Fired when the user creates a new bar.
void OnCreateBarG2antt1(long Item,DATE DateStart,DATE DateEnd)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
OutputDebugStringW( L"Call RemoveBar if the ChildCount property returns a non-zero value" );
OutputDebugStringW( _bstr_t(var_Items->GetChildCount(Item)) );
var_Items->RemoveBar(Item,"newbar");
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
spG2antt1->PutHeaderVisible(EXG2ANTTLib::exHeaderVisibleExtendLevels);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exCreateBarAuto);
var_Chart->PutLevelCount(2);
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Root");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(h,vtMissing,"Child 2");
var_Items->PutExpandItem(h,VARIANT_TRUE);
spG2antt1->EndUpdate();
|
2337
|
How can I convert the exBarStart/exBarEnd property to a string (by default it returns as VARIANT/VT_DATE type, method 3)

// BarResizing event - Occurs when a bar is moving or resizing.
void OnBarResizingG2antt1(long Item,VARIANT Key)
{
OutputDebugStringW( L"Start" );
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
OutputDebugStringW( L"Key" );
OutputDebugStringW( _bstr_t(spG2antt1->GetItems()->GetItemBar(Item,Key,EXG2ANTTLib::exBarStartStr)) );
OutputDebugStringW( L"End" );
OutputDebugStringW( L"Key" );
OutputDebugStringW( _bstr_t(spG2antt1->GetItems()->GetItemBar(Item,Key,EXG2ANTTLib::exBarEndStr)) );
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Tasks");
spG2antt1->PutDebug(VARIANT_TRUE);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2006,9,20,0,00,00).operator DATE());
var_Chart->PutLevelCount(2);
var_Chart->PutPaneWidth(VARIANT_FALSE,96);
var_Chart->PutResizeUnitScale(EXG2ANTTLib::exMinute);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Task 1"),"Task",COleDateTime(2006,9,21,0,00,00).operator DATE(),COleDateTime(2006,9,24,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->AddBar(var_Items->AddItem("Task 2"),"Task",COleDateTime(2006,9,22,0,00,00).operator DATE(),COleDateTime(2006,9,25,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->AddBar(var_Items->AddItem("Task 3"),"Task",COleDateTime(2006,9,23,0,00,00).operator DATE(),COleDateTime(2006,9,26,0,00,00).operator DATE(),"K3",vtMissing);
spG2antt1->EndUpdate();
|
2336
|
How can I convert the exBarStart/exBarEnd property to a string (by default it returns as VARIANT/VT_DATE type, method 2)

// BarResizing event - Occurs when a bar is moving or resizing.
void OnBarResizingG2antt1(long Item,VARIANT Key)
{
OutputDebugStringW( L"Start" );
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
OutputDebugStringW( L"Key" );
OutputDebugStringW( _bstr_t(spG2antt1->FormatABC(L"dateF(value)",spG2antt1->GetItems()->GetItemBar(Item,Key,EXG2ANTTLib::exBarStart),vtMissing,vtMissing)) );
OutputDebugStringW( L"End" );
OutputDebugStringW( L"Key" );
OutputDebugStringW( _bstr_t(spG2antt1->FormatABC(L"dateF(value)",spG2antt1->GetItems()->GetItemBar(Item,Key,EXG2ANTTLib::exBarEnd),vtMissing,vtMissing)) );
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Tasks");
spG2antt1->PutDebug(VARIANT_TRUE);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2006,9,20,0,00,00).operator DATE());
var_Chart->PutLevelCount(2);
var_Chart->PutPaneWidth(VARIANT_FALSE,96);
var_Chart->PutResizeUnitScale(EXG2ANTTLib::exMinute);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Task 1"),"Task",COleDateTime(2006,9,21,0,00,00).operator DATE(),COleDateTime(2006,9,24,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->AddBar(var_Items->AddItem("Task 2"),"Task",COleDateTime(2006,9,22,0,00,00).operator DATE(),COleDateTime(2006,9,25,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->AddBar(var_Items->AddItem("Task 3"),"Task",COleDateTime(2006,9,23,0,00,00).operator DATE(),COleDateTime(2006,9,26,0,00,00).operator DATE(),"K3",vtMissing);
spG2antt1->EndUpdate();
|
2335
|
How can I convert the exBarStart/exBarEnd property to a string (by default it returns as VARIANT/VT_DATE type, method 1)

// BarResizing event - Occurs when a bar is moving or resizing.
void OnBarResizingG2antt1(long Item,VARIANT Key)
{
OutputDebugStringW( L"Start" );
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
OutputDebugStringW( L"Key" );
OutputDebugStringW( _bstr_t(spG2antt1->FormatABC(L"date(value) format `MM/dd/yyyy HH:mm:ss`",spG2antt1->GetItems()->GetItemBar(Item,Key,EXG2ANTTLib::exBarStart),vtMissing,vtMissing)) );
OutputDebugStringW( L"End" );
OutputDebugStringW( L"Key" );
OutputDebugStringW( _bstr_t(spG2antt1->FormatABC(L"date(value) format `MM/dd/yyyy HH:mm:ss`",spG2antt1->GetItems()->GetItemBar(Item,Key,EXG2ANTTLib::exBarEnd),vtMissing,vtMissing)) );
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Tasks");
spG2antt1->PutDebug(VARIANT_TRUE);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2006,9,20,0,00,00).operator DATE());
var_Chart->PutLevelCount(2);
var_Chart->PutPaneWidth(VARIANT_FALSE,96);
var_Chart->PutResizeUnitScale(EXG2ANTTLib::exMinute);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Task 1"),"Task",COleDateTime(2006,9,21,0,00,00).operator DATE(),COleDateTime(2006,9,24,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->AddBar(var_Items->AddItem("Task 2"),"Task",COleDateTime(2006,9,22,0,00,00).operator DATE(),COleDateTime(2006,9,25,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->AddBar(var_Items->AddItem("Task 3"),"Task",COleDateTime(2006,9,23,0,00,00).operator DATE(),COleDateTime(2006,9,26,0,00,00).operator DATE(),"K3",vtMissing);
spG2antt1->EndUpdate();
|
2334
|
Add/Remove/Updates the item-bar's resources

// Click event - Occurs when the user presses and then releases the left mouse button over the tree control.
void OnClickG2antt1()
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->GetSelectedItem(0);
var_Items->PutItemBar(h,var_Items->GetFirstItemBar(h),EXG2ANTTLib::exBarResources,"+R4[10%]");
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,96);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
EXG2ANTTLib::IBarPtr var_Bar = var_Chart->GetBars()->GetItem("Task");
var_Bar->PutDef(EXG2ANTTLib::exBarHAlignCaption,long(18));
var_Bar->PutDef(EXG2ANTTLib::exBarCaption,"<%=%49%>");
spG2antt1->GetColumns()->Add(L"Machines");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Machine 1");
var_Items->AddBar(h,"Task",COleDateTime(2001,1,6,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->PutItemBar(h,"K1",EXG2ANTTLib::exBarResources,"R1,R2");
h = var_Items->AddItem("Machine 2");
var_Items->AddBar(h,"Task",COleDateTime(2001,1,4,0,00,00).operator DATE(),COleDateTime(2001,1,14,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->PutItemBar(h,"K2",EXG2ANTTLib::exBarResources,"R2[75%],R3");
spG2antt1->EndUpdate();
|
2333
|
Distributes resources to a bar

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,96);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
EXG2ANTTLib::IBarPtr var_Bar = var_Chart->GetBars()->GetItem("Task");
var_Bar->PutDef(EXG2ANTTLib::exBarHAlignCaption,long(18));
var_Bar->PutDef(EXG2ANTTLib::exBarCaption,"<%=%49%>");
spG2antt1->GetColumns()->Add(L"Machines");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Machine 1");
var_Items->AddBar(h,"Task",COleDateTime(2001,1,6,0,00,00).operator DATE(),COleDateTime(2001,1,12,0,00,00).operator DATE(),"K1",vtMissing);
var_Items->PutItemBar(h,"K1",EXG2ANTTLib::exBarResources,"R1,R2");
h = var_Items->AddItem("Machine 2");
var_Items->AddBar(h,"Task",COleDateTime(2001,1,4,0,00,00).operator DATE(),COleDateTime(2001,1,14,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->PutItemBar(h,"K2",EXG2ANTTLib::exBarResources,"R2[75%],R3");
spG2antt1->EndUpdate();
|
2332
|
How can I display additional information about a time zone when the user clicks on it (expandable)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,0);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2009,12,20,0,00,00).operator DATE());
var_Chart->MarkTimeZone("TZ",COleDateTime(2010,1,1,0,00,00).operator DATE(),COleDateTime(2010,1,3,0,00,00).operator DATE(),long(65280),"1;;<c>TimeZone<b><off -4><a ;exp=just more info about>*</a></b>;1");
|
2331
|
How can I have a tooltip for a marked TimeZone

// MouseMove event - Occurs when the user moves the mouse.
void OnMouseMoveG2antt1(short Button,short Shift,long X,long Y)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->ShowToolTip(spG2antt1->GetChart()->GetTimeZoneFromPoint(-1,-1),"",vtMissing,"+8",vtMissing);
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,0);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2009,12,28,0,00,00).operator DATE());
var_Chart->MarkTimeZone("Top",COleDateTime(2010,1,1,0,00,00).operator DATE(),COleDateTime(2010,1,5,0,00,00).operator DATE(),long(16711680),"1;;<fgcolor=FFFFFF>Top;1");
var_Chart->MarkTimeZone("Partial",COleDateTime(2010,1,8,0,00,00).operator DATE(),COleDateTime(2010,1,12,0,00,00).operator DATE(),long(16711680),"50;;<fgcolor=FFFFFF>Partial;1");
var_Chart->MarkTimeZone("Default",COleDateTime(2010,1,15,0,00,00).operator DATE(),COleDateTime(2010,1,19,0,00,00).operator DATE(),long(16711680),";;<fgcolor=FFFFFF>Default;1");
|
2330
|
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

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Items")));
var_Column->PutDisplayFilterButton(VARIANT_TRUE);
var_Column->PutDisplayFilterPattern(VARIANT_TRUE);
var_Column->PutDef(EXG2ANTTLib::exFilterPatternTemplate,"*<%filter%>*");
var_Column->PutFilterType(EXG2ANTTLib::exPattern);
var_Column->PutFilter(L"1");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Root 1");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(h,vtMissing,"Child 2");
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->AddItem("Root 2");
var_Items->InsertItem(h,vtMissing,"Child 1");
var_Items->InsertItem(h,vtMissing,"Child 2");
spG2antt1->ApplyFilter();
spG2antt1->EndUpdate();
|
2329
|
The fine dotted lines in the control appear much thicker than the standard ones we've been using. How can we fix this

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exAllLines);
spG2antt1->PutGridLineStyle(EXG2ANTTLib::exGridLinesGeometric);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutGridLineStyle(EXG2ANTTLib::exGridLinesGeometric);
var_Chart->PutDrawGridLines(EXG2ANTTLib::exAllLines);
spG2antt1->PutColumnAutoResize(VARIANT_FALSE);
spG2antt1->GetColumns()->Add(L"Column 1");
spG2antt1->GetColumns()->Add(L"Column 2");
spG2antt1->GetColumns()->Add(L"Column 3");
spG2antt1->GetColumns()->Add(L"Column 4");
spG2antt1->EndUpdate();
|
2328
|
Load data as a tree using a parent-id relationship

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutColumnAutoResize(VARIANT_FALSE);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exVLines);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
/*
Includes the definition for CreateObject function like follows:
#include <comdef.h>
IUnknownPtr CreateObject( BSTR Object )
{
IUnknownPtr spResult;
spResult.CreateInstance( Object );
return spResult;
};
*/
/*
Copy and paste the following directives to your header file as
it defines the namespace 'ADODB' for the library: 'Microsoft ActiveX Data Objects 6.1 Library'
#import <msado15.dll> rename("EOF","REOF")
*/
ADODB::_RecordsetPtr rs = ::CreateObject(L"ADODB.Recordset");
rs->Open("Select * FROM Employees WHERE 1=0","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.mdb",ADODB::adOpenStatic,ADODB::adLockOptimistic,0);
spG2antt1->PutDataSource(((ADODB::_RecordsetPtr)(rs)));
spG2antt1->GetColumns()->GetItem(long(0))->PutWidth(128);
rs = ::CreateObject(L"ADODB.Recordset");
rs->Open("Employees","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.mdb",ADODB::adOpenStatic,ADODB::adLockOptimistic,0);
spG2antt1->PutItems(rs->GetRows(0,vtMissing,vtMissing),";0;17");
spG2antt1->GetItems()->PutExpandItem(0,VARIANT_TRUE);
spG2antt1->EndUpdate();
|
2327
|
Is there a way to change the contents of the drop down editor based on a value in another column

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void OnAddItemG2antt1(long Item)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->GetItems()->PutCellEditorVisible(Item,long(0),EXG2ANTTLib::exEditorVisible);
spG2antt1->GetItems()->PutCellEditorVisible(Item,long(1),EXG2ANTTLib::exEditorVisible);
}
// EditOpen event - Occurs when the edit operation starts.
void OnEditOpenG2antt1()
{
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
_variant_t v = var_Items->GetCellValue(var_Items->GetFocusItem(),long(0));
_bstr_t c = var_Items->GetCellCaption(var_Items->GetFocusItem(),long(0));
EXG2ANTTLib::IEditorPtr var_Editor = spG2antt1->GetColumns()->GetItem(long(1))->GetEditor();
var_Editor->ClearItems();
var_Editor->AddItem(v,L"c",vtMissing);
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutGridLineStyle(EXG2ANTTLib::exGridLinesGeometric);
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"DropDownList")));
EXG2ANTTLib::IEditorPtr var_Editor = var_Column->GetEditor();
var_Editor->PutEditType(EXG2ANTTLib::DropDownListType);
var_Editor->AddItem(1,L"First",vtMissing);
var_Editor->AddItem(2,L"Second",vtMissing);
var_Editor->AddItem(3,L"Third",vtMissing);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exAllLines);
((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"DropDownList-Related")))->GetEditor()->PutEditType(EXG2ANTTLib::DropDownListType);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->PutCellValue(var_Items->AddItem(long(1)),long(1),long(-1));
var_Items->PutCellValue(var_Items->AddItem(long(2)),long(1),long(-1));
var_Items->PutCellValue(var_Items->AddItem(long(3)),long(1),long(-1));
var_Items->PutLockedItemCount(EXG2ANTTLib::exBottom,1);
long h = var_Items->GetLockedItem(EXG2ANTTLib::exBottom,0);
var_Items->PutItemDivider(h,0);
var_Items->PutItemDividerLineAlignment(h,EXG2ANTTLib::DividerTop);
var_Items->PutCellEditorVisible(h,long(0),EXG2ANTTLib::exEditorHidden);
var_Items->PutCellSingleLine(h,long(0),EXG2ANTTLib::exCaptionWordWrap);
var_Items->PutCellValueFormat(h,long(0),EXG2ANTTLib::exHTML);
var_Items->PutCellValue(h,long(0),_bstr_t("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.");
spG2antt1->EndUpdate();
|
2326
|
Highlight the editable fields

// Change event - Occurs when the user changes the cell's content.
void OnChangeG2antt1(long Item,long ColIndex,VARIANT FAR* NewValue)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->Refresh();
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->FreezeEvents(VARIANT_TRUE);
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IConditionalFormatsPtr var_ConditionalFormats = spG2antt1->GetConditionalFormats();
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CE1",vtMissing);
var_ConditionalFormat->PutBold(VARIANT_TRUE);
var_ConditionalFormat->PutBackColor(RGB(245,245,245));
var_ConditionalFormat->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x1));
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CE2",vtMissing);
var_ConditionalFormat1->PutBold(VARIANT_TRUE);
var_ConditionalFormat1->PutBackColor(RGB(245,245,245));
var_ConditionalFormat1->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x2));
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CE3",vtMissing);
var_ConditionalFormat2->PutBold(VARIANT_TRUE);
var_ConditionalFormat2->PutBackColor(RGB(245,245,245));
var_ConditionalFormat2->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x3));
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"Description");
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Qty")));
var_Column->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
var_Column->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Price")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"avg(current,rec,%2)");
var_Column1->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
EXG2ANTTLib::IColumnPtr var_Column2 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column2->PutComputedField(L"%1 * %2");
var_Column2->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%3)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long r = var_Items->AddItem("Root");
long g1 = var_Items->InsertItem(r,vtMissing,"Group 1");
long h = var_Items->InsertItem(g1,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(1));
var_Items->PutCellValue(h,long(2),long(10));
h = var_Items->InsertItem(g1,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(2));
var_Items->PutCellValue(h,long(2),long(11));
long g2 = var_Items->InsertItem(r,vtMissing,"Group 2");
h = var_Items->InsertItem(g2,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(3));
var_Items->PutCellValue(h,long(2),long(12));
h = var_Items->InsertItem(g2,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(4));
var_Items->PutCellValue(h,long(2),long(13));
var_Items->PutExpandItem(0,VARIANT_TRUE);
spG2antt1->EndUpdate();
spG2antt1->FreezeEvents(VARIANT_FALSE);
|
2325
|
Highlight the total fields

// Change event - Occurs when the user changes the cell's content.
void OnChangeG2antt1(long Item,long ColIndex,VARIANT FAR* NewValue)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->Refresh();
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->FreezeEvents(VARIANT_TRUE);
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IConditionalFormatsPtr var_ConditionalFormats = spG2antt1->GetConditionalFormats();
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat = var_ConditionalFormats->Add(L"%CT1",vtMissing);
var_ConditionalFormat->PutForeColor(RGB(128,128,128));
var_ConditionalFormat->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x1));
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat1 = var_ConditionalFormats->Add(L"%CT2",vtMissing);
var_ConditionalFormat1->PutForeColor(RGB(128,128,128));
var_ConditionalFormat1->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x2));
EXG2ANTTLib::IConditionalFormatPtr var_ConditionalFormat2 = var_ConditionalFormats->Add(L"%CT3",vtMissing);
var_ConditionalFormat2->PutForeColor(RGB(128,128,128));
var_ConditionalFormat2->PutApplyTo(EXG2ANTTLib::FormatApplyToEnum(0x3));
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"Description");
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Qty")));
var_Column->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
var_Column->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Price")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"avg(current,rec,%2)");
var_Column1->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
EXG2ANTTLib::IColumnPtr var_Column2 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column2->PutComputedField(L"%1 * %2");
var_Column2->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%3)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long r = var_Items->AddItem("Root");
long g1 = var_Items->InsertItem(r,vtMissing,"Group 1");
long h = var_Items->InsertItem(g1,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(1));
var_Items->PutCellValue(h,long(2),long(10));
h = var_Items->InsertItem(g1,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(2));
var_Items->PutCellValue(h,long(2),long(11));
long g2 = var_Items->InsertItem(r,vtMissing,"Group 2");
h = var_Items->InsertItem(g2,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(3));
var_Items->PutCellValue(h,long(2),long(12));
h = var_Items->InsertItem(g2,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(4));
var_Items->PutCellValue(h,long(2),long(13));
var_Items->PutExpandItem(0,VARIANT_TRUE);
spG2antt1->EndUpdate();
spG2antt1->FreezeEvents(VARIANT_FALSE);
|
2324
|
Highlight the leaf items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetConditionalFormats()->Add(L"%CC0=0",vtMissing)->PutForeColor(RGB(128,128,128));
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Item")))->PutWidth(16);
var_Columns->Add(L"Desc");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long hR = var_Items->AddItem("Root");
var_Items->PutCellValue(hR,long(1),"The root directory /");
var_Items->PutExpandItem(hR,VARIANT_TRUE);
long h = var_Items->InsertItem(hR,vtMissing,"Home");
var_Items->PutCellValue(h,long(1),"The home directory with user directories Alice and Bob");
var_Items->InsertItem(h,vtMissing,"Alice");
var_Items->InsertItem(h,vtMissing,"Bob");
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->InsertItem(hR,vtMissing,"Etc");
var_Items->PutCellValue(h,long(1),"The etc directory with one configuration file");
h = var_Items->InsertItem(h,vtMissing,"nginx.conf");
var_Items->PutCellValue(var_Items->InsertItem(hR,vtMissing,"Var"),long(1),"The var directory");
spG2antt1->EndUpdate();
|
2323
|
Highlight the parent items

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetConditionalFormats()->Add(L"%CC0",vtMissing)->PutForeColor(RGB(255,0,0));
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Item")))->PutWidth(16);
var_Columns->Add(L"Desc");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long hR = var_Items->AddItem("Root");
var_Items->PutCellValue(hR,long(1),"The root directory /");
var_Items->PutExpandItem(hR,VARIANT_TRUE);
long h = var_Items->InsertItem(hR,vtMissing,"Home");
var_Items->PutCellValue(h,long(1),"The home directory with user directories Alice and Bob");
var_Items->InsertItem(h,vtMissing,"Alice");
var_Items->InsertItem(h,vtMissing,"Bob");
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->InsertItem(hR,vtMissing,"Etc");
var_Items->PutCellValue(h,long(1),"The etc directory with one configuration file");
h = var_Items->InsertItem(h,vtMissing,"nginx.conf");
var_Items->PutCellValue(var_Items->InsertItem(hR,vtMissing,"Var"),long(1),"The var directory");
spG2antt1->EndUpdate();
|
2322
|
Highlight the item being expanded or collapsed

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetConditionalFormats()->Add(L"%CX0",vtMissing)->PutBold(VARIANT_TRUE);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Item")))->PutWidth(16);
var_Columns->Add(L"Desc");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long hR = var_Items->AddItem("Root");
var_Items->PutCellValue(hR,long(1),"The root directory /");
var_Items->PutExpandItem(hR,VARIANT_TRUE);
long h = var_Items->InsertItem(hR,vtMissing,"Home");
var_Items->PutCellValue(h,long(1),"The home directory with user directories Alice and Bob");
var_Items->InsertItem(h,vtMissing,"Alice");
var_Items->InsertItem(h,vtMissing,"Bob");
var_Items->PutExpandItem(h,VARIANT_TRUE);
h = var_Items->InsertItem(hR,vtMissing,"Etc");
var_Items->PutCellValue(h,long(1),"The etc directory with one configuration file");
h = var_Items->InsertItem(h,vtMissing,"nginx.conf");
var_Items->PutCellValue(var_Items->InsertItem(hR,vtMissing,"Var"),long(1),"The var directory");
spG2antt1->EndUpdate();
|
2321
|
I am using exTotalColumn. Is there an option to exclude specific cells to display the total

// Change event - Occurs when the user changes the cell's content.
void OnChangeG2antt1(long Item,long ColIndex,VARIANT FAR* NewValue)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->Refresh();
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->FreezeEvents(VARIANT_TRUE);
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"Description");
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Qty")));
var_Column->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
var_Column->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Price")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"avg(current,rec,%2)");
var_Column1->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
EXG2ANTTLib::IColumnPtr var_Column2 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column2->PutComputedField(L"%1 * %2");
var_Column2->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%3)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long r = var_Items->AddItem("Root");
long g1 = var_Items->InsertItem(r,vtMissing,"Group 1");
var_Items->PutFormatCell(g1,long(2),L"`<average missing>`");
var_Items->PutCellEditorVisible(g1,long(2),EXG2ANTTLib::exEditorHidden);
var_Items->PutCellBold(g1,long(2),VARIANT_TRUE);
var_Items->PutCellForeColor(g1,long(2),RGB(255,0,0));
long h = var_Items->InsertItem(g1,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(1));
var_Items->PutCellValue(h,long(2),long(10));
h = var_Items->InsertItem(g1,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(2));
var_Items->PutCellValue(h,long(2),long(11));
long g2 = var_Items->InsertItem(r,vtMissing,"Group 2");
h = var_Items->InsertItem(g2,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(3));
var_Items->PutCellValue(h,long(2),long(12));
h = var_Items->InsertItem(g2,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(4));
var_Items->PutCellValue(h,long(2),long(13));
var_Items->PutExpandItem(0,VARIANT_TRUE);
spG2antt1->EndUpdate();
spG2antt1->FreezeEvents(VARIANT_FALSE);
|
2320
|
How can I add a total column

// Change event - Occurs when the user changes the cell's content.
void OnChangeG2antt1(long Item,long ColIndex,VARIANT FAR* NewValue)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->Refresh();
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->FreezeEvents(VARIANT_TRUE);
spG2antt1->BeginUpdate();
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutHeaderHeight(24);
spG2antt1->PutLinesAtRoot(EXG2ANTTLib::exLinesAtRoot);
EXG2ANTTLib::IColumnsPtr var_Columns = spG2antt1->GetColumns();
var_Columns->Add(L"Description");
EXG2ANTTLib::IColumnPtr var_Column = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Qty")));
var_Column->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
var_Column->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%1)");
EXG2ANTTLib::IColumnPtr var_Column1 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Price")));
var_Column1->PutDef(EXG2ANTTLib::exTotalColumn,"avg(current,rec,%2)");
var_Column1->GetEditor()->PutEditType(EXG2ANTTLib::SpinType);
EXG2ANTTLib::IColumnPtr var_Column2 = ((EXG2ANTTLib::IColumnPtr)(var_Columns->Add(L"Amount")));
var_Column2->PutComputedField(L"%1 * %2");
var_Column2->PutDef(EXG2ANTTLib::exTotalColumn,"sum(current,rec,%3)");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long r = var_Items->AddItem("Root");
long g1 = var_Items->InsertItem(r,vtMissing,"Group 1");
long h = var_Items->InsertItem(g1,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(1));
var_Items->PutCellValue(h,long(2),long(10));
h = var_Items->InsertItem(g1,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(2));
var_Items->PutCellValue(h,long(2),long(11));
long g2 = var_Items->InsertItem(r,vtMissing,"Group 2");
h = var_Items->InsertItem(g2,vtMissing,"Item 1");
var_Items->PutCellValue(h,long(1),long(3));
var_Items->PutCellValue(h,long(2),long(12));
h = var_Items->InsertItem(g2,vtMissing,"Item 2");
var_Items->PutCellValue(h,long(1),long(4));
var_Items->PutCellValue(h,long(2),long(13));
var_Items->PutExpandItem(0,VARIANT_TRUE);
spG2antt1->EndUpdate();
spG2antt1->FreezeEvents(VARIANT_FALSE);
|
2319
|
Is it possible when I move the horizontal scroll bar, that the whole chart scrolls live during move the horizontal scroll bar. Not it scrolls just when I release the left mouse, not during change the horizontal scroll position
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,0);
var_Chart->PutLevelCount(2);
var_Chart->PutToolTip(L"");
|
2318
|
The exLinkStyle is not valid (the style of the link is still solid) if the link's width is greater than 1. What can be done
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,1,1,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,128);
spG2antt1->PutAntiAliasing(VARIANT_TRUE);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Task 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,4,0,00,00).operator DATE(),"K1",vtMissing);
long h2 = var_Items->AddItem("Task 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,5,0,00,00).operator DATE(),COleDateTime(2001,1,7,0,00,00).operator DATE(),"K2",vtMissing);
var_Items->AddLink("L1",h1,"K1",h2,"K2");
var_Items->PutLink("L1",EXG2ANTTLib::exLinkStyle,long(2));
var_Items->PutLink("L1",EXG2ANTTLib::exLinkWidth,long(2));
long h3 = var_Items->AddItem("Task 4");
var_Items->AddBar(h3,"Task",COleDateTime(2001,1,8,0,00,00).operator DATE(),COleDateTime(2001,1,10,0,00,00).operator DATE(),"K3",vtMissing);
var_Items->AddLink("L2",h2,"K2",h3,"K3");
var_Items->PutLink("L2",EXG2ANTTLib::exLinkStyle,long(1));
var_Items->PutLink("L2",EXG2ANTTLib::exLinkWidth,long(2));
spG2antt1->EndUpdate();
|
2317
|
How can I change the tooltip's margins (method 2)

// MouseMove event - Occurs when the user moves the mouse.
void OnMouseMoveG2antt1(short Button,short Shift,long X,long Y)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->ShowToolTip(spG2antt1->GetChart()->GetBarFromPoint(-1,-1),vtMissing,vtMissing,vtMissing,vtMissing);
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutToolTipMargin(L"16,8");
spG2antt1->GetColumns()->Add(L"Def");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exNoCreateBar);
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2010,1,1,0,00,00).operator DATE());
var_Chart->GetBars()->GetItem("Task")->PutDef(EXG2ANTTLib::exBarToolTip,"...");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Task");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,2,0,00,00).operator DATE(),COleDateTime(2010,1,5,0,00,00).operator DATE(),"A","A");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,5,0,00,00).operator DATE(),COleDateTime(2010,1,8,0,00,00).operator DATE(),"B","B");
spG2antt1->EndUpdate();
|
2316
|
Are there any properties to set text margins at tooltip, like Margins="5,5" (method 1). Margins is used to get some space between text and the tooltips border

// MouseMove event - Occurs when the user moves the mouse.
void OnMouseMoveG2antt1(short Button,short Shift,long X,long Y)
{
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->ShowToolTip(spG2antt1->GetChart()->GetBarFromPoint(-1,-1),vtMissing,vtMissing,vtMissing,vtMissing);
}
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutToolTipMargin(L"16,8");
spG2antt1->GetColumns()->Add(L"Def");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exNoCreateBar);
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2010,1,1,0,00,00).operator DATE());
var_Chart->GetBars()->GetItem("Task")->PutDef(EXG2ANTTLib::exBarToolTip,"...");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h = var_Items->AddItem("Task");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,2,0,00,00).operator DATE(),COleDateTime(2010,1,5,0,00,00).operator DATE(),"A","A");
var_Items->AddBar(h,"Task",COleDateTime(2010,1,5,0,00,00).operator DATE(),COleDateTime(2010,1,8,0,00,00).operator DATE(),"B","B");
spG2antt1->EndUpdate();
|
2315
|
exShowExtendedLinks

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutDefaultItemHeight(24);
spG2antt1->PutHeaderHeight(20);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutAntiAliasing(VARIANT_TRUE);
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
var_Chart->PutLevelCount(2);
var_Chart->PutUnitScale(EXG2ANTTLib::exHour);
var_Chart->PutFirstVisibleDate(COleDateTime(2024,1,10,0,00,00).operator DATE());
EXG2ANTTLib::ILevelPtr var_Level = var_Chart->GetLevel(1);
var_Level->PutDrawTickLines(EXG2ANTTLib::exLevelNoLine);
var_Level->DrawTickLinesFrom(0,EXG2ANTTLib::exLevelDotLine);
var_Chart->PutAllowResizeChart(EXG2ANTTLib::ResizeChartEnum(0xfffffef9 | EXG2ANTTLib::exAllowChangeUnitScale | EXG2ANTTLib::exAllowResizeChartMiddle | EXG2ANTTLib::exAllowResizeChartHeader));
var_Chart->PutShowLinks(EXG2ANTTLib::exShowExtendedLinks);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("T1"),"Task",COleDateTime(2024,1,10,10,00,00).operator DATE(),COleDateTime(2024,1,10,10,20,00).operator DATE(),"T1",vtMissing);
var_Items->AddBar(var_Items->AddItem("T2"),"Task",COleDateTime(2024,1,10,9,00,00).operator DATE(),COleDateTime(2024,1,10,12,00,00).operator DATE(),"T2",vtMissing);
var_Items->AddBar(var_Items->AddItem("T3"),"Task",COleDateTime(2024,1,10,8,00,00).operator DATE(),COleDateTime(2024,1,10,8,30,00).operator DATE(),"T3",vtMissing);
var_Items->AddBar(var_Items->AddItem("T4"),"Task",COleDateTime(2024,1,10,8,00,00).operator DATE(),COleDateTime(2024,1,10,8,30,00).operator DATE(),"T4",vtMissing);
var_Items->AddLink("L13",var_Items->GetItemByIndex(0),"T1",var_Items->GetItemByIndex(2),"T3");
var_Items->AddLink("L14",var_Items->GetItemByIndex(0),"T1",var_Items->GetItemByIndex(3),"T4");
var_Items->AddLink("L24",var_Items->GetItemByIndex(1),"T2",var_Items->GetItemByIndex(3),"T4");
spG2antt1->EndUpdate();
|
2314
|
According to the documentation of the ShowExtendedLinksEnum value exShowExtendedLinks (1) it is possible to distinctly visualise links (rather than showing them one over another) when two or more links start or end on the same bar

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutDefaultItemHeight(24);
spG2antt1->PutHeaderHeight(20);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
spG2antt1->PutAntiAliasing(VARIANT_TRUE);
spG2antt1->GetColumns()->Add(L"Task");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
var_Chart->PutLevelCount(2);
var_Chart->PutUnitScale(EXG2ANTTLib::exHour);
var_Chart->PutFirstVisibleDate(COleDateTime(2024,1,10,0,00,00).operator DATE());
EXG2ANTTLib::ILevelPtr var_Level = var_Chart->GetLevel(1);
var_Level->PutDrawTickLines(EXG2ANTTLib::exLevelNoLine);
var_Level->DrawTickLinesFrom(0,EXG2ANTTLib::exLevelDotLine);
var_Chart->PutAllowResizeChart(EXG2ANTTLib::ResizeChartEnum(0xfffffef9 | EXG2ANTTLib::exAllowChangeUnitScale | EXG2ANTTLib::exAllowResizeChartMiddle | EXG2ANTTLib::exAllowResizeChartHeader));
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("T1"),"Task",COleDateTime(2024,1,10,10,00,00).operator DATE(),COleDateTime(2024,1,10,10,20,00).operator DATE(),"T1",vtMissing);
var_Items->AddBar(var_Items->AddItem("T2"),"Task",COleDateTime(2024,1,10,9,00,00).operator DATE(),COleDateTime(2024,1,10,12,00,00).operator DATE(),"T2",vtMissing);
var_Items->AddBar(var_Items->AddItem("T3"),"Task",COleDateTime(2024,1,10,8,00,00).operator DATE(),COleDateTime(2024,1,10,8,30,00).operator DATE(),"T3",vtMissing);
var_Items->AddBar(var_Items->AddItem("T4"),"Task",COleDateTime(2024,1,10,8,00,00).operator DATE(),COleDateTime(2024,1,10,8,30,00).operator DATE(),"T4",vtMissing);
var_Items->AddLink("L1",var_Items->GetItemByIndex(0),"T1",var_Items->GetItemByIndex(2),"T3");
var_Items->AddLink("L2",var_Items->GetItemByIndex(1),"T2",var_Items->GetItemByIndex(3),"T4");
var_Items->PutLink("L2",EXG2ANTTLib::exLinkShowRound,long(4));
spG2antt1->EndUpdate();
|
2313
|
How to use arrows key left/right to move the cursor left/right inside the text
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
EXG2ANTTLib::IEditorPtr var_Editor = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Edit")))->GetEditor();
var_Editor->PutEditType(EXG2ANTTLib::EditType);
var_Editor->PutOption(EXG2ANTTLib::exLeftArrow,VARIANT_FALSE);
var_Editor->PutOption(EXG2ANTTLib::exRightArrow,VARIANT_FALSE);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("000");
var_Items->AddItem("111");
var_Items->AddItem("222");
spG2antt1->EndUpdate();
|
2312
|
How can I force the cursor to jump to the end of the editor once the user clicks the cell
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutSelBackColor(spG2antt1->GetBackColor());
spG2antt1->PutSelForeColor(spG2antt1->GetForeColor());
EXG2ANTTLib::IEditorPtr var_Editor = ((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Edit")))->GetEditor();
var_Editor->PutEditType(EXG2ANTTLib::EditType);
var_Editor->PutOption(EXG2ANTTLib::exEditSelStart,long(-1));
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddItem("000");
var_Items->AddItem("111");
var_Items->AddItem("222");
spG2antt1->EndUpdate();
|
2311
|
How can I show the overview with a different color except or outside the selection

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetVisualAppearance()->Add(1,_bstr_t("gBFLBCJwBAEHhEJAAEhABVIDg6AADACAxRDAMgBQKAAzAJBIYhiGgcYCgMZBSDeCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADE2YAoJDUN4nDKMMDybBkRxtDCPIDnGQoD") +
"iGI4nSbKIzSCKMQhrEKZZrnaLJFgOTY8ABLEBvfSgASof6MKBlKhKGoiUo2SCFEaBTBNHxDL6raqqWJ5HDINQlWzbcjjKKFYRbOqTZDkGj4XqKTo3YBAdZSXJsXwTGKk" +
"ji3ZgMOR3HaQaTjOgINpuDZdRzkUYZUDFSwSDqQIRtCpbJqzFZDZbLNbYBYME47AayID0CbdCgmaalSZHNxbVa0BzpXrFLw1TLoDy8AJ+ABseKzfo9PxdIygZRzKJ8ao" +
"fE+YxynIfJcC8QgbCmL5eiEPIKH6RABlibJpicW4/FcAx/HOYRGmud4+CcHxdmiDhkGEIIIEkQJSGMHQHFGSBlFEUITEmewAAQIQ2AYRpDGQJAoEIXhXCkCB5kmSAdmg" +
"VZPmgZJ8gaT4oHSeIHk8aIEnWCJiEiFgmgmYoIiYJIIE8aB8niB0pmyfIGE+ZYmDQPpjgOUg6DqY5DgYPg2mQAxqEKEJkEkFhGhGZIJA4QA2mOY4GDwOsumCe4NAACJK" +
"DoPQOFkZJThaSoZHSGYXmYCYGGKGJmEmFhmCsJoDFYag5iaSISDIAAjAkPJLhyS4JlYbA5iSeZmHqHpnkmdh+hOZx5lSOAzGgSQ+DAAAimkNIkiKTh6DSbIjmkChGhKJ" +
"JpEoVoWiSaJThyKImmSWI4ACCwNkqBhgDsahKhaJopmqComiqKpqkqEhghKYpAAIJIQmYA46jaLZrgqZo6i6a5KnaPotiZRQkiyIg6lIXw7myCwmkqMpsksNpOjObQLC" +
"KQYQiwOpOEKGAPAsZpajabZLHaXo3m4C4GlmNJNisVpFjWZZzkaao6m6S42m6O5vAuRpyjqLhLhidYxgmE5KnqPpvkudp+j+cAMAcAo+i8WIOkSPZuguZwDkKcJMDafp" +
"BE8XAengPJxEwVwWkWcYMGcGpGnGTBTBCRIwhkXwikichMhcJpJnKDIPB+NYNimAgqkucwMkcMoInKO4fC2F5ikyZw6k6c5MncPpPnOLJXAiTZJhOXxGlGdINCcSpSnS" +
"TQ3E6UY0CuYgulSdRNFcVpVnWDRnFSVBwh0axeledgNFsXJRA+HYXGaWZ2g2JxqlqdpNjcZZYmYCJDHKXJ3E2K4doux3gbE8OEF4ygtjuH6L8eAHAHgFGCO8bY2QZgZD" +
"iBwJ4FRijxE4G8DoxBxj6B6EINwTADjvBaMseYHBng1GaPMTg7wepxA4J4Rx8RjgfCYFMeoEQ6BpGqPUTob2MD2A6IQLoNAKiHAuG0WYAAJCVBCCETAHR3DMFWPgDwD2" +
"9j4E8CoV4sw7imAIIcJASggAHBeBIJw5grikCmHoSYNxWjrH2BMAoNgqAZE8O0GYEg5DgAIG8DgxwjhXGaCYZIcgnxBGSDILgmwTjKHkJMNwqgjCREoGEC4RRMifHqJc" +
"YokQ6BgEYJEUIaQOhlHIIESAECAg=");
spG2antt1->PutBackColorLevelHeader(spG2antt1->GetBackColor());
spG2antt1->PutBackground(EXG2ANTTLib::exOverviewSelResize,RGB(1,0,0));
spG2antt1->PutBackground(EXG2ANTTLib::exOverviewSelOut,RGB(240,240,240));
spG2antt1->GetChart()->PutOverviewSelBackColor(RGB(255,255,255));
spG2antt1->PutBackground(EXG2ANTTLib::exOverviewSelUnit,0x1000000);
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,6,21,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
var_Chart->PutOverviewVisible(EXG2ANTTLib::OverviewVisibleEnum(0x400 | EXG2ANTTLib::exOverviewShowSelMargins | EXG2ANTTLib::exOverviewShowMargins | EXG2ANTTLib::exOverviewShowDateTimeScaleBottom | EXG2ANTTLib::exOverviewShowAllVisible));
var_Chart->PutOverviewHeight(64);
var_Chart->PutLevelCount(2);
var_Chart->PutUnitScale(EXG2ANTTLib::exDay);
var_Chart->PutLabel(EXG2ANTTLib::exHour,L"");
var_Chart->PutLabel(EXG2ANTTLib::exMinute,L"");
var_Chart->PutLabel(EXG2ANTTLib::exSecond,L"");
var_Chart->PutAllowOverviewZoom(EXG2ANTTLib::exAlwaysZoom);
spG2antt1->GetColumns()->Add(L"Column");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Item 1"),"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,11,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("Item 2"),"Task",COleDateTime(2001,7,2,0,00,00).operator DATE(),COleDateTime(2001,7,11,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("Item 3"),"Task",COleDateTime(2001,11,2,0,00,00).operator DATE(),COleDateTime(2001,11,11,0,00,00).operator DATE(),vtMissing,vtMissing);
spG2antt1->EndUpdate();
|
2310
|
Resize the chart using the overview's selection left and right margins (blue)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutBackColorLevelHeader(spG2antt1->GetBackColor());
spG2antt1->PutBackground(EXG2ANTTLib::exOverviewSelResize,RGB(0,0,255));
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,6,21,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
var_Chart->PutOverviewVisible(EXG2ANTTLib::OverviewVisibleEnum(0x400 | EXG2ANTTLib::exOverviewShowSelMargins | EXG2ANTTLib::exOverviewShowMargins | EXG2ANTTLib::exOverviewShowDateTimeScaleBottom | EXG2ANTTLib::exOverviewShowAllVisible));
var_Chart->PutOverviewHeight(64);
var_Chart->PutLevelCount(2);
var_Chart->PutUnitScale(EXG2ANTTLib::exDay);
spG2antt1->GetColumns()->Add(L"Column");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Item 1"),"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,11,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("Item 2"),"Task",COleDateTime(2001,7,2,0,00,00).operator DATE(),COleDateTime(2001,7,11,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("Item 3"),"Task",COleDateTime(2001,11,2,0,00,00).operator DATE(),COleDateTime(2001,11,11,0,00,00).operator DATE(),vtMissing,vtMissing);
spG2antt1->EndUpdate();
|
2309
|
Resize the chart using the overview's selection left and right margins (black)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutBackColorLevelHeader(spG2antt1->GetBackColor());
spG2antt1->PutBackground(EXG2ANTTLib::exOverviewSelResize,RGB(1,0,0));
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutFirstVisibleDate(COleDateTime(2001,6,21,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,48);
var_Chart->PutOverviewVisible(EXG2ANTTLib::OverviewVisibleEnum(0x400 | EXG2ANTTLib::exOverviewShowSelMargins | EXG2ANTTLib::exOverviewShowMargins | EXG2ANTTLib::exOverviewShowDateTimeScaleBottom | EXG2ANTTLib::exOverviewShowAllVisible));
var_Chart->PutOverviewHeight(64);
var_Chart->PutLevelCount(2);
var_Chart->PutUnitScale(EXG2ANTTLib::exDay);
spG2antt1->GetColumns()->Add(L"Column");
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
var_Items->AddBar(var_Items->AddItem("Item 1"),"Task",COleDateTime(2001,1,2,0,00,00).operator DATE(),COleDateTime(2001,1,11,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("Item 2"),"Task",COleDateTime(2001,7,2,0,00,00).operator DATE(),COleDateTime(2001,7,11,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddBar(var_Items->AddItem("Item 3"),"Task",COleDateTime(2001,11,2,0,00,00).operator DATE(),COleDateTime(2001,11,11,0,00,00).operator DATE(),vtMissing,vtMissing);
spG2antt1->EndUpdate();
|
2308
|
Disable temporarily the column's sort, resize and drag and drop

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->PutOnResizeControl(EXG2ANTTLib::exResizeChart);
spG2antt1->PutSortBarVisible(VARIANT_TRUE);
spG2antt1->PutSortBarCaption(L"<fgcolor 808080><c>the header and the sort-bar are disabled (no drag and drop is allowed)");
spG2antt1->PutAllowGroupBy(VARIANT_TRUE);
spG2antt1->PutHeaderEnabled(VARIANT_FALSE);
spG2antt1->PutHeaderAppearance(EXG2ANTTLib::Etched);
((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Index")))->PutFormatColumn(L"1 index ``");
((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Pos")))->PutFormatColumn(L"1 apos ``");
((EXG2ANTTLib::IColumnPtr)(spG2antt1->GetColumns()->Add(L"Edit")))->GetEditor()->PutEditType(EXG2ANTTLib::EditType);
spG2antt1->PutGridLineStyle(EXG2ANTTLib::exGridLinesGeometric);
spG2antt1->PutDrawGridLines(EXG2ANTTLib::exVLines);
spG2antt1->PutGridLineColor(RGB(224,224,224));
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutAllowCreateBar(EXG2ANTTLib::exCreateBarAuto);
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,196);
var_Chart->PutGridLineStyle(EXG2ANTTLib::exGridLinesGeometric);
var_Chart->PutDrawGridLines(EXG2ANTTLib::exAllLines);
EXG2ANTTLib::ILevelPtr var_Level = var_Chart->GetLevel(1);
var_Level->PutDrawGridLines(VARIANT_TRUE);
var_Level->PutGridLineColor(spG2antt1->GetGridLineColor());
spG2antt1->EndUpdate();
|
2307
|
Adds a Finish-Start(FS) link (method 3)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddLink("Link1",h1,"",h2,"");
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|
2306
|
Adds a Start-Start(SS) link (method 3)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddLink("Link1",h1,"",h2,"");
var_Items->PutLink("Link1",EXG2ANTTLib::exLinkStartPos,long(0));
var_Items->PutLink("Link1",EXG2ANTTLib::exLinkEndPos,long(0));
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|
2305
|
Adds a Finish-Finish(FF) link (method 3)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddLink("Link1",h1,"",h2,"");
var_Items->PutLink("Link1",EXG2ANTTLib::exLinkStartPos,long(2));
var_Items->PutLink("Link1",EXG2ANTTLib::exLinkEndPos,long(2));
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|
2304
|
Adds a Start-Finish(SF) link (method 3)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->AddLink("Link1",h1,"",h2,"");
var_Items->PutLink("Link1",EXG2ANTTLib::exLinkStartPos,long(0));
var_Items->PutLink("Link1",EXG2ANTTLib::exLinkEndPos,long(2));
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|
2303
|
Adds a Finish-Start(FS) link (method 2)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->PutItemBar(h2,"",EXG2ANTTLib::exBarPredecessor,"1FS");
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|
2302
|
Adds a Start-Start(SS) link (method 2)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->PutItemBar(h2,"",EXG2ANTTLib::exBarPredecessor,"1SS");
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|
2301
|
Adds a Finish-Finish(FF) link (method 2)

/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXG2ANTTLib' for the library: 'ExG2antt 1.0 Control Library'
#import <ExG2antt.dll>
using namespace EXG2ANTTLib;
*/
EXG2ANTTLib::IG2anttPtr spG2antt1 = GetDlgItem(IDC_G2ANTT1)->GetControlUnknown();
spG2antt1->BeginUpdate();
spG2antt1->GetColumns()->Add(L"Name");
EXG2ANTTLib::IChartPtr var_Chart = spG2antt1->GetChart();
var_Chart->PutLevelCount(2);
var_Chart->PutFirstVisibleDate(COleDateTime(2000,12,28,0,00,00).operator DATE());
var_Chart->PutPaneWidth(VARIANT_FALSE,64);
EXG2ANTTLib::IItemsPtr var_Items = spG2antt1->GetItems();
long h1 = var_Items->AddItem("Item 1");
var_Items->AddBar(h1,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
long h2 = var_Items->AddItem("Item 2");
var_Items->AddBar(h2,"Task",COleDateTime(2001,1,3,0,00,00).operator DATE(),COleDateTime(2001,1,6,0,00,00).operator DATE(),vtMissing,vtMissing);
var_Items->PutItemBar(h2,"",EXG2ANTTLib::exBarPredecessor,"1FF");
var_Items->SchedulePDM(0,"");
spG2antt1->EndUpdate();
|