工序计划(单据头-单据体-子单据体结构)的下推与反写

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

工序计划(单据头-单据体-子单据体结构)的下推与反写

概述

子单据体结构的下推和反写比较特殊,需要进行特殊处理。

 

下推

问题:

字段映射关系是子单据体字段->单据体字段,选择上游2行子单据体分录下推,下游单据只显示一行分录。

 

 

 

解决方法:

分组策略-按规则分组合并生成-单据体分录合并里加上可以唯一标识一行子单据体分录的字段,如工序号。

 



问题:

选择的是2行分录,下游单据把所有分录都下推了。

 

解决方法:

在单据转换插件的OnInSelectedRow方法里,把选择行的子单据体分录id加到过滤条件里。

 

示例代码

/// <summary>

/// 下推、从选单界面选择行返回后

/// </summary>

/// <param name="e"></param>

public override void OnInSelectedRow(BOS.Core.Metadata.ConvertElement.PlugIn.Args.InSelectedRowEventArgs e)

{

    base.OnInSelectedRow(e);

    //如果非整单下推,加上子单据体的过滤

    bool selectByBillId = false;

    this.Option.TryGetVariableValue(ConvertConst.SelectByBillId, out selectByBillId);

    string subFilter = null;

    if (!selectByBillId)

        subFilter = GetPlanSubEntryFilter(e);

    if (!subFilter.IsNullOrEmpty())

        e.InSelectedRowsSQL = e.InSelectedRowsSQL.JoinFilterString(subFilter, "AND");

 }

 

/// <summary>

/// 获取源单中子单据体选择行的过滤条件

/// </summary>

/// <param name="e">下推事件</param>

/// <returns>过滤条件</returns>

private string GetPlanSubEntryFilter(BOS.Core.Metadata.ConvertElement.PlugIn.Args.InSelectedRowEventArgs e)

{

    string filterStr = string.Empty;

    List<long> detailIds = new List<long>();

    string subEntityKey = CONST_SFC_OperationPlanning.CONST_FSubEntity.ENTITY_FSubEntity;

    Entity subEntity = e.SourceBusinessInfo.GetEntity(subEntityKey);

 

    foreach (var selectRow in e.SelectedRows)

    {

        string detailId = "0";

        //从选择行中获取子弹据体主键

        if (selectRow.FieldValues.TryGetValue(subEntityKey, out detailId))

        {

            detailIds.Add(Convert.ToInt64(detailId));

        }

    }

 

    if (detailIds.Count > 0)

    {

        //生成过滤条件:FSubEntity_FDetailId in (10001,10002)

        filterStr = string.Format("{0}_{1} in ({2})",

            subEntityKey, subEntity.EntryPkFieldName, string.Join(",", detailIds));

    }

    return filterStr;

}

 


反写

参考下面帖子

https://vip.kingdee.com/article/14957(工序汇报二开案例-反写工序计划)


工序计划(单据头-单据体-子单据体结构)的下推与反写

概述子单据体结构的下推和反写比较特殊,需要进行特殊处理。 下推问题:字段映射关系是子单据体字段->单据体字段,选择上游2行子单据体分录...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息