虚表新版本增加合并单元格功能,现逐步完善中,大家可以先行体验,发现问题跟帖反馈。
合并单元格背景色暂时一律保持默认颜色。后期再进行完善。
todo:
1、实现多行表头及合并多行表头的处理
2、合并单元格的背景色处理
先升级虚表库。
合并单元格相关函数及属性:
headerMerge = 【属性】表头列合并表。\n格式为:{{1,2}{5,8}} 指定需要合并的多个开始列和结束列。
addMerge(__ /*开始行*/,/*开始列*/,/*结束行*/,/*结束列*/) = 添加一个合并单元格区域。\n合并单元格区域前的行列,不能进行增删,否则会影响合并准确性。
delMerge(__ /*行号*/,/*列号*/) = 删除单元格所在的合并区域。
getMerge(__ /*行号*/,/*列号*/) = 获取单元格所在的合并区域,返回值格式为表:{1,1,2,2}。
getMergedFirstCell(__ /*行号*/,/*列号*/) = 获取单元格所在的合并区域的第一个单元格的行号、列号。
clearAllMerges() = 清空所有合并单元格区域。
isMerged(__ /*行号*/,/*列号*/) = 获取单元格是否被合并。
import win.ui;
import godking.vlistEx;
/*DSG{{*/
mainForm = win.form(text="vlistEx - table adapter";right=839;bottom=647)
mainForm.add(
vlist={cls="vlistEx";left=8;top=8;right=832;bottom=640;border=1;db=1;dl=1;dr=1;dt=1;z=1}
)
/*}}*/
//设置数据
var t = { fields={"序号","姓名","年龄","地址","政治面貌"} };
for(i=1;100;1){
var tt={};
tt["序号"]="[@rowindex]"; // 行序号标记是不允许编辑修改的
tt["姓名"]=math.random(1000,9999)+"姓名";
tt["年龄"]=math.random(10,99);
tt["地址"]=math.random(1000,9999)+"地址";
tt["政治面貌"]="党员";
..table.push(t,tt);
}
mainForm.vlist.setTable(t,{"序号","姓名","年龄","地址","政治面貌"},150,1);
mainForm.vlist.setRowHeight(40);
//合并表头
mainForm.vlist.headerMerge={{1,2}{3,5}};
mainForm.vlist.headerBkcolor = 0xFFDDDD;
mainForm.vlist.headerFont = ::LOGFONT(name="微软雅黑";point=18;color=0xFF0000);
//添加合并单元格
mainForm.vlist.addMerge(2,2,4,4)
mainForm.vlist.addMerge(5,1,6,2)
for(i=7;100;1){
mainForm.vlist.addMerge(i,3,i,5);
}
for(i=7;100;2){
mainForm.vlist.addMerge(i,2,i+1,2);
}
//允许编辑
mainForm.vlist.onEditBegin = true;
mainForm.show();
win.loopMessage();