套打自定义数据源原创
金蝶云社区-熊嘉强
熊嘉强
10人赞赏了该文章 2,112次浏览 未经作者许可,禁止转载编辑于2021年02月03日 10:24:48
  1. 需求背景:在套打中,需要获取其他单据的数据在打印页面上。

  2. 实现方案:配置自定义数据源,自定义数据源名称编码,添加需要显示的字段。然后在插件中,动态获取数据。

  3. 具体实现:打印插件需要继承AbstractPrintServicePlugin基类,在customPrintDataEntities事件中,可以获取到数据源的标识,如果与自定义数据源标识一致,则去获取需要显示的数据,格式是List<DynamicObject>,其中字段名称需要与自定义数据源中添加的字段名称对应上。然后再调用setDataEntities设置数据包。

  4. 案例代码:

    @Override

    public void customPrintDataEntities(CustomPrintDataEntitiesArgs e) {

    // TODO Auto-generated method stub

    super.customPrintDataEntities(e);

    List<DynamicObject> dList = new ArrayList<>();

    String ds = e.getDataSourceName();

                    //sodemo1是自定义数据源的编码

    if(ds.equals("sodemo1")) {

    QFilter qFilter = new QFilter("billno", QCP.equals, "d01");

    DynamicObject dObject = QueryServiceHelper.queryOne("kdec_bill", "billno, billstatus", new QFilter[] {qFilter});

    dList.add(dObject);

    }

    e.setDataEntities(dList);

    }

赞 10