单据列表开发的应用场景(持续更新)原创
金蝶云社区-吴锐雄
吴锐雄
11人赞赏了该文章 1534次浏览 未经作者许可,禁止转载编辑于2021年03月09日 17:44:34

创作不易,如果文章对您有帮助,请为我点击一个朴实无华的赞^_^,我会更有动力持续地更新文章。


以下是用来展示的单据,以及这个单据的单据列表

image.png

image.png


1.列表自定义每页展示数据量

使用java插件开发,设置分页,自定义一页展示2条数据

调用setPageRows之前,一定要先判断

package kd.ecos.demo;
import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin;
import java.util.EventObject;

public class DemoListPlugIn extends AbstractListPlugin {
    @Override
    public void afterBindData(EventObject e) {
        super.afterBindData(e);
        BillList billList = this.getView().getControl("billlistap");
        // 设置之前,一定要先判断
        if (billList.getPageRow() != 2) {
            billList.setPageRows(2);
        }
    }
}

效果:

image.png

2.单据列表在插件中修改标题

如下代码,在beforeCreateListColumns中获取列表,然后遍历列表,对字段标识billno的单据编码,修改标题

package kd.ecos.demo;

import kd.bos.dataentity.entity.LocaleString;
import kd.bos.form.events.BeforeCreateListColumnsArgs;
import kd.bos.list.IListColumn;
import kd.bos.list.ListColumn;
import kd.bos.list.plugin.AbstractListPlugin;

import java.util.List;

public class DemoListPlugIn extends AbstractListPlugin {

    @Override
    public void beforeCreateListColumns(BeforeCreateListColumnsArgs args) {

        List<IListColumn> columns = args.getListColumns();

        for (IListColumn column : columns) {
            if (column.getListFieldKey().equals("billno")) {
                column.setCaption(new LocaleString("把单据编号随便改个标题"));
            }
        }

    }

}

效果:

image.png


3.代码动态添加单据列表的列

添加了一个创建人姓名的列,IListColumn接口的setListFieldKey方法,设置了单据的字段标识。

如果这个字段是一个基础资料,要使用 [字段标识].[基础资料字段标识],

例如以下代码,creator是一个基础资料字段,所以要用creator.name做为一列

package kd.ecos.demo;

import kd.bos.dataentity.entity.LocaleString;
import kd.bos.form.events.BeforeCreateListColumnsArgs;
import kd.bos.list.IListColumn;
import kd.bos.list.ListColumn;
import kd.bos.list.plugin.AbstractListPlugin;

import java.util.List;

public class DemoListPlugIn extends AbstractListPlugin {

    @Override
    public void beforeCreateListColumns(BeforeCreateListColumnsArgs args) {
        List<IListColumn> columns = args.getListColumns();
        ListColumn colUser = this.createListColumn("creator.name", "单据创建人", 1);
        columns.add(colUser);
    }

    private ListColumn createListColumn(String key, String caption, int colIndex){
        ListColumn col = new ListColumn();
        col.setCaption(new LocaleString(caption));
        col.setKey(key);
        col.setListFieldKey(key);
        col.setFieldName(key);
        col.setSeq(colIndex);
        col.setVisible(11);
        return col;
    }
}















赞 11