Buscar..


Introducción

Acumatica ERP le permite definir atributos para una clasificación flexible y significativa de una Entidad (clientes potenciales, acciones / no-acciones, etc.) según sea necesario para las necesidades específicas de su empresa. Un atributo es una propiedad que le permite especificar información adicional para los objetos en el sistema. Los atributos se definen en el contexto de una clase que es una agrupación de las cuentas comerciales (incluidos clientes potenciales, oportunidades, clientes y casos), acciones y artículos no en existencia por una o más de sus propiedades.

Observaciones

Este ejemplo es aplicable a la serie Acumatica 6.0.

Este artículo proporciona una guía práctica para agregar el soporte Acumatica ERP Attribute a una entidad de pedido de ventas lista para usar

En el núcleo, el DAC principal de su entidad debe tener una columna GUID ( NoteID ) para hacer referencia a la tabla de CSAnswers y debe tener un campo que identifique la clase de la entidad.

Haremos uso del Order Type de Order Type para definir la lista de atributos para recopilar información específica específica del tipo de orden.

Cree una Extensión de gráfico para SOOrderTypeMaint Gráfico y declare la vista de datos para definir la lista de atributos para un tipo de orden particular. Usaremos CSAttributeGroupList<TEntityClass, TEntity> fuera de la caja CSAttributeGroupList<TEntityClass, TEntity>

public class SOOrderTypeMaintPXExt : PXGraphExtension<SOOrderTypeMaint>
{
    [PXViewName(PX.Objects.CR.Messages.Attributes)]
    public CSAttributeGroupList<SOOrderType, SOOrder> Mapping;
}

Cree una extensión de gráfico para SOOrderEntry Graph y declare la vista de datos para los atributos específicos del tipo de orden actual.

public class SOOrderEntryPXExt : PXGraphExtension<SOOrderEntry>
{
    public CRAttributeList<SOOrder> Answers;
}

Cree la extensión DAC para SOOrder DAC y declare el campo definido por el usuario decorado con el atributo CRAttributesField y especifique el campo ClassID ; en nuestro caso, es OrderType .

public class SOOrderPXExt : PXCacheExtension<SOOrder>
{
    #region UsrAttributes

    public abstract class usrAttributes : IBqlField { }

    [CRAttributesField(typeof(SOOrder.orderType))]
    public virtual string[] UsrAttributes { get; set; }

    #endregion
}

Modifique la página de Order Types ( SO201000 ) como se muestra a continuación utilizando el motor de personalización

<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>

Modifique la página de Sales Orders ( SO301000 ) como se muestra a continuación utilizando el motor de personalización

<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>

Descargar paquete de despliegue



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow