物料清单成本查询添加二开字段【 Version=8.2.886.8】原创
金蝶云社区-krystalyuan
krystalyuan
0人赞赏了该文章 85次浏览 未经作者许可,禁止转载编辑于2024年03月12日 15:17:20

业务背景:

物料清单成本查询时可以直接算出损耗金额。

公式:损耗金额=(用量分子*变动损耗率%+固定损耗)*单价


详细设计:

1、扩展《物料清单成本查询》,在子项明细下添加小数控件,标识为:F_XXXX_AttritionAmount

XXXX是开发商标识

image.png

image.png

2、新建插件,继承原表单插件

image.png

3、重写按钮点击事件【刷新】

public override void ButtonClick(ButtonClickEventArgs e)
        {
            base.ButtonClick(e);
            string text;
            if ((text = e.Key.ToUpperInvariant()) == null || !(text == "FREFRESH"))
            {
                return;
            }
  
            Entity entity = Model.BillBusinessInfo.GetEntryEntity("FBottomEntity");
            DynamicObjectCollection detailDataEntities = Model.GetEntityDataObject(entity);
            foreach (var item in detailDataEntities)
            {
                //    //损耗金额=(用量分子*变动损耗率%+固定损耗)*单价
                decimal price = Convert.ToDecimal(item["Price"]);
                decimal numerator = Convert.ToDecimal(item["Numerator"]);
                decimal scrapRate = Convert.ToDecimal(item["ScrapRate"]) / 100;
                decimal fixScrapQty = Convert.ToDecimal(item["FixScrapQty"]);
                decimal attritionAmount = Math.Round((numerator * scrapRate + fixScrapQty) * price, 2);
                item.SetDynamicObjectItemValue("F_XXXX_AttritionAmount", attritionAmount);
            }
            View.UpdateView("FBottomEntity");
        }

image.png

4、将插件挂载到表单插件,取消原表单插件

image.png

赞 0