列表动态显示隐藏列原创
金蝶云社区-LIUl
LIUl
6人赞赏了该文章 285次浏览 未经作者许可,禁止转载编辑于2024年11月20日 11:01:27

关键词:

代码显示隐藏列表字段、操作列操作动态显隐、列表动态显示隐藏列


适用场景:

1.操作列里面的操作需要根据行状态进行显示隐藏对应的操作需求
2.当某一种情况需要根据什么条件来把整个列动态的进行显示隐藏

1.packageData方法中进行操作列里面的操作显示隐藏或锁定

@Override
public void packageData(PackageDataEvent e) {
    super.packageData(e);
    // 判断是操作列
    if (e.getSource() instanceof ListOperationColumnDesc) {
        DynamicObject rowData = e.getRowData();
        String columnKey = ((ListOperationColumnDesc) e.getSource()).getKey();
        // 获取操作列的所有操作项
        List<OperationColItem> operationColItems = (List<OperationColItem>) e.getFormatValue();
        if (StringUtils.equals("fdb2_listoperationcolumna", columnKey)) {
            String status = rowData.getString("billstatus");
            // 根据单据状态,设置操作列的按钮灰显
            for (OperationColItem item : operationColItems) {
                // 已审核,并且是已审核操作项
                if ("audit".equals(item.getOperationKey())) {
                     //显示隐藏
                      item.setVisible(!"C".equals(status));
                        //设置锁定解锁
                        //item.setLocked(false);
                } else if ("submit".equals(item.getOperationKey())) {
                    item.setVisible(!"B".equals(status));
                }
            }
        }
    }
}

效果图:
image.png
2.beforeCreateListColumns方法中进行列字段的动态显示隐藏

@Override
public void beforeCreateListColumns(BeforeCreateListColumnsArgs args) {
    super.beforeCreateListColumns(args);
    List<IListColumn> listColumns = args.getListColumns();
    for (IListColumn listColumn : listColumns) {
        //根据字段标识判断,然后再根据其他条件进行判断隐藏列
        if ("createtime".equals(listColumn.getListFieldKey())) {
            //设置0代表隐藏设置1代表显示
            listColumn.setVisible(1);
        }
    }
}

效果图:创建时间隐藏
image.png
image.png

图标赞 6
6人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!