aardio - 【库】FlexCell表格组件

一、简介

FlexCell是一款灵活、易用的表格和报表控件。

aardio - 【库】FlexCell表格组件_第1张图片

与其他表格组件相比,亮点如下:

1、提供了虚表功能,可以快速的读写表格数据。如上图,显示99999条记录,速度非常快。

2、提供了单元格自绘功能,可以让表格内容变得无限丰富。如上图,可以自己设计按钮和进度条。

3、提供了底部冻结行功能,该行始终显示在表格底部,可以做合计使用。

4、打印和打印预览等功能丰富,打印表头功能强大。

5、提供图表功能。

6、提供表格设计器。

7、打开/保存文件、不需要Excel运行库的支持直接导出Excel、导出CSV、导出HTML、导出PDF、导出/导入XML等功能。

不足:

1、对树型的支持不完善,需要额外的dll,并且不稳定。所以本库中没有封装树型功能。

二、库文件下载

chengxu.online → aardio资源下载 → flexcell.rar

三、设置列的三种方法:

方法1:

四个参数,分别为:列标题数组、列类型、列宽、列对齐方式。

//单行标题:
    // 方式一:列类型、列宽、列对齐方式 采用单独数值,表示所有列都采用该值
    g.setColumn({"标题1","标题2","标题3","标题4"},0,100,6)

    // 方式二:列类型、列宽、列对齐方式 采用表,对应着每一列的值
    g.setColumn({"标题1","标题2","标题3","标题4"},{0,2,2,6},{100,50,50,220},{10,10,10,13})

    // 数值或表,可以任意使用。也可以省略,表示使用默认值。

//多行标题:
    g.setColumn({{"标题1","标题2","标题3","标题4"}{"标题1","标题2","标题3","标题4"}},0,100,6)

方法2:

第一个参数设置列信息(每个成员为一列,用数组成员依次表示:第一行每列标题、列类型、列宽、列对齐方式)

如果有多行标题,则从第2个参数往后,每个参数为一行标题文本数组。

//单行标题
g.setColumn({
        {"标题1",0,150,0xA/*_flex.Alignment.CenterCenter*/},
        {"标题2",0,200,0xE/*_flex.Alignment.RightCenter*/},
        {"标题3",0,250,0xA/*_flex.Alignment.CenterCenter*/},
        {"标题4",0,300,0xE/*_flex.Alignment.RightCenter*/}
    }
);
//多行标题
g.setColumn({
        {"标题1",0,150,0xA/*_flex.Alignment.CenterCenter*/},
        {"标题2",0,200,0xE/*_flex.Alignment.RightCenter*/},
        {"标题3",0,250,0xA/*_flex.Alignment.CenterCenter*/},
        {"标题4",0,300,0xE/*_flex.Alignment.RightCenter*/}
    },
    {"第二行第1列标题","第二行第2列标题","第二行第3列标题","第二行第4列标题"},
    {"第三行第1列标题","第三行第2列标题","第三行第3列标题","第三行第4列标题"}
);

 方法2:

第一个参数设置列信息(每个成员为一列,用键值对表示:第一行每列标题、列类型、列宽、列对齐方式。键可以省略,表示使用默认值。)

如果有多行标题,则从第2个参数往后,每个参数为一行标题文本数组。

//单行标题
g.setColumn({
        {text="标题1",celltype=2/*_flex.CellType.CheckBox*/,width=150,align=6/*_flex.Alignment.LeftCenter*/},
        {text="标题2",width=200},
        {text="标题3",width=0},
        {text="标题4",width=null}
    }
);
//多行标题
g.setColumn({
        {text="标题1",celltype=2/*_flex.CellType.CheckBox*/,width=150,align=6/*_flex.Alignment.LeftCenter*/},
        {text="标题2",width=200},
        {text="标题3",width=0},
        {text="标题4",width=null}
    },
    {"第二行第1列标题","第二行第2列标题","第二行第3列标题","第二行第4列标题"},
    {"第三行第1列标题","第三行第2列标题","第三行第3列标题","第三行第4列标题"}
);

四、示例代码

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=509;bottom=469;border="thin")
winform.add(
button={cls="button";text="Button";left=182;top=364;right=337;bottom=432;ah=1;aw=1;z=2};
custom={cls="custom";text="自定义控件";left=11;top=9;right=484;bottom=344;ah=1;aw=1;z=1}
)
/*}}*/
 
..math.randomize(..time.tick())
winform.show();
 
import godking.flexCell
 
var f = godking.flexCell(winform.custom,,,);
import console
f.startRow=1
f.startCol=1
f.ownerDraw.button.round=1
f.DefaultFont.setName("黑体")
 
f.ownerDraw.start(true/*自动刷新鼠标移入移出的单元格*/,1/*启用内置自绘函数*/)
 
var t={}
for(i=1;99999;1){
	..table.push(t,{col1="ok"++i,col2="呵呵呵",col3=i,col4=i,col5="删除"})
}
 
winform.button.oncommand = function(id,event){
 	t[#t].col1="合计"
	t.fields={"col1","col2","col3","col4","col5"}
	f.AutoRedraw=false
	f.setColumn({{"序号","暗室逢灯","沙发","-","任天野","-"},{"|","|","|","|","任天野","就开了"}})
	f.setTable(t)
	f.merge(2,2,4,4)
	f.ownerDraw.imageProgress.max=20
	f.Column(3).CellType=11
	f.Column(4).CellType=12
	f.Column(5).CellType=10
	f.FrozenBottomRows=1
	f.avg(3,1,-2,-1)
	f.sum(4,1,-2,-1)
	f.Refresh()
	f.AutoRedraw=true
}
 
win.loopMessage();

你可能感兴趣的:(aardio,库,aardio,flexcell)