列表插件获取选中行并匹配 - IShare

列表插件获取选中行并匹配

原理:通过关联单据的pkvalue来匹配,如果查不到,检查转换规则里是否开启了携带源单数据(好像叫这个)

简单的一行数据

示例:

public class Test11 extends AbstractListPlugin implements Plugin {
    @Override
    public void itemClick(ItemClickEvent evt) {
        super.itemClick(evt);
        if ("lr90_view".equals(evt.getItemKey())){
            ListSelectedRowCollection selectedRows = this.getSelectedRows();

            if(selectedRows!=null&&selectedRows.size()==1){
                Object[] primaryKeyValues = selectedRows.getPrimaryKeyValues();

               String id=primaryKeyValues[0].toString();
               DynamicObject bill = BusinessDataServiceHelper.loadSingle(id, "lr90_caigoushenqingdan", "id");
        }else{
                this.getView().showTipNotification("请选择一条数据");
            }
}

复杂点的多行数据

以单据转换插件为例:

//设置不允许下推的条件
public class JudgContractState extends AbstractConvertPlugIn implements Plugin {
    @Override
    public void beforeBuildRowCondition(BeforeBuildRowConditionEventArgs e) {
        List<ListSelectedRow> selectedRows = e.getSelectedRows();
        List<Long> pkValues = new ArrayList<>();
        for (ListSelectedRow selectedRow : selectedRows) {
            Long keyValue = (Long) selectedRow.getPrimaryKeyValue();
            pkValues.add(keyValue);
        }
        Map<String, HashSet<Long>> targetBills = BFTrackerServiceHelper.findTargetBills("yfsw_dcxys", pkValues.toArray(new Long[0]));
        if (targetBills.containsKey("yfsw_contract")) {
            HashSet<Long> preferId = targetBills.get("yfsw_contract");
            List<String> billStatusList = new ArrayList<>();
            for (Long next : preferId) {
                DynamicObject object = BusinessDataServiceHelper.loadSingle(next, "yfsw_contract");
                String billStatus = object.getString("yfsw_htzhuangtai");
                billStatusList.add(billStatus);
            }
            if (billStatusList.contains("A")){
                e.setCustFilterDesc("存在签署中的合同,不允许重复发起!");  // 不允许下推的原因
                // 设置条件表达式,用于脚本执行 (必选)
                e.setCustFilterExpression(" 1 != 1 ");
                // 同时设置具有相同含义的QFilter条件,用于选单数据查询 (必选)
                QFilter qFilter = new QFilter("1", QCP.not_equals, "1");
                e.getCustQFilters().add(qFilter);
            }
        }
    }
}

1

无标签
打赏
评论区
头像
    头像

    修辞手法运用娴熟,比喻贴切,感染力强。

    头像

    这是一篇佳作,无论是从内容、语言还是结构上,都堪称完美。

    头像

    文章已具雏形,需进一步聚焦核心问题。

    头像

    技术前瞻性分析体现行业敏感度。

    头像

    作者的才华横溢,让这篇文章成为了一篇不可多得的艺术品。

    头像

    内容的丰富性和深度让人仿佛置身于知识的海洋,受益匪浅。

    头像
    axsfxylsnv
    2025年1月4日 09:32
    回复

    《小黄人大眼萌:神偷奶爸前传》欧美动漫高清在线免费观看:https://www.jgz518.com/xingkong/52161.html

文章目录