These are method to create organization hierarchy chart in Axapta
public class FormRun extends ObjectRun
{
CCFormTreeDatasource treeDatasource;
}
void InsertinTemp()
{
TmpOrganizationChart2 TmpOrganizationChart2_1;
_OrganizationChart2 _OrganizationChart2_1;
;
/*hile select _OrganizationChart2_1
{
while select forupdate TmpOrganizationChart2_1 where TmpOrganizationChart2_1.WareHouseCode==_OrganizationChart2_1.WareHouseCode
{
TmpOrganizationChart2_1.delete();
}
}*/
Delete_from TmpOrganizationChart2_1;
While select _OrganizationChart2_1
{
TmpOrganizationChart2_1.WareHouseCode=_OrganizationChart2_1.WareHouseCode;
TmpOrganizationChart2_1.ParentWareHouseCode=_OrganizationChart2_1.ParentWareHouseCode;
TmpOrganizationChart2_1.Office_type=_OrganizationChart2_1.Office_type;
TmpOrganizationChart2_1.Name=InventLocation::find(_OrganizationChart2_1.WareHouseCode).Name;
TmpOrganizationChart2_1.insert();
}
}
public void init()
{
super();
// this.query().dataSourceNo(1).clearDynalinks();
element.InsertinTemp();
}
int task(int p1)
{
int ret;
;
ret = super(p1);
if (p1 == 288) // Enter
element.exit();
Return ret;
}
public void run()
{
FormControl hostControl;
;
super();
// initialize tree
this.InitTree();
// if this form was called as lookup, then expand tree at value of calling host control
hostControl = element.selectTarget();
if (hostControl)
this.ExpandAndSelect( hostControl.valueStr() );
}
void exit()
{
;
// on exit, return data of currently selected node
element.closeSelect(treedatasource.selectedData());
}
int ExpandAndSelectRec(str 10 ChildId)
{
int node;
Irrigation_OrganizationChart2 table;
str IdTree;
;
// recursively search for parent Ids to be expanded first
select firstonly table where table.WareHouseCode == ChildId;
if (table) {
node = this.ExpandAndSelectRec(table.ParentWareHouseCode);
// expand found node
tree.expand(node, FormTreeExpand::EXPAND);
// search for my node starting from parent
IdTree = tree.getItem(node).data();
while (ChildId != IdTree)
{
node = tree.getNextVisible(node);
IdTree = tree.getItem(node).data();
}
} else {
// if no parent was found, then we reached the root node
node = tree.getRoot();
}
// select and return found node
tree.select(node);
return node;
}
void ExpandAndSelect(str ChildId)
{
tree.lockWindowUpdate(true);
this.ExpandAndSelectRec(ChildId);
tree.lockWindowUpdate(false);
}
void InitTree()
{
treeDatasource = new CCFormTreeDatasource(TmpOrganizationChart2_DS,tree,
fieldnum(TmpOrganizationChart2,WarehouseCode),
fieldnum(TmpOrganizationChart2,ParentWarehouseCode),
fieldnum(TmpOrganizationChart2,Name),
true, false
);
treeDatasource.initRoot("Organization",'',0);
}
//Methods under treeview tabpage
public void pageActivated()
{
;
this.ViewTreeView();
super();
}
public int mouseDblClick(int _x, int _y, int _button, boolean _Ctrl, boolean _Shift)
{
int ret;
ret = super(_x, _y, _button, _Ctrl, _Shift);
return ret;
}
public int mouseUp(int _x, int _y, int _button, boolean _Ctrl, boolean _Shift)
{
int ret;
ret = super(_x, _y, _button, _Ctrl, _Shift);
return ret;
}
Methods under Tree
boolean expanding(int idx, FormTreeExpand action, anytype data)
{
boolean ret;
;
ret = super(idx, action, data);
treeDatasource.expanding(idx, action, data); // expand node
Return ret;
}
public void selectionChanged(FormTreeItem _OldItem, FormTreeItem _NewItem, FormTreeSelect _how)
{
super(_OldItem, _NewItem, _how);
}