acumatica
Dodanie obsługi atrybutów do gotowego elementu zamówienia sprzedaży
Szukaj…
Wprowadzenie
Acumatica ERP pozwala definiować atrybuty dla elastycznej, znaczącej klasyfikacji jednostki (potencjalna sprzedaż, towary magazynowe / inne niż magazynowe itd.) Zgodnie z wymaganiami specyficznymi dla Twojej firmy. Atrybut to właściwość, która umożliwia określenie dodatkowych informacji dla obiektów w systemie. Atrybuty są definiowane w kontekście klasy, która jest grupowaniem kont biznesowych (w tym potencjalnych klientów, szans, klientów i spraw), towarów magazynowych i innych niż magazynowe według jednej lub więcej ich właściwości.
Uwagi
Ten przykład dotyczy serii Acumatica 6.0
Ten artykuł zawiera instrukcje, jak dodać obsługę atrybutu Acumatica ERP do gotowego elementu zamówienia sprzedaży
Zasadniczo główny DAC encji musi mieć kolumnę GUID ( NoteID
), aby odwoływać się do tabeli CSAnswers
i musi mieć pole identyfikujące klasę encji.
Wykorzystamy Order Type
do zdefiniowania listy atrybutów w celu zebrania informacji specyficznych dla typu zamówienia.
Utwórz rozszerzenie wykresu dla SOOrderTypeMaint
Graph i zadeklaruj widok danych, aby zdefiniować listę atrybutów dla określonego typu zamówienia. Będziemy używać CSAttributeGroupList<TEntityClass, TEntity>
public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
[PXViewName(PX.Objects.CR.Messages.Attributes)]
public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}
Utwórz rozszerzenie wykresu dla SOOrderEntry
Graph i zadeklaruj widok danych dla atrybutów specyficznych dla bieżącego typu zamówienia.
public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
public CRAttributeList<SOOrder> Answers;
}
Tworzenie DAC Extension dla SOOrder
DAC i użytkownik deklaruje zdefiniowane pole ozdobione CRAttributesField
atrybut i określ ClassID
pole - w naszym przypadku jest to OrderType
.
public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
#region UsrAttributes
public abstract class usrAttributes : IBqlField { }
[CRAttributesField(typeof(SOOrder.orderType))]
public virtual string[] UsrAttributes { get; set; }
#endregion
}
Zmodyfikuj stronę Order Types
( SO201000
) jak poniżej za pomocą silnika dostosowywania
<px:PXTabItem Text="Attributes">
<Template>
<px:PXGrid runat="server" BorderWidth="0px" Height="150px" SkinID="Details" Width="100%" ID="AttributesGrid"
MatrixMode="True" DataSourceID="ds">
<AutoSize Enabled="True" Container="Window" MinHeight="150" />
<Levels>
<px:PXGridLevel DataMember="Mapping">
<RowTemplate>
<px:PXSelector runat="server" DataField="AttributeID" FilterByAllFields="True" AllowEdit="True"
CommitChanges="True" ID="edAttributeID" /></RowTemplate>
<Columns>
<px:PXGridColumn DataField="AttributeID" Width="81px" AutoCallBack="True" LinkCommand="ShowDetails" />
<px:PXGridColumn DataField="Description" Width="351px" AllowNull="False" />
<px:PXGridColumn DataField="SortOrder" TextAlign="Right" Width="81px" />
<px:PXGridColumn DataField="Required" Type="CheckBox" TextAlign="Center" AllowNull="False" />
<px:PXGridColumn DataField="CSAttribute__IsInternal" Type="CheckBox" TextAlign="Center" AllowNull="True" />
<px:PXGridColumn DataField="ControlType" Type="DropDownList" Width="81px" AllowNull="False" />
<px:PXGridColumn DataField="DefaultValue" RenderEditorText="False" Width="100px" AllowNull="True" />
</Columns>
</px:PXGridLevel>
</Levels>
</px:PXGrid>
</Template>
</px:PXTabItem>
Zmodyfikuj stronę Sales Orders
( SO301000
), jak poniżej, za pomocą silnika dostosowywania
<px:PXTabItem Text="Attributes">
<Template>
<px:PXGrid runat="server" ID="PXGridAnswers" Height="200px" SkinID="Inquire"
Width="100%" MatrixMode="True" DataSourceID="ds">
<AutoSize Enabled="True" MinHeight="200" />
<ActionBar>
<Actions>
<Search Enabled="False" />
</Actions>
</ActionBar>
<Mode AllowAddNew="False" AllowDelete="False" AllowColMoving="False" />
<Levels>
<px:PXGridLevel DataMember="Answers">
<Columns>
<px:PXGridColumn TextAlign="Left" DataField="AttributeID" TextField="AttributeID_description"
Width="250px" AllowShowHide="False" />
<px:PXGridColumn Type="CheckBox" TextAlign="Center" DataField="isRequired" Width="80px" />
<px:PXGridColumn DataField="Value" Width="300px" AllowSort="False" AllowShowHide="False" />
</Columns>
</px:PXGridLevel>
</Levels>
</px:PXGrid>
</Template>
</px:PXTabItem>