Hola a tod@s
En esta ocasión vamos a ver un tema de Dynamics Ax 2012 Retail
POS realizaremos la personalización de
un formulario estándar del POS. Esta acción será llevada a cabo en el formulario de
pagos con tarjeta de crédito ubicada en el área de pago.
El formulario estándar luce de la siguiente manera.
Lo que aremos es crear un combo de opciones de "Tipos
de Bando" y esa información la tomaremos de una tabla nueva configurada
en nuestra base de datos SQL, a continuación les explicamos cómo realizarlo:
1.
Vamos a la solución de “Servicios” y abrimos el proyecto EFT / creditCards / frmCreditCardDialog.cs à
Damos clic derecho abrir diseño
2. Creación de controles y etiquetas.
Realizamos la creación de los objetos con el cuadro de herramientas ,no olvidemos dar el nombre del control para reconocerlo en
nuestro caso “cmbBoxBanck”
3. Creación de nuestra fuente de datos.
En este caso vamos a realizar la creación
de nuestra tabla directo en SQL en la base de datos de nuestra tienda. Se puede realizar la configuración conjunta
entr Dynamics Ax y POS mediante sincronización por Pjobs pero eso lo veremos en
otra ocasión.
a.
Ingresamos a nuestro SQL y ejecutamos el
siguiente scrip para crear una tabla.
USE [AXRETAILBD]--NameDB
GO
CREATE TABLE [dbo].[NasivRETAILSTOREBANKTYPETABLE](
[BankId] [nvarchar](50) NULL,
[Name] [nvarchar](50) NOT NULL,
[storeId] [nvarchar](10) NULL,
[DataAreaId] [nvarchar](4) NULL
) ON [PRIMARY]
GO
b.
Refrescamos la BD y procedemos a ingresar datos
a la tabla
4. Programación de nuestro combobox
Ahora lo que realizaremos es en nuestro
formulario la configuración del comboBox mediante la fuente de datos en SQL. Para esto
nos vamos al código fuente del form.
a.
Creamos un método dentro del formulario que
retornara un tipo de dato “DataSet” este
retorna los datos de la tabla en forma temporal, esto lo realizaremos
consultando a la base de datos a nuestra tabla creada anteriormente .
//PSilva: CRUD de la tabla de bancos
private DataSet fillBank()
{
SqlConnection connection = LSRetailPosis.Settings.ApplicationSettings.Database.LocalConnection;
DataSet Table = new DataSet();
System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand();
try
{
if (connection.State == ConnectionState.Closed)
{
connection.Open();
}
if (connection.State == ConnectionState.Open)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(" SELECT BankId, Name FROM NasivRETAILSTOREBANKTYPETABLE where storeId ='" + LSRetailPosis.Settings.ApplicationSettings.Terminal.StoreId + "' and DataAreaId = '" + LSRetailPosis.Settings.ApplicationSettings.Database.DATAAREAID + "'", connection);
da.Fill(Table, "NasivRETAILSTOREBANKTYPETABLE");
return Table;
}
catch (Exception ex)
{
connection.Close();
MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return Table;
}
}
}
b.
Vamos al método “OnLoad” del formulario en este método
colocamos el siguiente código haciendo el llamado a nuestro método que retorna
nuestro DataSource.
Código:
//cmbBank.sn
try
{
DataSet dscmbBoxBank = new DataSet();
dscmbBoxBank = fillBank();
cmbBoxBank.DataSource = dscmbBoxBank.Tables[0].DefaultView;
cmbBoxBank.DisplayMember = "Name";
cmbBoxBank.ValueMember = "BankId";
}
catch (Exception ex) { };
//cmbBank.end
5.
Luego de terminar nuestra programación realizamos
la compilación del proyecto y cambio de DLL es decir:
Copiamos de la ruta: C:\Users\Admin\Documents\Retail SDK\POS Plug-ins\Services\EFT\bin\Debug
Pegamos Dll ruta:
C:\Program Files (x86)\Microsoft Dynamics AX\60\Retail POS\Services
Finalmente en nuestro combo se verán las opciones
configuradas en nuestra tabla de datos.
Espero les sea de gran ayuda no duden en preguntar !
By
NASIV.
No hay comentarios:
Publicar un comentario