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();
相关推荐
黑子哥呢?20 分钟前
安装Bash completion解决tab不能补全问题
开发语言·bash
青龙小码农25 分钟前
yum报错:bash: /usr/bin/yum: /usr/bin/python: 坏的解释器:没有那个文件或目录
开发语言·python·bash·liunx
大数据追光猿31 分钟前
Python应用算法之贪心算法理解和实践
大数据·开发语言·人工智能·python·深度学习·算法·贪心算法
彳卸风1 小时前
Unable to parse timestamp value: “20250220135445“, expected format is
开发语言
dorabighead2 小时前
JavaScript 高级程序设计 读书笔记(第三章)
开发语言·javascript·ecmascript
风与沙的较量丶2 小时前
Java中的局部变量和成员变量在内存中的位置
java·开发语言
水煮庄周鱼鱼2 小时前
C# 入门简介
开发语言·c#
编程星空3 小时前
css主题色修改后会多出一个css吗?css怎么定义变量?
开发语言·后端·rust
软件黑马王子3 小时前
Unity游戏制作中的C#基础(6)方法和类的知识点深度剖析
开发语言·游戏·unity·c#
Logintern093 小时前
使用VS Code进行Python编程的一些快捷方式
开发语言·python