Добрый день
Я расширил сетку на кнопке распределения на странице отгрузки. У меня проблема в том, что я не могу получить значение для отображения во вновь создаваемых полях.
Вот расширение DA C:
using PX.Objects.SO;
using PX.Data;
using System.Collections.Generic;
using System;
namespace PX.Objects.SO
{
public class SOShipLineSplitExt : PXCacheExtension<PX.Objects.SO.SOShipLineSplit>
{
#region UsrSKR
[PXDBDecimal]
[PXUIField(DisplayName = "SKR")]
public virtual Decimal? UsrSKR { get; set; }
public abstract class usrSKR : PX.Data.BQL.BqlDecimal.Field<usrSKR> { }
#endregion
#region UsrUSKR
[PXDBDecimal]
[PXUIField(DisplayName = "USKR")]
public virtual Decimal? UsrUSKR { get; set; }
public abstract class usrUSKR : PX.Data.BQL.BqlDecimal.Field<usrUSKR> { }
#endregion
#region UsrVUS
[PXDBDecimal]
[PXUIField(DisplayName = "VUS")]
public virtual Decimal? UsrVUS { get; set; }
public abstract class usrVUS : PX.Data.BQL.BqlDecimal.Field<usrVUS> { }
#endregion
}
}
namespace Unassigned
{
public class SOShipLineSplitPXExt : PXCacheExtension<SOShipLineSplit>
{
#region UsrSKR
[PXDBDecimal]
[PXUIField(DisplayName = "SKR")]
public virtual Decimal? UsrSKR { get; set; }
public abstract class usrSKR : PX.Data.BQL.BqlDecimal.Field<usrSKR> { }
#endregion
#region UsrUSKR
[PXDBDecimal]
[PXUIField(DisplayName = "USKR")]
public virtual Decimal? UsrUSKR { get; set; }
public abstract class usrUSKR : PX.Data.BQL.BqlDecimal.Field<usrUSKR> { }
#endregion
#region UsrVUS
[PXDBDecimal]
[PXUIField(DisplayName = "VUS")]
public virtual Decimal? UsrVUS { get; set; }
public abstract class usrVUS : PX.Data.BQL.BqlDecimal.Field<usrVUS> { }
#endregion
}
}
namespace Table
{
public class SOShipLineSplitPXExt : PXCacheExtension<PX.Objects.SO.Table.SOShipLineSplit>
{
#region UsrSKR
[PXDBDecimal]
[PXUIField(DisplayName = "SKR")]
public virtual Decimal? UsrSKR { get; set; }
public abstract class usrSKR : PX.Data.BQL.BqlDecimal.Field<usrSKR> { }
#endregion
#region UsrUSKR
[PXDBDecimal]
[PXUIField(DisplayName = "USKR")]
public virtual Decimal? UsrUSKR { get; set; }
public abstract class usrUSKR : PX.Data.BQL.BqlDecimal.Field<usrUSKR> { }
#endregion
#region UsrVUS
[PXDBDecimal]
[PXUIField(DisplayName = "VUS")]
public virtual Decimal? UsrVUS { get; set; }
public abstract class usrVUS : PX.Data.BQL.BqlDecimal.Field<usrVUS> { }
#endregion
}
}
Я буду собирать данные из таблицы INTran, таким образом, использование typeof также будет работать.
Вот несколько тестов, которые я попробовал:
using PX.Data;
using PX.Objects.IN;
namespace PX.Objects.SO
{
public class SOShipmentEntry_Extension : PXGraphExtension<SOShipmentEntry>
{
#region Event Handlers
[PXDefault(typeof(Search< INTran.refNbr, Wher e<INTran.inventoryID,Equal<SOShipLineSplit.inventoryID>
,And<INTran.lotSerialNbr, Equal<SOShipLineSplit.lotSerialNbr>>>>))]
protected virtual void SOShipLineSplit_UsrSKR_CacheAttached(PXCache cache)
{
}
protected void SOShipLineSplit_RowInserted(PXCache cache, PXRowInsertedEventArgs e)
{
var row = (SOShipLineSplit)e.Row;
if (row == null) return;
this.Base.splits.SetValueExt<SOShipLineSplitExt.usrSKR>(row, 11);
SOShipLineSplitExt itemExt = PXCache<SOShipLineSplit>.GetExtension<SOShipLineSplitExt>(row);
itemExt.UsrUSKR = 22;
this.Base.splits.SetValueExt<SOShipLineSplitExt.usrVUS>(row, 33);
}
protected void SOShipLineSplit_UsrSKR_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
{
var row = (SOShipLineSplit)e.Row;
if (row == null) return;
SOShipLineSplitExt itemExt = PXCache<SOShipLineSplit>.GetExtension<SOShipLineSplitExt>(row);
itemExt.UsrSKR = 22;
}
#endregion
}
}
Я также установил для новых полей commitChanges значение true. Любая помощь будет цениться