Reputation: 75
how do I Enable usrsubcontractNbr in rowselected Event: I am unable to access the usrSubcontractNbr from neither of the DAC (ApTran and ApTranExt)
UsrSubcontractNbr field was defined in construction feature package. APTran is converted into dll.
How can access this field?
Upvotes: 0
Views: 66
Reputation: 5613
Seems like a similar issue to this post: How to access Custom field,which is defined in Construction feature package- Acumatica
Searching the PX.Objects.CN.dll from the construction install package you will find:
using PX.Data;
using PX.Objects.AP;
using PX.Objects.CS;
namespace PX.Objects.CN.Subcontracts.AP.CacheExtensions
{
public sealed class ApTranExt : PXCacheExtension<APTran>
{
[PXString(15, IsUnicode = true)]
[PXUIField(DisplayName = "Subcontract Nbr.", Enabled = false, IsReadOnly = true)]
public string UsrSubcontractNbr
{
get
{
if (!(this.get_Base().get_POOrderType() == "RS"))
return (string) null;
return this.get_Base().get_PONbr();
}
}
[PXInt]
[PXUIField(DisplayName = "Subcontract Line", Enabled = false, IsReadOnly = true, Visible = false)]
public int? UsrSubcontractLineNbr
{
get
{
if (!(this.get_Base().get_POOrderType() == "RS"))
return new int?();
return this.get_Base().get_POLineNbr();
}
}
public static bool IsActive()
{
return PXAccess.FeatureInstalled<FeaturesSet.construction>();
}
public ApTranExt()
{
base.\u002Ector();
}
public abstract class usrSubcontractNbr : IBqlField, IBqlOperand
{
}
public abstract class usrSubcontractLineNbr : IBqlField, IBqlOperand
{
}
}
}
To access the field you will need to use PX.Objects.CN.Subcontracts.AP.CacheExtensions.ApTranExt
Edit. based on the comment if having an issue using rowselected be sure to use the signature with the PXRowSelected delegate so you can control when you enabled code to run after the base call. you might have a problem where the base call is running after your code which could disable the field again.
Ex:
protected void APTran_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected del)
{
del?.Invoke(cache, e);
var row = (APTran) e.Row;
if (row == null) return;
PXUIFieldAttribute.SetEnabled<PX.Objects.CN.Subcontracts.AP.CacheExtensions.ApTranExt.usrSubcontractNbr>(
cache, row, true);
}
Upvotes: 1