Избегайте переопределения DataView и назначения значения в делегате представления.Есть и другой, менее сложный способ добиться этого.
Это должно быть осуществимо с помощью PXFormula / PXDBScalar или RowSelected / FieldSelecting.Пример:
using PX.Data;
using PX.Objects.AR;
namespace PX.Objects.DR
{
public class DRRecognition_Extension:PXGraphExtension<DRRecognition>
{
public void ScheduledTran_UsrRefNbr_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
DRRecognition.ScheduledTran tran = e.Row as DRRecognition.ScheduledTran;
if (tran != null)
{
ARInvoice invoice = PXSelectJoin<ARInvoice,
InnerJoin<DRSchedule, On<DRSchedule.scheduleNbr, Equal<Required<DRRecognition.ScheduledTran.scheduleNbr>>>>,
Where<ARInvoice.docType, Equal<DRSchedule.docType>,
And<ARInvoice.refNbr, Equal<DRSchedule.refNbr>>>>.Select(Base, tran.ScheduleNbr);
if (invoice != null)
{
e.ReturnValue = invoice.RefNbr;
}
}
}
}
}