在表单中使用树控件

 

    在表单中可以使用树控件,树的数据以id, pid 的形式进行组织。所以需要指定树根的数据,它做做为第一级数据的pid,如果树根的数据是空字符串'',那么可以不用定义。

   树的数据,以一个SQL语句来指定,它可以是一个简单的SQL语句,也可以是一个表达式,而表达式的结果是一个SQL语句

注意

示例1

select id, pid ,name as caption , id as value from oa_mygroup where userid=0

 

示例2:用一个表达式来定义

" select id, pid ,name as caption , id as value from oa_mygroup where userid=0 "

示例3:用脚本函数返回值来定义

buildSQL();

其中 buildSQL是表单脚本中定义,类似如下 :

function buildSQL()
{
return " select id, pid ,name as caption , id as value from oa_mygroup where userid=0 ";

}

可以根据需要组织更复杂的SQL语句

 

高级应用:

上述示例都是单棵简单的树有时可能需要在一个树控制中显示多个树结构的数据,比如即显示部门树,也显示部门人员树,可以进行切换。定义方法如下 :

1 在树根标题中定义多个组: 部门结构;部门人员 ,如图

注意多个组用英文分号分开。

2 SQL定义为一个函数 buildSQL()

3 在脚本中定义如下函数

(数据库是oracle ,如果您的数据库是sql server 请将其中的 ||替换成+ ,把 varchar2 替换成 varchar )

  
function buildSQL()
{
	 

	var tree=book.getWorkSheet(0).getBrick("mytree");  

	var group=tree.getCurrentGroup();
	
	//alert( group);

	if( group=='部门结构') return "select 'group-'||cast(id as varchar2(30)) as id , 'group-'||cast(pid as varchar2(30)) as pid,name as caption , "+
					" 'group-'||cast(id as varchar2(30))  as value from oa_mygroup where userid=0 ";

	if( group=='部门人员') return "select 'group-'||cast(id as varchar2(30)) as id , 'group-'||cast(pid as varchar2(30)) as pid ,name as caption ,"+
					"'group-'||cast(id as varchar2(30)) as value from oa_mygroup where userid=0  "+
					" union all select 'user-'||cast(id as varchar2(30)) as id , 'group-'||cast(groupid as varchar2(30)) as pid ,"+
					" name as caption , 'user-'||cast(id as varchar2(30)) as value from news_user ";


	return ""; 
 
}
 
 

提示:点击树控制工具栏第三个按钮可以切换树的数据