打印本文 打印本文 关闭窗口 关闭窗口
Oracle Form Builder中使用树的心得
作者:武汉SEO闵涛  文章来源:敏韬网  点击数3575  更新时间:2009/4/22 22:05:04  文章录入:mintao  责任编辑:mintao

一、树的简介

Developer 6.0以上版本提供了hierarchy tree(层次树)的概念,htree控件非常方便,只需要少量的编程即可实现显示层次结构的目的。

 

树的特有属性中如下几个较为重要:

l         多项选择(Multi-Selection):是否允许一次选中树的多个节点。如果不允许,那么              选中第二个节点时,第一个被选中的节点会取消选择。

l         记录组(Record Group):指定生成树的记录组的名字。

 

简单介绍一下跟树相关的触发子(Built-in):

l         FUNCTION GET_TREE_NODE_PROPERTY (item_name VARCHAR2, node NODE,   property NUMBER);

功能:取得树节点的属性

其中property有如下几种:

NODE_STATE:EXPANDED_NODE(扩展节点)

COLLAPSED_NODE(收缩节点)

LEAF_NODE(叶节点)--注:不能展开或收缩

NODE_DEPTH:既节点在树中的层级。

NODE_LABEL:节点的显示文本

NODE_ICON:节点的图标

NODE_VALUE:节点的值。

例子:

DECLARE

   htree         ITEM;

   node_value    VARCHAR2(100);

BEGIN

   -- 得到树

   htree := Find_Item(''''tree_block.htree3'''');

   -- 得到当前选中节点的值

   node_value := Ftree.Get_Tree_Node_Property(htree, :SYSTEM.TRIGGER_NODE, Ftree.NODE_VALUE);

   ...

END;

注释:其中: SYSTEM.TRIGGER_NODE指当前选中的树节点。

l         FUNCTION GET_TREE_PROPERTY (item_name VARCHAR2,property NUMBER);

功能:取得树的属性

其中property有如下几种:

DATASOURCE

RECORD_GROUP

QUERY_TEXT

NODE_COUNT:返回树中节点的个数。

SELECTION_COUNT

ALLOW_EMPTY_BRANCHES

ALLOW_MULTI-SELECT

l         PROCEDURE SET_TREE_NODE_PROPERTY (item_name VARCHAR2,node FTREE.NODE,property NUMBER,value VARCHAR2);

功能:设置树节点的属性

l         PROCEDURE SET_TREE_PROPERTY (item_name VARCHAR2,property NUMBER, value VARCHAR2);

PROCEDURE SET_TREE_PROPERTY (item_name VARCHAR2,property NUMBER, value RECORDGROUP);

功能:设置树的属性

l         PROCEDURE POPULATE_TREE (item_name VARCHAR2);

功能:清空树中已有数据,并根据记录组或数据查询重新生成树。

l         PROCEDURE ADD_TREE_DATA (item_name VARCHAR2,node FTREE.NODE, offset_type NUMBER,offset NUMBER,data_source NUMBER,data VARCHAR2);

功能:在指定节点下添加树中数据

注:使用比较麻烦。

l         FUNCTION FIND_TREE_NODE(item_name VARCHAR2,earch_string VARCHAR2,   search_type NUMBER,search_by NUMBER,search_root NODE,start_point NODE);

功能:找到显示文本或值符合search_string的节点。

参数:

search_type:FIND_NEXT

            FIND_NEXT_CHILD

Search_by:NODE_LABEL

          NODE_VALUE

Search_root:查询的根节点,一般是Ftree.ROOT_NODE

Start_point:查找的开始节点,一般是Ftree.ROOT_NODE

l         FUNCTION ADD_TREE_NODE(item_name VARCHAR2,node FTREE.NODE,   offset_type NUMBER,offset NUMBER,state NUMBER,label VARCHAR2, icon VARCHAR2,value VARCHAR2);

功能:添加树节点。

Offset_type:指定节点的分支类型,PARENT_OFFSET和SIBLING_OFFSET

Offset:指定新节点的位置,

PARENT_OFFSET:1..N

                         LAST_CHILD

SIBLING_OFFSET:NEXT_NODE

                         PREVIOUS_NODE

State:EXPANDED_NODE(扩展节点)

COLLAPSED_NODE(收缩节点)

LEAF_NODE(叶节点)

l         PROCEDURE DELETE_TREE_NODE(item_name VARCHAR2,node NODE);

功能:删除树节点

l         FUNCTION GET_TREE_NODE_PARENT(item_name VARCHAR2,node NODE);

功能:得到指定节点的父节点。

l         FUNCTION GET_TREE_SELECTION(item_name VARCHAR2,selection NUMBER);

功能:得到处于选中状态的节点。

l    &

[1] [2] [3] [4]  下一页

打印本文 打印本文 关闭窗口 关闭窗口