显示来自另一个屏幕的字段



我在Sales Orders中分别创建了一个自定义字段在中添加SO行对话框中的发票屏幕显示库存项目中的关税代码的值屏幕上。我使用下面的代码来显示它们:

public class SOLineExt : PXCacheExtension<PX.Objects.SO.SOLine>
{
#region UsrTariffCode
[PXDBString(30)]
[PXUIField(DisplayName = "Tariff Code", Enabled = false)]
[PXFormula(typeof(Selector<SOLine.inventoryID,InventoryItem.hSTariffCode>))]
public virtual string UsrTariffCode { get; set; }
public abstract class usrTariffCode : PX.Data.BQL.BqlString.Field<usrTariffCode> { }
#endregion
}
public class SOLineForDirectInvoiceExt : PXCacheExtension<PX.Objects.SO.DAC.Projections.SOLineForDirectInvoice>
{
#region UsrTariffCode
[PXDBString(50, BqlField = typeof(SOLineExt.usrTariffCode))]
[PXUIField(DisplayName = "Tariff Code", Enabled = false)]
public virtual string UsrTariffCode { get; set; }
public abstract class usrTariffCode : PX.Data.BQL.BqlString.Field<usrTariffCode> { }
#endregion
}

是否有其他方法可以通过fieldupdateFieldDefaulting方法?

我已经尝试在SOLineExt中插入下面的代码类,但未能得到期望的结果。

protected void _(Events.FieldUpdated<SOLine, SOLine.inventoryID> e)
{
SOLine row = e.Row;
if (row.InventoryID != null)
{
InventoryItem item = PXSelectorAttribute.Select<SOLine.inventoryID>(e.Cache, row) as InventoryItem;
e.Cache.SetValueExt<SOLineExt.usrTariffCode>(row, item.HSTariffCode);
}
}

您可以使用feildselection事件作为以编程方式获取和设置所需值的替代方法。

void ARDocumentResult_YourFeild_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
var returnValue = PerformLogicToGetValue();
e.ReturnValue = returnValue;
}
private string PerformLogicToGetValue()
{
//do processing to get what you need...
return "your desired value";
}

相关内容

  • 没有找到相关文章

最新更新