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

customPrintDataEntities事件

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

customPrintDataEntities事件

1 事件介绍

可通过此事件对默认读取的打印数据进行加工。


2 事件触发时机

打印引擎运行期间,系统默认读取数据后,触发此事件。


3 代码模板

@override
public void customPrintDataEntities(CustomPrintDataEntitiesArgs e){
    //提供自定义数据包
    //新的数据包
    List<Dynamicobject> newDataEntities = new ArrayList<>();
    String ds = e.getDataSourceName();
    if ( "customdsname".equals(ds)) {
        //构造dvnamicobiest放入newDataEntities
        e.setDataEntities(newDataEntities);
    }
}


4 参数说明

public class CustomPrintDataEntitiesArgs extends EventObject

  • public String getDataSourceName():获取数据源标识名称;

  • public Set<String> getCustomFields():获取自定义字段的集合;

  • public String getPageId() {:获取PageId;

  • public List<DynamicObject> getDataEntities():获取系统默认读取的数据集合;

  • public void setDataEntities(List<DynamicObject> dataEntities):设置数据包;

  • public DynamicObjectType getDynamicObjectType(): 获取数据包类型;

  • public QFilter getFilter(): 获取过滤条件。


5 应用示例

5.1 示例1

  • 场景:需要动态打印一个名称,但是源单的单据头上并没有这样的字段;

  • 模板设置:打印模板中为一个文本控件设置如下属性: 绑定类型属性为”自定义”,数据源属性为标识为”dsname”的数据源,自定义属性为customfield;

  • 插件代码:

@Override
public void customPrintDataEntities(CustomPrintDataEntitiesArgs e){
    //根据自定义字段对数据包进行修改
    List<Dynamicobject> newDataEntities = new ArrayList<>();
    List<Dynamicobject> sysDataEntities = e.getDataEntities();
    Set<String> customFields = e.getCustomFields(;
    String ds = e.getDataSourceName();
    if ( "dsname".equals(ds)) {
        for (Dynamicobject dataEntity : sysDataEntities) {
            DynamicObjectType dataEntityType = (DynamicObjectType) dataEntity.getDataEntityType();
            DynamicobjectType cloneType = null;
            try {
                cloneType = (DynamicobjectType) dataEntityType.clone();
                for (String customField : customFields) {
                    DynamicSimpleProperty demoProp = new DynamicSimpleProperty(customField,String.class,"自定义字段默认值");
                    cloneType.registerSimpleProperty(demoProp);
                }
                DynamicObject newObj = (DynamicObject)(new CloneUtils(false,falsa)).clone(cloneType,dataEntity);
                for (string customField : customFields) {
                    newObj.set(customField,“自定义字段value") ;
                }
                newDataEntities.add(newObj);
            }catch (cloneNotSupportedException e1) {
            }
        }
    }
}


5.

customPrintDataEntities事件

1 事件介绍可通过此事件对默认读取的打印数据进行加工。2 事件触发时机打印引擎运行期间,系统默认读取数据后,触发此事件。3 代码模板@...
点击下载文档文档为doc格式

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

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