请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 1174|回复: 7

树形机构的下拉框

[复制链接]

38

主题

124

帖子

319

积分
交易币
-1

编程二段

Rank: 3Rank: 3

发表于 2015-8-24 22:40:12 | 显示全部楼层 |阅读模式
本帖最后由 aifuqiang 于 2015-9-16 18:12 编辑



数据库:

[aardio] 纯文本查看 复制代码
import win.ui;
import sqlite
import console;
/*DSG{{*/
mainForm = ..win.form(text="aardio Form";right=599;bottom=399)
mainForm.add(
combobox={cls="combobox";left=32;top=181;right=373;bottom=207;edge=1;items={};mode="dropdown";z=1}
)
/*}}*/
console.open();
var db = sqlite("/test.db");
var menus = {};
var index_id_map = {};
var index = 0;

db.exec( "CREATE TABLE IF NOT EXISTS @tablename(id, name, pid, code,sort);",{
    tablename = "menus";
} ) 

getAllDatas = function(){
   menus = db.getTable("select * from menus where 1=1");        
}


getChild = function(id){
        var tab = {};
        var childidstr = "";
        for(i=1;#menus;1){
                var row = menus[i];
            if(row.pid == id){
                    tab[#tab+1] = row;
                    childidstr+=row.id+",";
            }
        }
        return tab,childidstr; 
}

getAllChild = function(code){
        var childidstr = "";
        for(i=1;#menus;1){
                var row = menus[i];
            if(string.startWith(row.code,code)){
                    childidstr+=row.id+",";
            }
        }
        return childidstr; 
}

getPrefix  = function(lev,text){
        if(lev <= 1){
                return text; 
        }
        var str  = "";
        for(i=1;lev;1){
                str = string.concat(str,"     ");
        }
        str = string.concat(str,"├" , text);
        str = string.sub(str,6,#str);
        return str;
}

var leval = 0;
initcombobox = function(id){
    leval++;
    var tab = getChild(id);
    for(i=1;#tab;1){
        var row = tab[i];
        index++;
        index_id_map[index] = row;
        mainForm.combobox.add(getPrefix(leval,row.name));
        var childs = getChild(row.id);
        if(#childs>0){
            initcombobox(row.id);
            leval--;
        }
    }
}

init = function(){
        getAllDatas();
        initcombobox(0);
}

init();

mainForm.combobox.oncommand = function(id,event){
 if(event == 0x1/*_CBN_SELCHANGE*/){
        var cindex = mainForm.combobox.selIndex;
        if(index_id_map[cindex] != null){
                var childids = getAllChild(index_id_map[cindex].code);
            console.log("删除【"+index_id_map[cindex].name+"】节点,以及子节点:delete from menus where id in ( "+childids + "0)");
        }
  }        
}

mainForm.show() 
return win.loopMessage(); 






db.zip

500 Bytes, 阅读权限: 90, 下载次数: 5, 下载积分: A币 -1

回复

使用道具 举报

2

主题

49

帖子

776

积分
交易币
0

编程三段

Rank: 4

发表于 2015-9-1 00:12:34 | 显示全部楼层
终于进来了,谢谢分享
回复 支持 反对

使用道具 举报

38

主题

124

帖子

319

积分
交易币
-1

编程二段

Rank: 3Rank: 3

 楼主| 发表于 2015-9-1 08:36:12 | 显示全部楼层
Linn 发表于 2015-9-1 00:12
终于进来了,谢谢分享

好厉害。我还差1000多分
回复 支持 反对

使用道具 举报

38

主题

124

帖子

319

积分
交易币
-1

编程二段

Rank: 3Rank: 3

 楼主| 发表于 2015-9-16 18:12:50 | 显示全部楼层
删除权限了~
回复 支持 反对

使用道具 举报

8

主题

33

帖子

65

积分
交易币
0

编程一段

Rank: 2

发表于 2016-1-11 22:50:05 | 显示全部楼层
本帖最后由 StarBalll 于 2016-1-11 23:00 编辑

配合数据看一下就懂了 配置数据看一下就懂了.png
回复 支持 反对

使用道具 举报

7

主题

39

帖子

96

积分
交易币
0

编程一段

Rank: 2

发表于 2016-5-3 09:15:41 | 显示全部楼层
500 Bytes, 阅读权限: 90, 下载次数: 5, 下载积分: A币
回复 支持 反对

使用道具 举报

7

主题

39

帖子

96

积分
交易币
0

编程一段

Rank: 2

发表于 2016-5-3 09:17:31 | 显示全部楼层
本帖最后由 sandorn 于 2016-5-13 13:59 编辑

附件没能下载,权限没够
回复 支持 反对

使用道具 举报

0

主题

2

帖子

4

积分
交易币
0

新手入门

Rank: 1

发表于 2019-5-17 11:35:02 | 显示全部楼层
为什么没法下载啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



GMT+8, 2019-6-17 01:59 , Processed in 0.093750 second(s), 29 queries .

© 2001-2011 Powered by Discuz! X3.2.

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