This commit is contained in:
李狗蛋 2025-07-29 11:27:36 +08:00
parent 766bc1d95d
commit 32b6d08106

View File

@ -0,0 +1,824 @@
using Kingdee.BOS.Core.DependencyRules;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Orm.DataEntity;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace NewAisa_Order_GZTH.Sal_Order
{
[Description("表单插件:值更新事件,辅助属性赋值"), HotUpdate]
public class DataChageFZ : AbstractDynamicFormPlugIn
{
public override void DataChanged(DataChangedEventArgs e)
{
base.DataChanged(e);
int setRows = e.Row;
//需要修改的地方
var entity = this.View.BusinessInfo.GetEntity("FCRMContractEntry");
if (entity == null)
{
entity = this.View.BusinessInfo.GetEntity("FEntity");
}
if (entity == null)
{
entity = this.View.BusinessInfo.GetEntity("FEntityDetail");
}
var tempRow = this.Model.GetEntityDataObject(entity, e.Row);
if (e.Field.Key == "FAuxPropId" || e.Field.Key == "FAuxpropId"
|| e.Field.Key == "FAUXPROPID")
{
//判断是否为应收单明细,应收单明细辅助资料属性不同
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
Aux = tempRow["FAUXPROPID"] as DynamicObject;
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
Aux = tempRow["AuxPropId"] as DynamicObject;
}
//辅助属性 - 长度:$$FAUXPROPID__FF100001,xiugial
if (tempRow != null && Aux != null)
{
if (Aux["F100001"] != null)
{
if (double.TryParse(Aux["F100001"].ToString(), out double length))
{
this.View.Model.SetItemValueByID("F_Length", length, setRows);
}
}
else if (Aux["F100001"] == null)
{
this.View.Model.SetItemValueByID("F_Length", 0, setRows);
}
if (Aux["F100002"] != null)
{
if (double.TryParse(Aux["F100002"].ToString(), out double width))
{
this.View.Model.SetItemValueByID("F_Width", width, setRows);
}
}
else if (Aux["F100002"] == null)
{
this.View.Model.SetItemValueByID("F_Width", 0, setRows);
}
if (Aux["F100004"] != null)
{
if (double.TryParse(Aux["F100004"].ToString(), out double box))
{
this.View.Model.SetItemValueByID("F_Box", box, setRows);
}
}
else if (Aux["F100004"] == null)
{
this.View.Model.SetItemValueByID("F_Box", 0, setRows);
}
if (Aux["F100006"] != null)
{
if (double.TryParse(Aux["F100006"].ToString(), out double rollBox))
{
this.View.Model.SetItemValueByID("F_RollBox", rollBox, setRows);
}
}
else if (Aux["F100006"] == null)
{
this.View.Model.SetItemValueByID("F_RollBox", 0, setRows);
}
if (Aux["F100007"] != null)
{
if (double.TryParse(Aux["F100007"].ToString(), out double depth))
{
this.View.Model.SetItemValueByID("F_Depth", depth, setRows);
}
}
else if (Aux["F100007"] == null)
{
this.View.Model.SetItemValueByID("F_Depth", 0, setRows);
}
}
}
if (e.Field.Key == "FMaterialId" || e.Field.Key == "FMaterialID"
||e.Field.Key == "FMATERIALID")
{
entity = this.View.BusinessInfo.GetEntity("FCRMContractEntry");
if (entity == null)
{
entity = this.View.BusinessInfo.GetEntity("FEntity");
}
if (entity == null)
{
entity = this.View.BusinessInfo.GetEntity("FEntityDetail");
}
tempRow = this.Model.GetEntityDataObject(entity, e.Row);
if (tempRow != null && tempRow["MaterialId"] != null)
{
var WLDS1 = tempRow["MaterialId"] as DynamicObject;
//当物料的分组为成品时。
if (WLDS1["MaterialGroup_id"].ToString() == "100252" || WLDS1["MaterialGroup_id"].ToString() == "109721" ||
WLDS1["MaterialGroup_id"].ToString() == "109723" || WLDS1["MaterialGroup_id"].ToString() == "109724" ||
WLDS1["MaterialGroup_id"].ToString() == "109725" || WLDS1["MaterialGroup_id"].ToString() == "109727" ||
WLDS1["MaterialGroup_id"].ToString() == "109728" || WLDS1["MaterialGroup_id"].ToString() == "116090" ||
WLDS1["MaterialGroup_id"].ToString() == "116149" || WLDS1["MaterialGroup_id"].ToString() == "116093" ||
WLDS1["MaterialGroup_id"].ToString() == "124946" || WLDS1["MaterialGroup_id"].ToString() == "116094")
{
this.View.Model.SetValue("$$FAUXPROPID__FF100007", "0", e.Row);
this.View.Model.SetValue("F_Depth", 0, e.Row);
this.View.Model.SetItemValueByID("$$FAUXPROPID__FF100003", "6822f8e692e739", e.Row);
//设置卷和面积字段锁定
this.View.GetFieldEditor("$$FAUXPROPID__FF100005", e.Row).Enabled = false;
this.View.GetFieldEditor("F_Area", e.Row).Enabled = false;
//当物料的规格型号不为空时
if (WLDS1["Specification"] != null)
{
var spec = WLDS1["Specification"].ToString();
this.View.Model.SetValue("$$FAUXPROPID__FF100002", WLDS1["Specification"].ToString(), e.Row);
this.View.Model.SetItemValueByID("F_Width", WLDS1["Specification"].ToString(), e.Row);
}
}
//当物料为半成品时,赋值默认值
if (WLDS1["MaterialGroup_id"].ToString() == "112215" || WLDS1["MaterialGroup_id"].ToString() == "112217" || WLDS1["MaterialGroup_id"].ToString() == "112218"
|| WLDS1["MaterialGroup_id"].ToString() == "112219" || WLDS1["MaterialGroup_id"].ToString() == "112221" || WLDS1["MaterialGroup_id"].ToString() == "112222"
|| WLDS1["MaterialGroup_id"].ToString() == "116091" || WLDS1["MaterialGroup_id"].ToString() == "116150" || WLDS1["MaterialGroup_id"].ToString() == "116095"
|| WLDS1["MaterialGroup_id"].ToString() == "124564" || WLDS1["MaterialGroup_id"].ToString() == "129698")
{
//设置字段锁定
this.View.GetFieldEditor("$$FAUXPROPID__FF100005", e.Row).Enabled = true;
this.View.GetFieldEditor("F_Area", e.Row).Enabled = false;
this.View.Model.SetValue("$$FAUXPROPID__FF100007", "0", e.Row);
this.View.Model.SetValue("F_Depth", 0, e.Row);
this.View.Model.SetValue("$$FAUXPROPID__FF100005", "0", e.Row);
this.View.Model.SetValue("F_Roll", 0, e.Row);
this.View.Model.SetItemValueByID("$$FAUXPROPID__FF100003", "6822f8e692e739", e.Row);
}
if (WLDS1["MaterialGroup_id"].ToString() == "116097")
{
this.View.Model.SetValue("$$FAUXPROPID__FF100005", "0", e.Row);
this.View.Model.SetValue("F_Roll", 0, e.Row);
}
}
}
if (tempRow == null)
{
return;
}
//获取物料对象
var WLDS = tempRow["MaterialId"] as DynamicObject;
if (WLDS == null)
{
return;
}
//当物料的分组为成品时。
if (WLDS["MaterialGroup_id"].ToString() == "100252" || WLDS["MaterialGroup_id"].ToString() == "109721" ||
WLDS["MaterialGroup_id"].ToString() == "109723" || WLDS["MaterialGroup_id"].ToString() == "109724" ||
WLDS["MaterialGroup_id"].ToString() == "109725" || WLDS["MaterialGroup_id"].ToString() == "109727" ||
WLDS["MaterialGroup_id"].ToString() == "109728" || WLDS["MaterialGroup_id"].ToString() == "116090" ||
WLDS["MaterialGroup_id"].ToString() == "116149" || WLDS["MaterialGroup_id"].ToString() == "116093" ||
WLDS["MaterialGroup_id"].ToString() == "124946" || WLDS["MaterialGroup_id"].ToString() == "116094")
{
//添加箱和卷/箱时,计算卷数
if (e.Field.Key == "F_Box")
{
var BOX = Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row));
var JB = Convert.ToDouble(this.View.Model.GetValue("F_RollBox", e.Row));
this.View.Model.SetItemValueByID("F_Roll", BOX * JB, setRows);
this.View.Model.SetValue("$$FAUXPROPID__FF100005", BOX * JB, e.Row);
}
if (e.Field.Key == "F_RollBox")
{
var BOX = Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row));
var JB = Convert.ToDouble(this.View.Model.GetValue("F_RollBox", e.Row));
this.View.Model.SetItemValueByID("F_Roll", BOX * JB, setRows);
this.View.Model.SetValue("$$FAUXPROPID__FF100005", BOX * JB, e.Row);
}
//处理规格型号
//长度:$$FAUXPROPID__FF100001
//宽度:$$FAUXPROPID__FF100002
//厚度$$FAUXPROPID__FF100007
if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width"
|| e.Field.Key == "F_Depth")
{
var CD = Convert.ToString(this.Model.GetValue("F_Length", e.Row));
var KD = Convert.ToString(this.Model.GetValue("F_Width", e.Row));
var HD = Convert.ToString(this.Model.GetValue("F_Depth", e.Row));
// 去尾0的辅助方法
string TrimTrailingZeros(string input)
{
if (decimal.TryParse(input, out decimal d))
{
return d.ToString("G29");
}
return input;
}
// 初始化规格字符串
var spec = "";
// 处理宽度
if (!string.IsNullOrWhiteSpace(KD) && KD != "0")
{
spec += TrimTrailingZeros(KD);
}
// 处理长度带M
if (!string.IsNullOrWhiteSpace(CD) && CD != "0")
{
if (!string.IsNullOrEmpty(spec)) spec += "*";
spec += TrimTrailingZeros(CD) + "M";
}
// 处理厚度带U
if (!string.IsNullOrWhiteSpace(HD) && HD != "0")
{
if (!string.IsNullOrEmpty(spec)) spec += "*";
spec += TrimTrailingZeros(HD) + "U";
}
// 设置规格字段
this.Model.SetValue("F_Size", spec, e.Row);
//当单位为码的时候
if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53")
{
//判断规格中是否含有M字母
if (tempRow["F_Size"].ToString().Contains("M"))
{
string newSize = tempRow["F_Size"].ToString().Replace("M", "Y");
// 将替换后的值重新赋值
this.View.Model.SetValue("F_Size", newSize, e.Row);
}
}
}
if (e.Field.Key == "F_Roll" || e.Field.Key == "F_Length" || e.Field.Key == "F_Width" || e.Field.Key == "F_Unit2")
{
//单位#字段切换时,计算面积#字段
if (tempRow["F_Unit2"] != null)
{
//当单为米时,面积#=长度*宽度*卷数 /1000
if (tempRow["F_Unit2_Id"].ToString() == "6852862ca2db51")
{
if (Convert.ToString(this.View.Model.GetValue("F_Length", e.Row)) != "0" && Convert.ToString(this.View.Model.GetValue("F_Width", e.Row)) != "0"
&& Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0")
{
var MJ = Convert.ToDouble(this.View.Model.GetValue("F_Length", e.Row)) * Convert.ToDouble(this.View.Model.GetValue("F_Width", e.Row))
* Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)) / 1000;
this.View.Model.SetValue("F_Area", MJ, e.Row);
//当单价种类默认值为面积时,对销售数量赋值面积
if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b")
{
if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0")
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
}
}
}
else
{
this.View.Model.SetValue("F_Area", 0, e.Row);
}
}
else if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53")
{
if (Convert.ToString(this.View.Model.GetValue("F_Length", e.Row)) != "0" && Convert.ToString(this.View.Model.GetValue("F_Width", e.Row)) != "0"
&& Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0")
{
var MJ = Convert.ToDouble(this.View.Model.GetValue("F_Length", e.Row)) * Convert.ToDouble(this.View.Model.GetValue("F_Width", e.Row))
* Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)) / 1000 * 0.9144;
this.View.Model.SetValue("F_Area", MJ, e.Row);
//当单价种类默认值为面积时,对销售数量赋值面积
if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b")
{
if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0")
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
}
}
}
else
{
this.View.Model.SetValue("F_Area", 0, e.Row);
}
}
}
else if (tempRow["F_Unit2"] == null)
{
this.View.Model.SetValue("F_Area", 0, e.Row);
}
//触发数量的值更新
this.View.RuleContainer.RaiseDataChanged("FQty",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.RuleContainer.RaiseDataChanged("FTaxPrice",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
}
//根据单价种类,赋值销售数量
if (e.Field.Key == "F_UnitTypes" || e.Field.Key == "F_Area" || e.Field.Key == "F_Roll"
|| e.Field.Key == "F_Box")
{
//单价种类依面积
if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b")
{
if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0")
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
}
else
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
}
//单价种类依卷数
else if (tempRow["F_UnitTypes_Id"].ToString() == "683fab589cfb2d")
{
if (Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0")
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row);
}
}
else
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
}
//单价种类依箱数
else if (tempRow["F_UnitTypes_Id"].ToString() == "683fab5e9cfb2f")
{
if (Convert.ToString(this.View.Model.GetValue("F_Box", e.Row)) != "0")
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row)), e.Row);
}
else
{
//判断是否为应收单,
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Box", e.Row)), e.Row);
}
}
else
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
}
else
{
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
//触发数量的值更新
this.View.RuleContainer.RaiseDataChanged("FQty",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.RuleContainer.RaiseDataChanged("FTaxPrice",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
}
}
//当物料分组为半成品时
if (WLDS["MaterialGroup_id"].ToString() == "112215" || WLDS["MaterialGroup_id"].ToString() == "112217" || WLDS["MaterialGroup_id"].ToString() == "112218"
|| WLDS["MaterialGroup_id"].ToString() == "112219" || WLDS["MaterialGroup_id"].ToString() == "112221" || WLDS["MaterialGroup_id"].ToString() == "112222"
|| WLDS["MaterialGroup_id"].ToString() == "116091" || WLDS["MaterialGroup_id"].ToString() == "116150" || WLDS["MaterialGroup_id"].ToString() == "116095"
|| WLDS["MaterialGroup_id"].ToString() == "124564" || WLDS["MaterialGroup_id"].ToString() == "129698")
{
//填写辅助属性卷数时,赋值卷数#字段
//判断是否为应收单明细,应收单明细辅助资料属性不同
var entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
DynamicObject Aux = null;
if (entity1 != null)
{
Aux = tempRow["FAUXPROPID"] as DynamicObject;
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
Aux = tempRow["AuxPropId"] as DynamicObject;
}
if (Aux == null)
{
return;
}
if (Aux["F100005"] != null)
{
this.View.Model.SetValue("F_Roll", Aux["F100005"], e.Row);
}
else if(Aux["F100005"] == null)
{
this.View.Model.SetValue("F_Roll", 0, e.Row);
}
//处理规格型号
//长度:$$FAUXPROPID__FF100001
//宽度:$$FAUXPROPID__FF100002
//厚度$$FAUXPROPID__FF100007
if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width"
|| e.Field.Key == "F_Depth")
{
var CD = Convert.ToString(this.Model.GetValue("F_Length", e.Row));
var KD = Convert.ToString(this.Model.GetValue("F_Width", e.Row));
var HD = Convert.ToString(this.Model.GetValue("F_Depth", e.Row));
// 去尾0的辅助方法
string TrimTrailingZeros(string input)
{
if (decimal.TryParse(input, out decimal d))
{
return d.ToString("G29");
}
return input;
}
// 初始化规格字符串
var spec = "";
// 处理宽度
if (!string.IsNullOrWhiteSpace(KD) && KD != "0")
{
spec += TrimTrailingZeros(KD);
}
// 处理长度带M
if (!string.IsNullOrWhiteSpace(CD) && CD != "0")
{
if (!string.IsNullOrEmpty(spec)) spec += "*";
spec += TrimTrailingZeros(CD) + "M";
}
// 处理厚度带U
if (!string.IsNullOrWhiteSpace(HD) && HD != "0")
{
if (!string.IsNullOrEmpty(spec)) spec += "*";
spec += TrimTrailingZeros(HD) + "U";
}
// 设置规格字段
this.Model.SetValue("F_Size", spec, e.Row);
//当单位为码的时候
if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53")
{
//判断规格中是否含有M字母
if (tempRow["F_Size"].ToString().Contains("M"))
{
string newSize = tempRow["F_Size"].ToString().Replace("M", "Y");
// 将替换后的值重新赋值
this.View.Model.SetValue("F_Size", newSize, e.Row);
}
}
}
//当填写长度和宽度时,计算面积
if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width")
{
if (Convert.ToString(this.View.Model.GetValue("F_Length", e.Row)) != "0" && Convert.ToString(this.View.Model.GetValue("F_Width", e.Row)) != "0")
{
var MJ = Convert.ToDouble(this.View.Model.GetValue("F_Length", e.Row)) * Convert.ToDouble(this.View.Model.GetValue("F_Width", e.Row))/ 1000;
this.View.Model.SetValue("F_Area", MJ, e.Row);
//当单价种类默认值为面积时,对销售数量赋值面积
if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b")
{
if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0")
{
entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
}
}
}
else
{
this.View.Model.SetValue("F_Area", 0, e.Row);
}
//触发数量的值更新
this.View.RuleContainer.RaiseDataChanged("FQty",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.RuleContainer.RaiseDataChanged("FTaxPrice",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
}
//根据单价种类,赋值销售数量字段
if (e.Field.Key == "F_UnitTypes" || e.Field.Key == "F_Area" || e.Field.Key == "F_Roll"
|| e.Field.Key == "F_Box")
{
//单价种类依面积
if (tempRow["F_UnitTypes_Id"].ToString() == "683fab479cfb2b")
{
if (Convert.ToString(this.View.Model.GetValue("F_Area", e.Row)) != "0")
{
entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Area", e.Row)), e.Row);
}
}
else
{
entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
}
//单价种类依卷数
else if (tempRow["F_UnitTypes_Id"].ToString() == "683fab589cfb2d")
{
if (Convert.ToString(this.View.Model.GetValue("F_Roll", e.Row)) != "0")
{
entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", Convert.ToDouble(this.View.Model.GetValue("F_Roll", e.Row)), e.Row);
}
}
else
{
entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
}
else
{
entity1 = this.View.BusinessInfo.GetEntity("FEntityDetail");
Aux = null;
if (entity1 != null)
{
this.View.Model.SetValue("FPriceQty", 0, e.Row);
}
else
{
//判断是否为应收单应收单辅助资料属性字段不同为FAUXPROPID
this.View.Model.SetValue("FQty", 0, e.Row);
}
}
//触发数量的值更新
this.View.RuleContainer.RaiseDataChanged("FQty",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.RuleContainer.RaiseDataChanged("FTaxPrice",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
}
}
//当物料分组为薄膜类
if (WLDS["MaterialGroup_id"].ToString() == "116097")
{
//处理规格型号
//长度:$$FAUXPROPID__FF100001
//宽度:$$FAUXPROPID__FF100002
//厚度$$FAUXPROPID__FF100007
if (e.Field.Key == "F_Length" || e.Field.Key == "F_Width"
|| e.Field.Key == "F_Depth")
{
var CD = Convert.ToString(this.Model.GetValue("F_Length",e.Row));
var KD = Convert.ToString(this.Model.GetValue("F_Width", e.Row));
var HD = Convert.ToString(this.Model.GetValue("F_Depth", e.Row));
// 去尾0的辅助方法
string TrimTrailingZeros(string input)
{
if (decimal.TryParse(input, out decimal d))
{
return d.ToString("G29");
}
return input;
}
// 初始化规格字符串
var spec = "";
// 1厚度带 U
if (!string.IsNullOrWhiteSpace(HD) && HD != "0")
spec += TrimTrailingZeros(HD) + "U";
// 2宽度
if (!string.IsNullOrWhiteSpace(KD) && KD != "0")
{
if (!string.IsNullOrEmpty(spec)) spec += "*";
spec += TrimTrailingZeros(KD);
}
// 3长度带 M
if (!string.IsNullOrWhiteSpace(CD) && CD != "0")
{
if (!string.IsNullOrEmpty(spec)) spec += "*";
spec += TrimTrailingZeros(CD) + "M";
}
// 设置规格字段
this.Model.SetValue("F_Size", spec, e.Row);
//当单位为码的时候
if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53")
{
//判断规格中是否含有M字母
if (tempRow["F_Size"].ToString().Contains("M"))
{
string newSize = tempRow["F_Size"].ToString().Replace("M", "Y");
// 将替换后的值重新赋值
this.View.Model.SetValue("F_Size", newSize, e.Row);
}
}
}
}
//当切换单位字段为码时将规格型号中的M替换成为Y
if (e.Field.Key == "F_Unit2")
{
//当单位为码的时候
if (tempRow["F_Unit2_Id"].ToString() == "68528632a2db53")
{
//判断规格中是否含有M字母
if (tempRow["F_Size"].ToString().Contains("M"))
{
string newSize = tempRow["F_Size"].ToString().Replace("M", "Y");
// 将替换后的值重新赋值
this.View.Model.SetValue("F_Size", newSize, e.Row);
}
}
else if (tempRow["F_Unit2_Id"].ToString() == "6852862ca2db51")
{
//判断规格中是否含有Y字母
if (tempRow["F_Size"].ToString().Contains("Y"))
{
string newSize = tempRow["F_Size"].ToString().Replace("Y", "M");
// 将替换后的值重新赋值
this.View.Model.SetValue("F_Size", newSize, e.Row);
}
}
}
if (e.Field.Key == "FQty" )
{
//触发字段值更新
this.View.RuleContainer.RaiseDataChanged("FQty",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.InvokeFieldUpdateService("FQty", e.Row);
this.View.RuleContainer.RaiseDataChanged("FTaxPrice",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.InvokeFieldUpdateService("FTaxPrice", e.Row);
}
//应收单特殊设置
if (e.Field.Key == "FPriceQty")
{
//触发字段值更新
this.View.RuleContainer.RaiseDataChanged("FPriceQty",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.InvokeFieldUpdateService("FPriceQty", e.Row);
this.View.RuleContainer.RaiseDataChanged("FTaxPrice",
this.Model.DataObject, new BOSActionExecuteContext(this.View));
this.View.InvokeFieldUpdateService("FTaxPrice", e.Row);
}
}
}
}