acumatica
Rozszerzanie listy podmiotów obsługiwanych przez zadania, zdarzenia i działania
Szukaj…
Wprowadzenie
W tym temacie dowiesz się, jak rozszerzyć pole Opis podmiotu powiązanego o encję niestandardową dla zadań, zdarzeń i działań.
Dodawanie testowych zleceń pracy do pola opisu podmiotu powiązanego
Załóżmy, że utworzyłeś już niestandardowy ekran Testuj zlecenia pracy do zarządzania testowymi zleceniami pracy w aplikacji Acumatica ERP:
Jest już NoteID
pole zadeklarowane w TestWorkOrder
DAC, udało się na ekranie zleceń Test:
[Serializable]
public class TestWorkOrder : IBqlTable
{
...
#region NoteID
public abstract class noteID : IBqlField { }
[PXNote]
public virtual Guid? NoteID { get; set; }
#endregion
...
}
a właściwość ActivityIndicator
jest ustawiona na True dla kontenera PXForm
najwyższego poziomu:
<px:PXFormView ID="form" runat="server" ActivityIndicator="true" DataSourceID="ds" Style="z-index: 100" DataMember="ITWO" Width="100%" >
Jednak po utworzeniu nowego zadania, zdarzenia lub działania dla testowego zlecenia pracy kontrola Opis jednostki powiązanej jest zawsze pusta:
Aby dodać encję Testuj zlecenie pracy do selektora Opis jednostki powiązanej , wykonaj następujące czynności:
W polu
PXNoteAttribute
na TestWorkOrder.NoteID ustaw właściwośćShowInReferenceSelector
na True i zdefiniuj wyrażenie BQL, aby wybrać rekordy danych wyświetlane w wyszukiwaniu encji :[PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>))] public virtual Guid? NoteID { get; set; }
Udekoruj DAC
TestWorkOrder
za pomocąPXCacheNameAttribute
iPXPrimaryGraphAttribute
:[PXLocalizable] public static class Messages { public const string Opportunity = "Test Work Order"; } [Serializable] [PXCacheName(Messages.Opportunity)] [PXPrimaryGraph(typeof(TestWorkOrderEntry))] public class TestWorkOrder : IBqlTable { ... }
Atrybut
PXCacheName
określa przyjazną dla użytkownika nazwę dla DACTestWorkOrder
(w tym przypadku testowego zlecenia pracy ), który będzie dostępny w menu rozwijanym Typ . AtrybutPXPrimaryGraph
określa stronę wejściową, na której użytkownik jest przekierowywany w celu edycji testowego zlecenia pracy, którym jest ekran Testowych zleceń pracy w podanym przykładzie.Udekoruj niektóre pola
TestWorkOrder
za pomocąPXFieldDescriptionAttribute
. Te wartości pól zostaną połączone w pojedynczą etykietę tekstową reprezentującą referencyjne zlecenie pracy testowej w polu Opis podmiotu powiązanego :... [PXFieldDescription] public virtual string OrderNbr { get; set; } ... [PXFieldDescription] public virtual String Status { get; set; } ... [PXFieldDescription] public virtual string POOrderNbr { get; set; }
Zdefiniuj listę kolumn wyświetlanych w wyszukiwaniu encji , wybierając jedną z poniższych metod:
za. Użyj właściwości
PXNoteAttribute.FieldList
(otrzymuje najwyższy priorytet):public abstract class noteID : IBqlField { } [PXNote( ShowInReferenceSelector = true, Selector = typeof(Search<TestWorkOrder.orderNbr>), FieldList = new Type[] { typeof(TestWorkOrder.orderNbr), typeof(TestWorkOrder.orderDate), typeof(TestWorkOrder.status), typeof(TestWorkOrder.poOrderNbr) })] public virtual Guid? NoteID { get; set; }
b. Pożycz listę kolumn zdefiniowanych dla wyszukiwania OrderNbr :
public abstract class orderNbr : IBqlField { } [PXDBString(15, IsKey = true, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC")] [PXDefault()] [PXUIField(DisplayName = "ITWO Nbr.", Visibility = PXUIVisibility.SelectorVisible)] [PXSelector(typeof(Search<TestWorkOrder.orderNbr>), typeof(TestWorkOrder.orderNbr), typeof(TestWorkOrder.orderDate), typeof(TestWorkOrder.status), typeof(TestWorkOrder.poOrderNbr))] [PXFieldDescription] public virtual string OrderNbr { get; set; }
do. Pokaż wszystkie pola
TestWorkOrder
z widocznością ustawioną naPXUIVisibility.SelectorVisible
:... [PXUIField(DisplayName = "ITWO Nbr.", Visibility = PXUIVisibility.SelectorVisible)] public virtual string OrderNbr { get; set; } ... [PXUIField(DisplayName = "Order Date", Visibility = PXUIVisibility.SelectorVisible)] public virtual DateTime? OrderDate { get; set; } ... [PXUIField(DisplayName = "Status", Visibility = PXUIVisibility.SelectorVisible)] public virtual String Status { get; set; } ... [PXUIField(DisplayName = "Purchase Order", Visibility = PXUIVisibility.SelectorVisible)] public virtual string POOrderNbr { get; set; }
Po wykonaniu 4 powyższych kroków testowe zlecenia pracy powinny być w pełni obsługiwane w polu Opis podmiotu powiązanego w zadaniach, zdarzeniach i działaniach