金蝶雲星空欄位之間連續觸發值更新

lanrenka發表於2024-07-02

場景說明
欄位A配置了欄位B的計算公式,欄位B配置了自動C的計算公式,修改A的時候,觸發了B的重算,但是C觸發不到。


具體需求:
配置值更新事件:料本,料本系數, PCBA加工費,整機裝配費,稅率%【欄位A】
公式:供應鏈含稅報價 = ( 料本 * 料本系數 + PCBA加工費 + 整機裝配費 ) * ( 1 + 稅率% / 100 )


配置值更新:供應鏈含稅報價
含稅時,供應鏈報價 = 供應鏈含稅報價 / ( 1 + 稅率% / 100)【欄位B】
含稅時,銷售含稅結算價 = 供應鏈含稅報價 + ( 銷售含稅指導價 - 供應鏈含稅報價 ) * ( 毛利分成比例 / 100 )

配置值更新:銷售含稅結算價 【欄位C】
含稅時,銷售結算價 = 銷售含稅結算價 / ( 1 + 稅率% / 100)

解決方案:新增表單外掛,在DataChange事件,觸發B的值更改時,強行觸發B的值更新事件

金蝶雲星空欄位之間連續觸發值更新
 public override void DataChanged(DataChangedEventArgs e)
{
    base.DataChanged(e);

    switch (e.Field.Key.ToUpperInvariant())
    {
        case "FTAXPRICE"://供應鏈含稅報價
            int entryCurrentRowIndex = this.Model.GetEntryCurrentRowIndex(entityKey);//獲取當前父單據體選中行
            this.View.InvokeFieldUpdateService("FTaxPrice", entryCurrentRowIndex);
            break;
        case "FSALETAXSETTLEPRICE"://銷售含稅結算價
            int ecir2 = this.Model.GetEntryCurrentRowIndex(entityKey);//獲取當前父單據體選中行
            this.View.InvokeFieldUpdateService("FSaleTaxsettlePrice", ecir2);//觸發銷售含稅結算價的值更新事件
            break;
    }
}
View Code

相關文章