I am trying to create an AWOE screen from scratch and have extended the ScanHeader to include the fields I need.
simplified I have this (I have tried WMSScanHeader, QtyScanHeader, ScanHeader also) :
public sealed class TestingScanHeader : PXCacheExtension<ScanHeader>
{
#region HdrOrderType
[PXDBString(2, IsKey = true, IsFixed = true, InputMask = "")]
[PXUIField(DisplayName = "Order Type")]
[PXSelector(
typeof(Search<AMOrderType.orderType>),
SubstituteKey = typeof(AMOrderType.orderType),
DescriptionField = typeof(AMOrderType.descr))]
[PXDefault("RO")] // Set default value to "RO"
public string HdrOrderType { get; set; }
public abstract class hdrOrderType : PX.Data.BQL.BqlString.Field<hdrOrderType> { }
#endregion
#region HdrProdOrdID
[PXDBString(19, IsKey = true, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Prod Ord ID")]
[PXSelector(
typeof(Search<AMProdItem.prodOrdID,
Where<AMProdItem.statusID, In3<PX.Objects.AM.Attributes.ProductionOrderStatus.inProcess, PX.Objects.AM.Attributes.ProductionOrderStatus.released>>>),
SubstituteKey = typeof(AMProdItem.prodOrdID),
DescriptionField = typeof(AMProdItem.descr))]
public string HdrProdOrdID { get; set; }
public abstract class hdrProdOrdID : PX.Data.BQL.BqlString.Field<hdrProdOrdID> { }
#endregion
#region HdrEmployeeID
[PXInt()]
[PXUIField(DisplayName = "Employee ID")]
[PX.Objects.AM.Attributes.ProductionEmployeeSelector]
public int? HdrEmployeeID { get; set; }
public abstract class hdrEmployeeID : PX.Data.BQL.BqlInt.Field<hdrEmployeeID> { }
#endregion
#region EmployeeAcctCD
[PXString(30)]
[PXUIField(DisplayName = "Employee AcctCD")]
public string EmployeeAcctCD { get; set; }
public abstract class employeeAcctCD : PX.Data.BQL.BqlString.Field<employeeAcctCD> { }
#endregion
#region DefaultInventoryID
[PXInt()]
[PXUIField(DisplayName = "Dflt Inventory ID")]
[PXSelector(
typeof(Search<InventoryItem.inventoryID>),
SubstituteKey = typeof(InventoryItem.inventoryCD),
DescriptionField = typeof(InventoryItem.descr))]
public int? DefaultInventoryID { get; set; }
public abstract class defaultInventoryID : PX.Data.BQL.BqlInt.Field<defaultInventoryID> { }
#endregion
}
When I try to load the screen I get this:
|
Source File: C:\Program Files\Acumatica ERP\EdgemateDB\Controls\PageTitle.ascx.cs Line: 971
Stack Trace:
|
Basically it says that the primaryview is not initialized. The primary veiw is the HeaderView which is
public PXFilter<PX.BarcodeProcessing.ScanHeader> HeaderView;
(my extension extends ScanHeader).
If I change TestingScanHeader to a DAC that points at a table, (inherits from PXBqlTable, IBqlTable) it works and the screen loads. But I need my HeaderView to point at an extended ScanHeader. Any thoughts would be super thanks.