場景說明
欄位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; } }