EAS BOS 根据F7控件动态生成表单

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("换成自己要设置的表头");	    	
 }

效果展示

EAS BOS 根据F7控件动态生成表单_第1张图片

你可能感兴趣的:(EAS开发)