[ Skill ] Form 高级用法 Tree Table
https://www.cnblogs.com/yeungchie/
code
1. 创建一个 tree 作为主 tree
mainTree = hiCreateTree('mainTree)
2. 创建两个 tree item
treeItem1 = hiCreateTreeItem('treeItem1 list("FEOL"))
treeItem2 = hiCreateTreeItem('treeItem2 list("BEOL"))
- 将这两个 tree item 追加到主 tree (mainTree) 中
这一步是 mainTree \(\supset\) treeItem
hiTreeAppendItem(mainTree treeItem1)
hiTreeAppendItem(mainTree treeItem2)
3. 又创建两个 tree 作为子 tree
subTree1 = hiCreateTree('subTree1)
subTree2 = hiCreateTree('subTree2)
- 分别将这两个子 tree 插入到对应的 tree item (treeItem1 treeItem2) 中
这一步是 treeItem \(\supset\) subTree
hiItemInsertTree(treeItem1 subTree1)
hiItemInsertTree(treeItem2 subTree2)
4. 双叒创建一些 tree item
这里处理 subTree \(\supset\) subTreeItem
tree 和 item 的关系理清之后,合并起来写更简洁
hiTreeAppendItem(subTree1
; 创建 tree item 的同时追加到对应的 tree 中
hiCreateTreeItem('subTreeItem11 list( "Active" 3 0 nil ))
)
hiTreeAppendItem(subTree1
hiCreateTreeItem('subTreeItem12 list( "POLY" 13 0 nil ))
)
hiTreeAppendItem(subTree2
hiCreateTreeItem('subTreeItem21 list( "METAL1" 16 0 0.8 ))
)
hiTreeAppendItem(subTree2
hiCreateTreeItem('subTreeItem22 list( "METAL2" 18 0 nil ))
)
hiTreeAppendItem(subTree2
hiCreateTreeItem('subTreeItem23 list( "METAL3" 28 0 nil ))
)
5. 创建 tree table
treeField = hiCreateTreeTable(
?name 'treeField
?title "Process information"
?titleAlignment 'center
?headers list(
; list( 标题 宽度 对齐 数据类型 )
list("Layer Name" 125 'left 'string )
list("GDS Number" 85 'center 'int )
list("Data Type" 85 'center 'int )
list("Thickness " 80 'right 'float3 )
)
?choice mainTree ; 将主 tree 赋值给 ?choice
?callback "treeCB"
)
6. 创建 form
form = hiCreateAppForm(
?name 'form
?formTitle "Process"
?fields list(
list(treeField 0:0 380:200 25)
)
?initialSize 500:250
)
7. 创建 callback 函数
procedure(treeCB(field itemSymList)
foreach(sym itemSymList
println(hiGetTreeItemDescription(eval(sym)))
)
)
需要注意,如果 callback 以 lambda 形式定义的,则输入的参数有三个:fieldSym form itemSymList
8. 最后把这个 form 显示出来
hiDisplayForm(form)
show

相关函数
创建
hiCreateTreeTable创建 tablehiCreateTree创建 treehiCreateTreeItem创建 item
编辑
hiItemInsertTree向 item 插入一个 treehiItemRemoveTree移除 item 下的 treehiTreeAppendItem对 tree 向后追加 itemhiTreeAppendItems
hiTreePrependItem对 tree 项后追加 itemhiTreePrependItems
hiTreeRemoveItem移除 tree 下的 itemhiTreeRemoveItemshiTreeRemoveAllItems
获取
hiTreeTableGetItems获取 table 中的 itemshiTreeTableGetItemCount获取 table 中的 items 的数量hiTreeTableGetSelectedItems获取 table 中选中的 itemshiTreeTableGetSelectedItemCount获取当前 table 中选中的 items 数量hiGetTree获取 item 下的 treehiGetTreeItems获取 tree 下的 itemshiGetTreeParent获取 tree 的父 itemhiGetTreeItemParent获取 item 的父 treehiGetTreeItemDescription获取 item 的描述( row 的内容 )hiSetTreeItemDescription修改上述
hiGetTreeItemIcons获取 item 的图标配置hiSetTreeItemIcons修改上述
控制
hiTreeTableSelectItem选中 table 中的 itemhiTreeTableSelectItemshiTreeTableSelectAllItems
hiTreeTableDeselectItem取消选中 table 中的 itemhiTreeTableDeselectItemshiTreeTableDeselectAllItems
hiExpandTreeItem展开hiCollapseTreeItem折叠

浙公网安备 33010602011771号