aardio语言的通用数据表维护

复制代码
import win.ui;
/*DSG{{*/
var winform = win.form(text="通用数据表维护";right=617;bottom=427;bgcolor=15780518)
winform.add(
buttonAdd={cls="button";text="增加空行";left=469;top=40;right=564;bottom=80;flat=1;z=2};
buttonDel={cls="button";text="选择删除";left=469;top=240;right=564;bottom=280;flat=1;z=3};
buttonDown={cls="button";text="选择下移";left=469;top=190;right=564;bottom=230;flat=1;z=11};
buttonEdit={cls="button";text="双击修改";left=469;top=90;right=564;bottom=130;disabled=1;flat=1;z=12};
buttonSave={cls="button";text="保存";left=469;top=290;right=564;bottom=330;flat=1;z=4};
buttonUp={cls="button";text="选择上移";left=469;top=140;right=564;bottom=180;flat=1;z=10};
comboboxFile={cls="combobox";left=135;top=349;right=395;bottom=370;edge=1;items={};mode="dropdown";z=8};
comboboxMenu={cls="combobox";left=136;top=378;right=272;bottom=399;edge=1;items={};mode="dropdown";z=6};
listbox={cls="listbox";left=52;top=39;right=455;bottom=340;ah=1;aw=1;border=1;dt=1;items={};msel=1;vscroll=1;z=1};
static={cls="static";text="通用数据表维护";left=53;top=6;right=204;bottom=29;color=32768;dt=1;font=LOGFONT(h=-19;name='微软雅黑';weight=700);transparent=1;z=5};
staticFile={cls="static";text="请选择文件";left=53;top=353;right=127;bottom=375;transparent=1;z=9};
staticKey={cls="static";text="请选择类型";left=54;top=382;right=128;bottom=404;transparent=1;z=7}
)
/*}}*/

import console;
import fsys;

//列表编辑框
import win.ui.listEdit;
var listEdit = win.ui.listEdit(winform.listbox);

//全局变量
homeDir = io.fullpath("."); //当前主目录
winform.path = homeDir;
if _STUDIO_INVOKED winform.path = "D:\1_aardio"; //开发者调试路径
menuFile,menuTab,fileType = null,null;

//文件
winform.configPath = winform.path++"\config";
var fileList,dirList = fsys.list(winform.configPath,,{"*.*"});
for(i=1;#fileList;1){
    winform.comboboxFile.add(fileList[fileList[i]]);
}

//初始化
winform.comboboxFile.selIndex = 1;
menuTab = eval(string.load(fileList[fileList[1]]));
winform.comboboxMenu.clear();
for k,v in menuTab{
    winform.comboboxMenu.add(k);
}

//选择文件
winform.comboboxFile.onOk = function(){ 
    if !#winform.comboboxFile.selText return ;
    menuFile = winform.comboboxFile.selText
    menuTab = eval(string.load(menuFile));
    winform.comboboxMenu.clear();
    for k,v in menuTab{
        winform.comboboxMenu.add(k);
    }
}

//选择类型
winform.comboboxMenu.onOk = function(){ 
    if !#winform.comboboxMenu.selText return ;
    fileType = winform.comboboxMenu.selText
    if type(menuTab[fileType])="table" winform.listbox.items = menuTab[fileType];
}

//单击事件
winform.listbox.onSelChange = function(){
    if !winform.listbox.selText return ;
}

//增加行
winform.buttonAdd.oncommand = function(id,event){
    if !#winform.listbox.items return ;
    winform.listbox.add("-");
    winform.listbox.update();
    table.push(menuTab[fileType],"-"); //向上向下移动
    winform.listbox.ensureVisible(#winform.listbox.items)
    
}

//移动
winform.lineMove = function(index,tmpPos){
    var text = menuTab[fileType][tmpPos]
    menuTab[fileType][tmpPos] = menuTab[fileType][index]
    menuTab[fileType][index] = text;
    winform.listbox.items = menuTab[fileType];
    winform.listbox.setSelected(tmpPos);
}

//向上
winform.buttonUp.oncommand = function(id,event){
    if !#winform.listbox.items return ;
    index = winform.listbox.selIndex; //当前行
    if index>1 winform.lineMove(index,index-1)
    winform.listbox.ensureVisible(); //行号或焦点
}

//向下
winform.buttonDown.oncommand = function(id,event){
    if !#winform.listbox.items return ;
    index = winform.listbox.selIndex; //当前行
    if index<#winform.listbox.items winform.lineMove(index,index+1)
    winform.listbox.ensureVisible(); //行号或焦点
}

//删除行
winform.buttonDel.oncommand = function(id,event){
    if !#winform.listbox.items return ;
    for(i=#winform.listbox.items;1;-1){
        if(winform.listbox.getSelected(i)){
            winform.listbox.delete(i)
            //table.remove(menuTab[fileType],i);
            menuTab[fileType] = winform.listbox.items;
        }
    }
}

//修改行
winform.listbox.onSelChange = function(){
    menuTab[fileType] = winform.listbox.items;
}

//保存数据表
winform.saveFile = function(){
    if !#winform.listbox.items return ;
    menuTab[fileType] = winform.listbox.items;
    string.save(menuFile,table.tostring(menuTab));
    winform.msgbox("完成")
}

//保存
winform.buttonSave.oncommand = function(id,event){
    winform.saveFile()
}


winform.show();
win.loopMessage();
相关推荐
似水এ᭄往昔10 分钟前
【C++】--封装红⿊树实现mymap和myset
开发语言·数据结构·c++·算法·stl
charlie11451419114 分钟前
嵌入式现代C++教程:C++98——从C向C++的演化(3)
c语言·开发语言·c++·笔记·学习·嵌入式
TAEHENGV20 分钟前
创建目标模块 Cordova 与 OpenHarmony 混合开发实战
android·java·开发语言
程序员zgh21 分钟前
C语言 指针用法与区别(指针常量、常量指针、指针函数、函数指针、二级指针)
c语言·开发语言·jvm·c++
是一个Bug33 分钟前
如何阅读JDK源码?
java·开发语言
石头dhf37 分钟前
大模型配置
开发语言·python
inferno42 分钟前
JavaScript 基础
开发语言·前端·javascript
派大鑫wink1 小时前
【Day15】集合框架(三):Map 接口(HashMap 底层原理 + 实战)
java·开发语言
派大鑫wink1 小时前
【Day14】集合框架(二):Set 接口(HashSet、TreeSet)去重与排序
java·开发语言
sort浅忆1 小时前
deeptest执行接口脚本,添加python脚本断言
开发语言·python