Sınıflandırma yapılması istendiğinde TreeControl kullanılabilir.
Treecontrol kullanırken dikkat edilmesi gereken kontrolü eklerken hangi düğüm (node) ün altında yer alacağı bilgisine hakim olmaktır.
Bu kontrolü sağlamak için TreeItemIdx tipli değişken tanımlıyoruz ve bu değişkeni ağaca yeni kırılım eklerken hangi kontrolün altında yer alacağını belirtmek için kullanıyoruz.
Aşağıdaki kodda madde kartı içerisinde dolaşıp madde grubu bazında maddeleri listeleyen bir ağaç yapısı oluşturuyoruz.
Kırılımların daha iyi anlaşılabilmesi için kırılımlara birer resim atıyoruz.
Resimler için ImageListAllp_Help sınıfındaki açık klasörü kök öğe için, kapalı kitabı madde grubu için, açık kitabıda bu maddeler için kullanıyoruz.
#resAppl
InventTable inventTable;
TreeItemIdx item,itemGroup,root;
ItemGroupId oldItemGroup;
ImageRes imageResItem,imageResGroup,imageResRoot;
ImageListAppl_Help imageList = new ImageListAppl_Help();
;
imageResRoot = imageList.image(#ImageFolderOpen);
imageResGroup = imageList.image(#ImageHelpTOCBookClosed);
imageResItem = imageList.image(#ImageHelpTOCBookOpen);
formTreeControl.setImagelist(imageList.imageList());
root = SysFormTreeControl::addTreeItem(formTreeControl,"Maddeler",FormTreeAdd::Root,"Maddeler",imageResRoot);
while select inventTable order by ItemGroupId
{
if (!oldItemGroup)
{
oldItemGroup = inventTable.ItemGroupId;
itemGroup = SysFormTreeControl::addTreeItem(formTreeControl,inventTable.ItemGroupId,root,inventTable.ItemGroupId,imageResGroup);
}
if (oldItemGroup != inventTable.ItemGroupId)
{
SysFormTreeControl::expandTree(formTreeControl,itemGroup);
oldItemGroup = inventTable.ItemGroupId;
itemGroup = SysFormTreeControl::addTreeItem(formTreeControl,inventTable.ItemGroupId,root,inventTable.ItemGroupId,imageResGroup);
}
item = SysFormTreeControl::addTreeItem(formTreeControl,inventTable.ItemId,itemGroup,inventTable.ItemId,imageResItem);
}
SysFormTreeControl::expandTree(formTreeControl,formTreeControl.getRoot(),1);
Hepsi bu bol AX lı günler.
Alper.
Hiç yorum yok:
Yorum Gönder