动态表单,单据列表控件和过滤面板快速过滤原创
金蝶云社区-吴锐雄
吴锐雄
6人赞赏了该文章 2,198次浏览 未经作者许可,禁止转载编辑于2023年04月28日 11:14:24



设计动态表单

拖入过滤控件

image.png


拖入快速搜索

image.png


拖入单据列表控件,并绑定实体,配置字段

image.png


结果

image.png



插件

package kd.ecos.demo;

import kd.bos.dataentity.entity.LocaleString;
import kd.bos.entity.filter.FilterParameter;
import kd.bos.filter.FilterColumn;
import kd.bos.filter.FilterContainer;
import kd.bos.form.control.events.*;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.list.BillList;
import kd.bos.orm.query.QFilter;

import java.util.*;

public class DemoFilterContainerPlugin extends AbstractFormPlugin implements FilterContainerInitListener, SearchClickListener{

    @Override
    public void initialize() {
        super.initialize();
        // 初始化过滤面板
        FilterContainer filterContainer = getControl("kdec_filtercontainerap");
        if (filterContainer != null) {
            // 过滤面板绑定单据实体
            filterContainer.setBillFormId("kdec_textline_bill");
            filterContainer.addFilterContainerInitListener(this);
            filterContainer.addSearchClickListener(this);
        }
    }

    @Override
    public void filterContainerInit(FilterContainerInitEvent filterContainerInitEvent) {
        // 添加一个快速过滤项
        FilterColumn filterColumn = new FilterColumn();
        filterColumn.setFieldName("kdec_textline_name");
        filterColumn.setCaption(new LocaleString("纺织物名称"));
        filterContainerInitEvent.getFastFilterColumns().add(filterColumn);
    }

    // 快速过滤搜索时,会调用这个事件,在这个事件中,将过滤条件设置给单据列表
    @Override
    public void click(SearchClickEvent searchClickEvent) {
        BillList billList = getControl("kdec_billlistap");
        // 获取快速过滤信息
        List<QFilter> qFilters = searchClickEvent.getFastQFilters();
        FilterParameter FilterParameter = new FilterParameter(qFilters, "asec");
        // 单据列表设置过滤项
        billList.setQueryFilterParameter(FilterParameter);
        // 刷新单据列表
        this.getView().updateView(billList.getKey());
    }

}


赞 6