acumatica
Aggiunta del supporto di attributo all'entità ordini di vendita out-of-box
Ricerca…
introduzione
Acumatica ERP consente di definire gli attributi per una classificazione flessibile e significativa di un'entità (Lead, Stock / Non-Stock Items Etc.) come richiesto per le esigenze specifiche dell'azienda. Un attributo è una proprietà che consente di specificare informazioni aggiuntive per gli oggetti nel sistema. Gli attributi sono definiti nel contesto di una classe che è un raggruppamento degli account aziendali (inclusi lead, opportunità, clienti e casi), articoli di magazzino e non di uno o più delle loro proprietà.
Osservazioni
Questo esempio è applicabile alla serie Acumatica 6.0
Questo articolo fornisce istruzioni su come aggiungere il supporto di Acumatica ERP Attribute all'entità ordini di vendita out-of-box
Al centro, il DAC principale dell'entità deve avere la colonna GUID ( NoteID
) per fare riferimento CSAnswers
tabella CSAnswers
e deve avere un campo che identifichi la classe dell'entità.
Utilizzeremo il tipo di Order Type
per definire l'elenco degli attributi per raccogliere particolari informazioni specifiche del tipo di ordine.
Creare un'estensione del grafico per SOOrderTypeMaint
Grafico e dichiarare la visualizzazione dei dati per definire un elenco di attributi per un particolare tipo di ordine. CSAttributeGroupList<TEntityClass, TEntity>
out-of-box CSAttributeGroupList<TEntityClass, TEntity>
public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
[PXViewName(PX.Objects.CR.Messages.Attributes)]
public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}
Creare un'estensione grafico per SOOrderEntry
Grafico e dichiarare la visualizzazione dati per gli attributi specifici per il tipo di ordine corrente.
public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
public CRAttributeList<SOOrder> Answers;
}
Crea estensione DAC per SOOrder
DAC e dichiara campo definito dall'utente decorato con attributo CRAttributesField
e specifica il campo ClassID
- nel nostro caso è OrderType
.
public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
#region UsrAttributes
public abstract class usrAttributes : IBqlField { }
[CRAttributesField(typeof(SOOrder.orderType))]
public virtual string[] UsrAttributes { get; set; }
#endregion
}
Modificare la pagina dei Order Types
( SO201000
) come di seguito usando il motore di personalizzazione
<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>
Modificare la pagina Sales Orders
( SO301000
) come sotto utilizzando Customization Engine
<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>
Scarica il pacchetto di distribuzione