acumatica
Добавление поддержки атрибутов в готовое подразделение по заказу клиента
Поиск…
Вступление
Acumatica ERP позволяет вам определять атрибуты для гибкой, значимой классификации Entity (Lead, Stock / Non-Stock Items Etc.), как это требуется для конкретных потребностей вашей компании. Атрибут - это свойство, которое позволяет вам указывать дополнительную информацию для объектов в системе. Атрибуты определяются в контексте класса, который представляет собой группу бизнес-счетов (включая потенциальных клиентов, возможностей, клиентов и случаев), фондовых и внебалансовых позиций одним или несколькими их свойствами.
замечания
Этот пример применим к серии Acumatica 6.0
В этой статье описывается, как добавить поддержку AcumaticA ERP Attribute к готовой организации заказа клиента
В самом ядре основной ЦАП вашего объекта должен иметь столбец GUID ( NoteID
) для ссылки на таблицу CSAnswers
и должен иметь поле, которое идентифицирует класс Entity.
Мы будем использовать Order Type
чтобы определить список атрибутов для сбора конкретной информации о типе заказа.
Создайте расширение графа для SOOrderTypeMaint
Graph и объявите представление данных, чтобы определить список атрибутов для определенного типа заказа. Мы будем использовать CSAttributeGroupList<TEntityClass, TEntity>
public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
[PXViewName(PX.Objects.CR.Messages.Attributes)]
public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}
Создайте расширение графа для графика SOOrderEntry
и объявите представление данных для атрибутов, характерных для текущего типа заказа.
public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
public CRAttributeList<SOOrder> Answers;
}
Создайте расширение ЦАП для DAC SOOrder
и объявите пользовательское поле, украшенное атрибутом CRAttributesField
и укажите поле ClassID
- в нашем случае это OrderType
.
public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
#region UsrAttributes
public abstract class usrAttributes : IBqlField { }
[CRAttributesField(typeof(SOOrder.orderType))]
public virtual string[] UsrAttributes { get; set; }
#endregion
}
Страница «Изменение Order Types
SO201000
( SO201000
), как SO201000
ниже, с помощью механизма настройки
<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>
Измените страницу « Sales Orders
( SO301000
), как SO301000
ниже, с помощью механизма настройки
<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>