电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

afterBuildQueryParemeter事件

来源:金蝶云社区作者:金蝶2024-09-233

afterBuildQueryParemeter事件

1 事件介绍

插件可以在此事件中,增加需要加载的源单字段,调整源单行取数条件。


2 事件触发时机

系统根据转换规则上的字段映射关系,确认好了需要加载的源单字段之后,触发此事件,并传入需转换的源单行过滤条件( FID in [1,2,3,4] )。


3 代码模板

package kd.bos.plugin.sample.bill.billconvert.template;
 
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
import kd.bos.entity.botp.plugin.args.AfterBuildQueryParemeterEventArgs;
 
public class AfterBuildQueryParemeter extends AbstractConvertPlugIn {
 
    @Override
    public void afterBuildQueryParemeter(AfterBuildQueryParemeterEventArgs e) {
         // TODO 在此添加业务逻辑
    }
}


4 参数说明

public class AfterBuildQueryParemeterEventArgs extends ConvertPluginEventArgs

  • public Map<String, String> getSrcFldAlias():预计会加载的源单字段及其别名;

  • public void addSrcField(String fullPropName) :

    1. 添加插件需要用到的源单字段;

    2. 传入字段标识,如textfield;

    3. 如果要取源单基础资料字段的引用属性,要传入基础资料字段标识及其引用属性,如basedatafield.name;

    4. 不需要在前面带单据体标识;

  • public List<QFilter> getQFilters():系统根据传入的源单内码,生成的源单取数条件,插件可以调整此集合中的条件对象。


5 应用示例

5.1 案例说明

1. 源单有单据编号、业务日期、金额字段;

2. 需要把这三个字段值,拼成一个字符串,填写到目标单内容字段上;

3. 业务日期格式化为yyyy-MM-dd,金额带币别。


5.2 实现方案

1. 捕获 afterBuildQueryParemeter 事件,要求加载源单单据编号、业务日期、金额、币别字段;

2. 捕获 afterFieldMapping 事件,取源单字段值,格式化后填写在目标单上。


5.3 实例代码

package kd.bos.plugin.sample.bill.billconvert.bizcase;
 
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
 
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.ExtendedDataEntity;
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
import kd.bos.entity.botp.plugin.args.AfterBuildQueryParemeterEventArgs;
import kd.bos.entity.botp.plugin.args.AfterFieldMappingEventArgs;
import kd.bos.entity.botp.runtime.ConvertConst;
 
public class AfterBuildQueryParemeterSample extends AbstractConvertPlugIn {
 
    private final static String KEY_BILLNO = "billno";
    private final static String KEY_DATE = "date";
    private final static String KEY_AMOUNT = "amount";
    private final static String KEY_CURRENCYNAME = "currency.name";
    private final static String KEY_CONTENT = "content";
   
    /**
     * 在开始读取源单数据前,触发此事件
     * @remark
     * 在此事件中,要求加载插件要用到的源单字段
     */
    @Override
    public void afterBuildQueryParemeter(AfterBuildQueryParemeterEventArgs e) {
        
         e.addSrcField(KEY_BILLNO);        // 单据编号
         e.addSrcField(KEY_DATE);      // 业务日期
         e.addSrcField(KEY_AMOUNT);        // 金额
         e.addSrcField(KEY_CURRENCYNAME);  // 币别.名称 currency.name
    }
 
    /**
     * 目标单字段值,携带完毕后,触发此事件
     * @remark
     * 在此事件中,自行取源单字段值,格式化后填写到目标单
     */
    @SuppressWarnings("unchecked")
    @Override
    public void afterFieldMapping(AfterFieldMappingEventArgs e) {
        
         // 取目标单,单

afterBuildQueryParemeter事件

1 事件介绍插件可以在此事件中,增加需要加载的源单字段,调整源单行取数条件。2 事件触发时机系统根据转换规则上的字段映射关系,确认好...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信