如何实现PLM单据中动态加载数据的套打原创
金蝶云社区-vicky_jiang
vicky_jiang
8人赞赏了该文章 996次浏览 未经作者许可,禁止转载编辑于2022年05月24日 15:51:57

       标准套打的功能只支持单据中原有的字段,但PLM单据中还会通过动态加载数据的方式展示相应的业务关联数据,例如履历、相关过程等,如果想要对这种类型的数据进行套打,可以通过二次开发实现。

       比如有一个打印需求:需要将变更单中的设计变动清单页签中的数据进行打印。

操作步骤:

一、扩展变更单单据

       PLM业务类型单据的扩展方法可参考该贴:https://vip.kingdee.com/article/184984835570631424?productLineId=1

非PLM业务类型单据直接通过BOS设计器进行扩展即可。

二、在扩展的单据上添加想要打印的字段信息

       新加一个子页签,并设置可见性为不可见,然后在该子页签中添加一个单据体,参考设计变动清单单据中的字段,将想要打印的字段复制到该单据体上,保存扩展单据。

image.png

三、为扩展单据的套打字段单据体赋值

       添加新的单据插件(如果需要列表打印,则添加单据列表插件),重载OnPrepareNotePrintData方法,参考设计变动清单单据插件中数据加载逻辑,为套打字段单据体填充数据源。

      示例代码如下:

public override void OnPrepareNotePrintData(PreparePrintDataEventArgs e)
{
            if (e.DataSourceId == "FBomChangeEntity")
            {
                   DynamicObjectCollection results = new DynamicObjectCollection(e.DynamicObjectType);
                   DynamicObject rowD = new DynamicObject(e.DynamicObjectType);
                   results.Add(rowD);
                   e.DataObjects = results.ToArray();
            }
            base.OnPrepareNotePrintData(e);
}

       套打插件详细写法可参考该贴:https://vip.kingdee.com/article/40108?productLineId=1


赞 8