通过插件来对打印数据进行处理

注意: 如果需要在列表打印时生效,就要写在列表插件(继承自AbstractListPlugin)里面; 单据打印生效就写在单据插件(AbstractBillPlugin)里面, 建议都写,保持一致

/// <summary>
/// 通过重载此方法实现对查询参数的修改
/// 需求: 仅打印数量大于 100 的分录
/// </summary>
/// <param name="e"></param>
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);
}

/// <summary>
/// 需求:合并套打时,将单据编号合并显示,并用’,‘分隔
/// </summary>
/// <param name="e"></param>
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);
}


posted @ 2014-09-07 08:25  范永强  阅读(361)  评论(0编辑  收藏  举报