45KDTable控件Word格式.docx
- 文档编号:17345956
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:49
- 大小:37.97KB
45KDTable控件Word格式.docx
《45KDTable控件Word格式.docx》由会员分享,可在线阅读,更多相关《45KDTable控件Word格式.docx(49页珍藏版)》请在冰豆网上搜索。
Obj.getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);
Obj.getStyleAttributes().getAlignment().setVerticalAlign(Alignment.TOP);
Obj.getStyleAttributes().setVerticalAlign(VerticalAlignment.TOP);
//是否折行
Obj.getStyleAttributes().getAlignment().setWrapText(true);
Obj.getStyleAttributes().setWrapText(true);
//背景色
Obj.getStyleAttributes().getInterior().setBackground(Color.YELLOW);
Obj.getStyleAttributes().setBackground(Color.YELLOW);
//边框笔形(实心线或点线等)
Obj.getStyleAttributes().getBorder(Border.RIGHT).setStyle(Border.PS_SOLID);
Obj.getStyleAttributes().setBorderPenStyle(Position.RIGHT,PenStyle.PS_SOLID);
Obj.getStyleAttributes().getBorder(Border.RIGHT).setColor(Color.YELLOW);
Obj.getStyleAttributes().setBorderColor(Position.RIGHT,Color.YELLOW);
//字体
Obj.getStyleAttributes().getFont().setSize(16);
Obj.getStyleAttributes().setFontSize(16);
Obj.getStyleAttributes().getFont().setBold(true);
Obj.getStyleAttributes().setBold(true);
✧增加列
//指定插入位置
table.addColumn(index);
//插入到最后
table.addColumn();
//一次性添加多行
addColumns(colCount);
✧删除列
table.removeColumn(index);
✧增加表头行
table.addHeadRow(index);
table.addHeadRow();
//一次性添加多个表头行
table.addHeadRows(headRowCount);
✧删除表头行
table.removeHeadRow(index);
✧删除所有表头行
table.removeHeadRows();
✧增加表体行
table.addRow(index);
table.addRow();
//一次性添加表体行
table.addRows(rowCount);
✧删除表体行
table.removeRow(index);
✧删除所有表体行
table.removeRows();
✧如何获取列、行、单元对象
//获取列对象
IColcol=table.getColumn(0);
//获取表头行对象
IRowheadRow=table.getHeadRow(0);
//获取表体行对象
IRowrow=table.getRow(0);
//获取单元对象
ICellheadCell=row.getCell(0);
ICellcell=row.getCell(0);
✧如何设置单元的值
//value为任意object
cell.setValue(value);
✧如何修改行、列、单元的Style(字体、背景、锁定、隐藏等)
//隐藏列或行
col.getStyleAttributes().setHided(true);
row.getStyleAttributes().setHided(true);
//设置单元背景色
cell.getStyleAttributes().setBackground(color);
//设置单元字体颜色、字体名称、字体大小
cell.getStyleAttributes().setFontColor(color);
cell.getStyleAttributes().setFontName(strName);
cell.getStyleAttributes().setFontSize(size);
//锁定表格、行、列、单元
table.getStyleAttributes().setLocked(true);
row.getStyleAttributes().setLocked(true);
col.getStyleAttributes().setLocked(true);
cell.getStyleAttributes().setLocked(true);
//设置对齐方式
table.getStyleAttributes().setHorizontalAlign(HorizontalAlignment.RIGHT);
//设置自动折行
table.getStyleAttributes().setWrapText(true);
//隐藏表格、行、列、单元的边框
table.getStyleAttributes().setBorderLineStyle(Position.RIGHT,LineStyle.NULL_LINE);
//隐藏表格单元的右边框
table.getStyleAttributes().setBorderLineStyle(Position.BOTTOM,LineStyle.NULL_LINE);
//隐藏表格单元的下边框
注意:
KDTable在默认情况下左边框和上边框为空,右边框和下边框不为空。
上述代码也可应用在具体某个row、column或cell上。
✧如何修改行高、列宽
//修改行高列宽
table.getRow
(2).setHeight(20);
table.getColumn
(1).setWidth(100);
✧实模式下添加数据
实模式下填充数据时,不用事先指定行总数,添加后KDTable会自动记录总行数。
intcolCount=13;
intheadRowCount=1;
introwCount=100;
inti;
intj;
//添加列
for(i=0;
i<
colCount;
i++)
{
table.addColumn(j);
}
//添加表头行
IRowrow;
ICellcell;
headRowCount;
//添加空表头行
row=table.addHeadRow(i);
for(j=0;
j<
j++)
//获取表头行的单元,并设置单元的值
cell=row.getCell(j);
cell.setValue("
head"
+i+"
"
+j);
}
//添加表体行(即数据行)
rowCount;
//添加空表体行
row=table.addRow(i);
body"
}
✧如何指定虚模式
KDTable支持三种取数模式:
实模式、虚模式分页、虚模式分组,默认为实模式。
//实模式
table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.REAL_MODE);
//虚模式分页
table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VIRTUAL_MODE_PAGE);
//虚模式分组
table.getDataRequestManager().setDataRequestMode(KDTDataRequestManager.VIRTUAL_MODE_GROUP);
✧如何指定总行数
虚模式下填充数据时,可以事先指定总行数,也可以不指定,如果不指定总行数,KDTable将根据每次取数返回的行数进行判断,若取回的行数小于页大小,则认为取数已到达最后一页。
//设置总行数为500
table.setRowCount(500);
✧如何指定页大小
页大小即指虚模式分页模式下,每次缺页取数时的总行数,默认值为100。
//设置页大小为200行
table.getDataRequestManager().setPageRowCount(200);
✧虚模式下通过事件添加数据
要想通过事件添加数据,必须实现KDTDataRequestListener的tableDataRequest方法
//创建列和表头
...
//指定虚模式分页模式
//设置总行数为500,可以不指定总行数
//添加数据请求事件侦听者
table.getDataRequestManager().addDataRequestListener(newKDTDataRequestListener()
publicvoidtableDataRequest(KDTDataRequestEvente)
{
//获取请求的起始行、起始列、结束行、结束列信息
intfirstRow=e.getFirstRow();
intlastRow=e.getLastRow();
intfirstCol=e.getFirstCol();
intlastCol=e.getLastCol();
intcolCount=lastCol-firstCol+1;
IRowrow;
ICellcell;
inti,j;
//填充数据
for(i=firstRow;
=lastRow;
{
row=table.addRow(i);
for(j=firstCol;
=lastCol;
{
row.getCell(j).setValue("
cell"
}
}
);
✧虚模式通过绑定填充数据
绑定即指绑定到BOS中的query对象或实体对象。
要想通过事件添加数据,必须实现RequestRowSetListener的doRequestRowSet方法
//指定绑定的内容queryName是query对象的名称,fieldNameArray是字符串数组,分别代表每一列对应的字段名称
table.putBindContents(queryName,fieldNameArray);
//添加请求绑定数据的事件侦听者
table.addRequestRowSetListener(newRequestRowSetListener()
publicvoiddoRequestRowSet(RequestRowSetEvente)
//获取操作类型、取数参数和字段名数组
intoper=e.getOper();
Objectparam1=e.getParam1();
Objectparam2=e.getParam2();
String[]fields=e.getFields();
switch(oper)
//循序读取RowSet,对应于虚模式分页模式
caseRequestRowSetEvent.EVT_OPER_MOVE:
intstart;
intend;
//将参数一转化为当前请求的起始行号
if(param1instanceofInteger)
{
start=((Integer)param1).intValue();
}
else
start=0;
}
//将参数二转化为当前请求的结束行号
if(param2instanceofInteger)
end=((Integer)param2).intValue();
if(end<
0)
{
end=999;
}
else
end=999;
//返回RowSet
e.setRowSet(getMoveRowSet(start,end,fields));
break;
caseRequestRowSetEvent.EVT_OPER_GROUP:
caseRequestRowSetEvent.EVT_OPER_WHERE:
default:
//模拟返回一个RowSet
privateIRowSetgetMoveRowSet(intstart,intend,String[]fields)
if((fields==null)||(fields.length==0))
fields=colFields;
else
try
DynamicRowSetdrs=newDynamicRowSet(fields.length);
for(inti=0;
fields.length;
drs.setColInfo(
i+1,
fields[i],
Types.INTEGER,
null);
Randomrand=newRandom(System.currentTimeMillis());
for(inti=start;
=end;
drs.moveToInsertRow();
drs.updateInt(1,i);
for(intj=2;
=fields.length;
drs.updateInt(j,rand.nextInt());
drs.insertRow();
drs.beforeFirst();
//drs.absolute
(1);
returndrs;
catch(SQLExceptionsqle)
sqle.printStackTrace();
returnnull;
✧取数结束事件
KDTable通过取数事件取得数据并填充到table中之后,会发出此事件
//添加数据填充结束事件侦听者
table.addKDTDataFillListener(newKDTDataFillListener()
publicvoidafterDataFill(KDTDataRequestEvente)
//dosomething
✧如何刷新表体数据行(表头不变)
//示例1:
删除所有表体行,并重新发取数事件
//该方法不会修改原先的绑定信息
//示例2:
删除所有表体行,修改绑定信息并重新取数
//指定新的query和字段名
table.putBindContends(objectName,fieldNams);
//重新取数
✧如何刷新整个table(表头也发生变化)
删除原有表头、表体数据及所有列信息
table.removeColumns();
设置新的表头和数据
//删除原有表头、表体数据及所有列信息,该方法会清空原先每一列的绑带信息
//添加新列
for(inti=0;
5;
{
table.addColumn();
//添加新表头
//指定新的绑带信息
✧如何进行自由融合
自由融合无须指定区域,KDTable将根据指定的融合模式,融合相邻且值相等的单元。
//自由行融合
table.getMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE);
//自由列融合
table.getMergeManager().setMergeMode(KDTMergeManager.FREE_COLUMN_MERGE);
//自由融合
table.getMergeManager().setMergeMode(KDTMergeManager.FREE_MERGE);
✧如何进行指定融合
指定融合必须指定区域,KDTable将不管指定区域中的单元值是否相等,强制融合指定区域的单元。
//获取融合管理器
KDTMergeManagermm=table.getMergeManager();
//融合指定区域
mm.mergeBlock(0,0,1,1,KDTMergeManager.SPECIFY_MERGE);
✧如何拆分融合块
//拆分指定区域
table.getMergeManager().splitBlock(0,0,1,1);
✧如何指定行列不融合
//指定第一列不融合
table.getColumn
(1).setMergeable(false);
//指定第0行不融合
table.getRow(0).setMergeable(false);
✧如何进行表头融合
表头融合与表体的融合类似,只要把getMergeManager改为getHeadMergeManager即可
//表头自由行融合
table.getHeadMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE);
//表头指定融合
//获取表头融合管理器
KDTMergeManagermm=table.getHeadMergeManager();
//进行指定融合
✧如何设置缩排
数据融合后,可以以合并单元格的方式展现,也可通过缩排的方式实现。
设置列缩排后,同一列的相邻的数据将仅显示第一个,其余的显示为空单元。
//设置行融合
table.getMergeManager().setMergeMode(KDTMergeManager.FREE_ROW_MERGE);
//设置缩排模式table.getMergeManager().setViewMode(KDTMergeManager.VIEW_AS_INDENTATION);
✧如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 45 KDTable 控件