【分享】 套打:通过插件来对打印数据进行处理
金蝶云社区-YuChenggang
YuChenggang
6人赞赏了该文章 1.9万次浏览 未经作者许可,禁止转载编辑于2014年06月20日 17:11:06

在未发布的cloud 5.0中,我们完善了套打的插件处理接口,应一些客户的要求,3.0的下一个补丁(6.24日)中将会包含此功能。这里我先写两个场景的处理,有此需要的同学请关注。
注意: 如果需要在列表打印时生效,就要写在列表插件(继承自AbstractListPlugin)里面; 单据打印生效就写在单据插件(AbstractBillPlugin)里面, 建议都写,保持一致
[code]
[/code]
[code]///


/// 通过重载此方法实现对查询参数的修改
/// 需求: 仅打印数量大于 100 的分录
///

///
public override void OnPrepareNotePrintQueryParam(Core.DynamicForm.PlugIn.Args.PrepareNotePrintQueryParamEventArgs e)
{
if (e.DataSourceId.Equals("单据体Key", StringComparison.OrdinalIgnoreCase))
{
QueryBuilderParemeter parameter = e.QueryParameter;
parameter.FilterClauseWihtKey = "FQty > 100";
}

base.OnPrepareNotePrintQueryParam(e);
}

///


/// 需求:合并套打时,将单据编号合并显示,并用’,‘分隔
///

///
public override void OnPrepareNotePrintData(Core.DynamicForm.PlugIn.Args.PreparePrintDataEventArgs e)
{
if (e.DataSourceId.Equals("单据头Key", StringComparison.OrdinalIgnoreCase))
{
if (e.IsMergedPrint)
{
DynamicObject[] qureyObjs = e.DataObjects;
foreach (var obj in qureyObjs)
{
obj["BillNo"] = string.Join(",", e.BillIds);
}
}
}

base.OnPrepareNotePrintData(e);
}[/code]