【提问】这种类型的“查找”怎么写才行?-综合问答论坛-aardio-阿甘软件

已解决这种类型的“查找”怎么写才行?

敬爱的老师,您好!我是个Aardio新手,这段代码点击查找按钮就出错.具体情况如下:第一张图是一个listview,第二列,即姓名列的数据由TNM这三个大写字母及每个字母后面再分别加一个下标组成(如下图示),这些下标是数字或者单词“any”。我想实现的功能是:在Edit1文本框里输入数据,点击查找按钮后,从listview的第二列的数据里查找与Edit1相同的数据,并把查找到的数据的同一行的第三列(即部门列)的数据返回到Edit2中。listview的第二列的数据里T、N、M的某个字母的下标如果为any,那么,Edit1的对应的字母的任何下标都视为和它相同。比方,第二张图里,Edit1输入了T5N1M1,listview里TanyN1M1就是要查找的值(any的意思就是任意值,即T5=Tany,当然,剩下的N1M1两者更没问题了,即T5N1M1=TanyN1M1),于是,返回同一行的下一列即“III级”到Edit2文本框里,即第二张图示的效果。

 

图片[1]-【提问】这种类型的“查找”怎么写才行?-综合问答论坛-aardio-阿甘软件

图片[2]-【提问】这种类型的“查找”怎么写才行?-综合问答论坛-aardio-阿甘软件

 

import win.ui;
/*DSG{{*/
var Winform = win.form(text="aardio form";right=392;bottom=394)
Winform.add(
button2={cls="button";text="查找";left=27;top=293;right=107;bottom=319;z=2};
edit1={cls="edit";left=123;top=296;right=177;bottom=319;edge=1;z=5};
edit2={cls="edit";left=263;top=293;right=361;bottom=319;edge=1;z=3};
listview={cls="listview";left=24;top=32;right=365;bottom=287;edge=1;z=1};
static={cls="static";text="结果";left=220;top=296;right=278;bottom=319;transparent=1;z=4}
)
/*}}*/

//设置listviewcheckbox扩展属性
Winform.listview.setExtended(0x4/*_LVS_EX_CHECKBOXES*/)


Winform.listview.insertColumn("序号",60,1)
Winform.listview.insertColumn("姓名",100,2)
Winform.listview.insertColumn("部门",100,3)

var tablvData={
        {1;"T1N0M0";"I级"};
        {2;"T2N1M0";"II级"};
        {3;"TanyN1M1";"III级"};
        {4;"T3NanyM2";"IV级"};
        {5;"TanyNanyM3";"V级"};
        
}
Winform.listview.items=tablvData

// 添加查找按钮的点击事件
Winform.button2.oncommand = function(id,event){
    var searchText = Winform.edit1.text
    var lvcount = Winform.listview.count
    for(i=1;lvcount;1){
        var itemText = Winform.listview.getItemText(i,2)
        var itemTextSplit = itemText.split("N")
        var searchTextSplit = searchText.split("N")
        if((itemTextSplit[0].includes(searchTextSplit[0]) || itemTextSplit[0].includes("any")) && 
           (itemTextSplit[1].includes(searchTextSplit[1]) || itemTextSplit[1].includes("any"))){
            var resultText = Winform.listview.getItemText(i,3)
            Winform.edit2.text = resultText
            break
        }
    }
}

Winform.show() 
win.loopMessage();
请登录后发表评论

    • rmajly的头像-阿甘软件rmajly徽章-22年人气达人-阿甘软件等级-LV3-阿甘软件作者1
    • 阿甘的头像-阿甘软件阿甘徽章-签到达人-阿甘软件等级-LV6-阿甘软件超级版主0
      • 阿甘的头像-阿甘软件阿甘徽章-签到达人-阿甘软件等级-LV6-阿甘软件超级版主0
    • 阿甘的头像-阿甘软件阿甘徽章-签到达人-阿甘软件等级-LV6-阿甘软件超级版主0
      • 阿甘的头像-阿甘软件阿甘徽章-签到达人-阿甘软件等级-LV6-阿甘软件超级版主0
        • 阿甘的头像-阿甘软件阿甘徽章-签到达人-阿甘软件等级-LV6-阿甘软件超级版主0