EAS BOS 根据F7控件动态生成表单
要实现从一个bos的F7控件中导入方案,取其中的分录信息来动态生成一个bos的KDTable,大概流程如下
需要导入的包
import com.kingdee.bos.ctrl.kdf.table.ICell;
import com.kingdee.bos.ctrl.kdf.table.IColumn;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
代码
//动态删除列,删除前面已有的列,清空分录
//kdEntrys为所要创建的分录的name
List <Integer> removeCol = new ArrayList<Integer>();
for(int i=0;i<kdEntrys.getColumnCount();i++)
{
if (i >= 0)
{
removeCol.add(i);
}
}
Collections.reverse(removeCol);
for (int index : removeCol) {
kdEntrys.removeColumn(index);
}
//判断是否存在表头,没有的话创建一行表头,有的话就忽略,直接进行下面的操作
if(kdEntrys.getHeadRow(0)==null||kdEntrys.getHeadRow(0).equals(""))
{
kdEntrys.addHeadRow(0);//创建一行表头
}
for(int i=0;i<info.getEntrys().size();i++)
{
//获取F7控件导入的分录的每一行数据
entryInfo = info.getEntrys().get(i);//F7控件的分录的实例化,在前面用F7EntryInfo entryInfo定义;
//遍历配置文件导入方案的分录,根据里面的数据动态添加列
//新增一列并设置列名
IColumn column= kdEntrys.addColumn();
column.setKey("换成自己要设置的这一列的列名,即name属性");
//设置首行标题
ICell scell11 = kdEntrys.getHeadRow(0).getCell(i);
scell11.setValue("换成自己要设置的表头");
}