Hola a tod@s
En ocasiones nos veremos en la necesidad de implementar un control ya sea este un botón una etiqueta un área de texto, etc. en nuestra pantalla principal de Retail POS.
En esta ocasión les mostraremos cómo crear
fácilmente esto y añadirlo a los puntos
de venta.
1.
Creación del control personalizado desde Dynamics Ax
Nos vamos a ir a la siguiente ruta en
nuestro AX.
Ruta:…/Comercial/Configurar/Punto De Venta/Perfiles/Campos
personalizado.
Aquí creamos nuestro campo de tipo “Control
personalizado”, tenemos más opciones donde se puede agregar campos (área de
totales, área de pagos y recibo) pero en este caso será personalizado.
2.
Añadir etiqueta al campo
Nos vamos al AOT y abrimos la tabla RetailLanguageText
he ingresamos un nuevo registro con el texto a mostrar en la pantalla, debería
quedarnos así.
3. Añadir el control a la pantalla principal del POS
Nos vamos a ir a la siguiente ruta en
nuestro AX.
Ruta:…/Comercial/Configurar/Punto De Venta/Diseños
de pantalla
Tomamos el diseño a customizar y Damos en el
botón “Deseñador”
Desde el modo de diseñador en el
botón desplegable, seleccione el diseño principal para que aparezca la barra de
herramientas de personalización. Por elementos ocultos en esta sección
aparecerá nuestro texto colocado en la tabla donde le pusimos nombre.
Ahora solo falta tomar el objeto
y arrastrar a donde se necesite, finalmente en el diseñador quedara de la
siguiente manera.
Luego para implementar el diseño
ejecutamos el Job N-1090, si todo está bien veremos en nuestro POS el campo.
4.
Creación de control personalizado
Para esto abrimos nuestra solución de services nos vamos al proyecto BlankOperations, en esta parte damos clic derecho agregar nuevo
elemento
Luego escogemos un elemento de Windows forms /
Control de usuario posteriormente damos el nombre esto es muy importante
tenemos que dar el mismo nombre que dimos a nuestro campo en DynamicsAx en
nuestro caso”imbsActivateReturnItem.cs”
Luego de esto
realizamos la programación de nuestro proyecto.
a.
Agregamos los elementos a usar en nuestro caso
un label informativo, pueden agregar lo que quieran.
a.
Realizamos lo siguiente en nuestro código del
formulario (ver los comentarios del código para guiarse)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//Paquetes necesarios para la interfaz
using System.ComponentModel.Composition;
using Microsoft.Dynamics.Retail.Pos.Contracts.UI;
using LSRetailPosis.Transaction; //Referencia de la transaccion
namespace Microsoft.Dynamics.Retail.Pos.BlankOperations
{
//Contrato de datos
[Export(typeof(IPosCustomControl))]
[PartCreationPolicy(CreationPolicy.NonShared)]
//Contrato de datos heredamos de IPosCustomControl
public partial class imbsActivateReturnItem : UserControl, IPosCustomControl
{
/// <summary>
/// Constructor
/// </summary>
public imbsActivateReturnItem()
{
InitializeComponent();
this.tableLayoutPanel1.BackColor = System.Drawing.Color.Orange;
this.lblActivate.Text = "Activación Cambio de Articulo";
}
#region Métodos de uso de la interfaz
/// <summary>
/// Método que se llama cuando se carga la caja disposición y es donde deberá añadir el código de inicialización para su control si es necesario.
/// </summary>
/// <param name="layoutId"></param>
public void LoadLayout(string layoutId)
{
throw new NotImplementedException();
}
/// <summary>
/// Método es el principal controlador de eventos para el control y se llama cada vez que algo cambia en el objeto de la transacción
/// </summary>
/// <param name="transaction"></param>
public void TransactionChanged(Contracts.DataEntity.IPosTransaction transaction)
{
try
{
//Asigno el valor a label
RetailTransaction retailTransaction = transaction as RetailTransaction;
this.lblActivate.Text = retailTransaction.OperatorName;
}
catch (Exception)
{
throw new NotImplementedException();
}
}
#endregion
}
}
1.
Luego de terminar nuestra programación
realizamos la compilación del proyecto y cambio de DLL es decir:
Pegamos Dll ruta:
C:\Program Files (x86)\Microsoft Dynamics AX\60\ Services
Finalmente nuestra acción quedara de la siguiente
manera.
No olvidemos que esta parte podemos usar
para infinidad de cosas como llamar un botón, mostrar mensajes si ya no tenemos
inventario disponible, en nuestro caso el nombre del cajero lo que nuestra
imaginación pueda.
Espero les sea de gran ayuda no duden en preguntar.
By
NASIV.
No hay comentarios:
Publicar un comentario