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();
相关推荐
李妍.31 分钟前
02Numpy基础(上)
开发语言·python
TheBestRucy33 分钟前
Python 九阳神功之贰:面向对象(下)
开发语言·python
AI_小站1 小时前
刚面完百度的 Agent 开发岗,我才发现:世界就是个巨大的草台班子
java·开发语言·人工智能·spring·百度·langchain
felixking2 小时前
C++20 协程
开发语言·c++·协程
Zane1994123 小时前
CAS 与原子类:Java 如何实现无锁编程
java·开发语言
码农颜4 小时前
6.3 主函数流程剖析
开发语言·php
TheBestRucy5 小时前
Python 九阳神功:从零筑基到线程飞升
服务器·开发语言·网络·人工智能·python
研☆香5 小时前
聊一聊前端的常见字 关键字
开发语言·前端·javascript
草莓橙子碗5 小时前
Claude 使用指南
开发语言·python
longxiaozhang66 小时前
C# Array类:数组其实没那么难
开发语言·c#