天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2596|回复: 0

[Iscript] 下拉框控件实现树形用户选择【表单-下拉选择框实现树形用户结构、树性视图】

[复制链接]
bess 发表于 2012-7-16 15:30:57 | 显示全部楼层 |阅读模式
Q:下拉框控件实现树形用户选择
A:
根据直接领导关系产生的,用了递归函数。 由于在固定资产管理中经常要将资产分类,特做了这个函数,共享之。
效果如图:
1207161524aeae7574764007be.jpg
如下代码直接贴进 下拉框选项脚本即可
代码如下:
  1. function createLayeredCategory(domainid,opts,id,level)
  2. {
  3.         var sql="SELECT a.id item_id,a.NAME item_name,'"+getDomainid()+"' domainid,COUNT(*) cnt FROM obpm.t_user a left join obpm.t_user b ";
  4.         sql=sql+"on a.id=b.superior where a.superior='"+id+"' GROUP BY a.id,a.name ORDER BY cnt";
  5.         var datas = queryBySQL(sql);
  6.         var rec=null;var str="|"; var id="";
  7.         for(var it = datas.iterator();it.hasNext();){
  8.                 rec = it.next();str="";
  9.                 if(level>1 && level<3) str = str +"&"+"n"+"b"+"s"+"p"+";"+"&"+"n"+"b"+"s"+"p"+";"+"&"+"n"+"b"+"s"+"p"+";"+"&"+"n"+"b"+"s"+"p"+";"+"|--";
  10.                 else if(level>2){        
  11.                         str = "";        
  12.                         for (var count=0;count<level-1;count++) {
  13.                                 str = str+"&"+"n"+"b"+"s"+"p"+";"+"&"+"n"+"b"+"s"+"p"+";"+"&"+"n"+"b"+"s"+"p"+";"+"&"+"n"+"b"+"s"+"p"+";"+"|";
  14.                         }
  15.                         str += "--";
  16.                 }else str="|--";               
  17.                 str += rec.getItemValueAsString("name");
  18.                 id = rec.getItemValueAsString("id");
  19.                 opts.add(str,id); //println(id+str);
  20.                 createLayeredCategory(domainid,opts,id,level+1);
  21.         }        
  22. }
  23. var domainid = getDomainid();
  24. var datas  =queryBySQL("SELECT id item_id,superior item_idp,NAME item_name,'" + domainid +"' domainid FROM obpm.t_user where superior is null or superior=''");
  25. var opts=$TOOLS.createOptions();
  26. for(var iter = datas.iterator();iter.hasNext();){
  27.         doc = iter.next();
  28.         opts.add(doc.getItemValueAsString("name"), doc.getItemValueAsString("id"));
  29.         createLayeredCategory(domainid,opts,doc.getItemValueAsString("id"),1);
  30. }

  31. opts;

复制代码

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 07:34

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表