Cree la pantalla de gestión Domicilio

Cree la pantalla de gestión Domicilio

La primer pantalla a crear será Domicilios, esta pantalla aparecerá como una pestaña dentro de la sub-pantalla GESTION DEFAULT (punto comprendido dentro del curso "Tu primer CRM"). La finalidad de este ejercicio es comprender cómo utilizar los controles de detalles en las gestiones. Esta pantalla nos dará como resultado una grilla donde se darán de alta direcciones, las cuales cada una de estas será direcciones del cliente final a la cuel le podremos enviar el producto adquirido.

Comencemos

Ingresar al punto de menú "Configuración CRM > Pantallas & Grillas > Pantallas", posicionarse sobre el registro "Gestión Default" , presionar el botón "Subpantalla" y agregar un nuevo registro

Se abrirá un pop-up solicitando la descripción, Tipo y Perfiles. Completar con la siguiente información:

  • Descripción: DOMICILIOS
  • Tipo: Detalle 1
  • Perfiles: Seleccionar todos

Posicionarse sobre el registro " DOMICILIOS" y presionar el botón "Diseño". Cuando se abra una pantalla pop-up seleccionar "Editar diseño de pantalla” y presionar aceptar.

Al ingresar, se podrá  observar que el marco de trabajo es muy pequeño. Presionar el marco y extenderlo para agrandar el área de trabajo.

Agregar los siguientes controles a la pantalla, agregar etiquetas (label) para poner el nombre del campo y ubicarlas al costado de cada control y ordenarlos. Finalmente presionar guardar.

DATOS

Alcance

Pais Sucursal Det1

DETALLE_1

Provincia Sucursal Det1

DETALLE_1

Ciudad Sucursal Det1

DETALLE_1

Localidad Sucursal Det1

DETALLE_1

Barrio Sucursal Det1

DETALLE_1

Calle Sucursal Det1

DETALLE_1

Numero Det1

DETALLE_1

Tipo Det1

DETALLE_1

Finalizada la carga, nos quedará una pantalla como se puede apreciar.

Lista Desplegables

Hasta el momento, solo existe valores en la lista desplegable PAIS, el resto no han sido cargados. Esto se debe a que la información a mostrar depende de selecciones anteriores, por ejemplo, para desplegar las provincias primero es necesario saber a que país hace referencia.

El proceso de carga es muy sencillo, siguiendo con el ejemplo, para que carguemos información en el control PROVINCIA, primero nos posicionaremos en el control PAIS y presionaremos el botón "On Change". Acá ejecutaremos los SP previamente generados indicándoles los parámetros de entrada.

Introducir el código JavaScript proporcionado

/*ON CHANGE EN CONTROL PAIS*/

/*OBTENGO EL VALOR DEL CONTROL PAÍS*/

var pais = pantalla.findControl("lstPaisDet1").getValue();

/*EJECUTO EL SP PROVINCIA INDICÁNDOLE EL PARÁMETRO DE ENTRADA PAIS*/

var provincias = ExecuteDataTable("__1001",pais);

/*INGRESAREMOS LA VARIABLE provincia DENTRO DE NUESTRO CONTROL. TENER EN CONSIDERACIÓN QUE AL PONER FILL, EL PRIMERO CORRESPONDERÁ A LA VARIABLE Y EL SEGUNDO A LA COLUMNA DEL SP, ESTA ES CASE SENSITIVE (EN NUESTRO CASO ES TODO MAYÚSCULA)*/

pantalla.findControl("lstProvinciaDet1").fill(provincias,"PROVINCIA")


/*ON CHANGE EN CONTROL PROVINCIA*/

/*OBTENGO EL VALOR DEL CONTROL PAÍS Y PROVINCIA*/

var pais = pantalla.findControl("lstPaisDet1").getValue();

var provincia = pantalla.findControl("lstProvinciaDet1").getValue();

/*EJECUTO EL SP LOCALIDAD INDICÁNDOLE LOS PARÁMETRO DE ENTRADA PAIS, PROVINCIA*/

var localidad = ExecuteDataTable("__1002",pais,provincia)

/*INGRESAREMOS LA VARIABLE localidad DENTRO DE NUESTRO CONTROL. TENER EN CONSIDERACIÓN QUE AL PONER FILL, EL PRIMERO CORRESPONDERÁ A LA VARIABLE Y EL SEGUNDO A LA COLUMNA DEL SP, ESTA ES CASE SENSITIVE (EN NUESTRO CASO ES TODO MAYÚSCULA)*/

pantalla.findControl("lstLocalidadDet1").fill(localidad,"LOCALIDAD")


/*ON CHANGE EN CONTROL LOCALIDAD*/

/*OBTENGO EL VALOR DEL CONTROL PAÍS, PROVINCIA, LOCALIDAD*/

var pais = pantalla.findControl("lstPaisDet1").getValue();

var provincia = pantalla.findControl("lstProvinciaDet1").getValue();

var localidad = pantalla.findControl("lstLocalidadDet1").getValue();

/*EJECUTO EL SP LOCALIDAD INDICÁNDOLE LOS PARÁMETRO DE ENTRADA PAIS, PROVINCIA, LOCALIDAD*/

var ciudad = ExecuteDataTable("__1003",pais,provincia,localidad)

/*INGRESAREMOS LA VARIABLE ciudad DENTRO DE NUESTRO CONTROL. TENER EN CONSIDERACIÓN QUE AL PONER FILL, EL PRIMERO CORRESPONDERÁ A LA VARIABLE Y EL SEGUNDO A LA COLUMNA DEL SP, ESTA ES CASE SENSITIVE (EN NUESTRO CASO ES TODO MAYÚSCULA)*/

pantalla.findControl("lstCiudadDet1").fill(ciudad,"CIUDAD")

Validaciones

La validación a introducir en esta pantalla, es evitar que un operador pueda cargar más de una vez el mismo tipo de domicilio. Es decir, que no introduzca dos veces domicilio "Personal". Para esto debemos barrer la grilla de domicilios validando que el TIPO a ingresar no exista. Realizaremos la validación de esta manera debido a que un agente pudo haber ingresado varios domicilios en la gestión actual, y siendo que esta información no se guardará en BBDD hasta finalizar la gestión, nos vemos imposibilitados de realizar la validación por BBDD.

En la pantalla DOMICILIOS, posicionado sobre el marco presionar el botón "OnPoupUnLoad ". Es aquí donde introduciremos el código JS y en caso que exista un TIPO idéntico arrojaremos una alerta. 

Introducir el siguiente código

/* CONSIGUE EL VALOR OTORGADO EL TIPO DETALLE 1 QUE SE ESTA CARGANDO Y SE VALIDARÁ*/

var tipodomdet = pantalla.findControl("txtTipoDet1").getValue();

/*CONSIGO LA CANTIDAD DE REGISTROS QUE EXISTEN CARGADOS EN LA GRILLA DE DETALLE1. ESTO NOS PERMITIRÁ COMPARAR NUESTRO REGISTRO A CARGAR CON LOS YA CARGADOS. ES NECESARIO HACER ESTO Y NO CONSULTARLO POR BASE YA QUE AL NO ACEPTAR ESTA GESTIÓN NO SE IMPACTARÁN LOS REGISTROS CARGADOS, POR ENDE, NO PODREMOS COMPARARLOS*/

var COUNT = pantalla.findControl("dgdDETALLE_1").Rows.count(); debugger;

for ( i = 0 ; i < COUNT ; i ++ )

{

var tipodireccionexiste = pantalla.findControl("dgdDETALLE_1").Rows.getRow(i).getValue("txtTipoDet1");

if(tipodomdet == tipodireccionexiste)

{

alert("El TIPO de domicilio escrito ya existe, seleccione otro.");

return false;

}

}


Finalizado, presionar guardar la pantalla

Diseño de grilla

Hemos finalizado el diseño la pantalla de carga de domicilios, ahora solo nos resta diseñar la grilla donde podremos ver listado los domicilios generados. Para ello, guardar la pantalla editada, volver a posicionarse sobre el registro " DOMICILIOS" y presionar Diseño. Cuando se abra una pantalla pop-up seleccionar "Editar diseño de grilla” y presionar aceptar.

Ingresando encontraremos con una pantalla sin registros, presionar "Agregar"

Posicionarse sobre el registro y presionar "Seleccionar"

Ingresar la descripción y presionar "Aceptar y agregar" 

Continuar con este proceso hasta haber cargado todos los registros solicitados

Nombre columnaDescripción

Orden

txtTipoDet1TIPO1

lstPaisSucDet1

PAIS

2

lstProvinciaSucDet1

PROVINCIA

3

lstCiudadSucDet1

CIUDAD

4

lstLocalidadSucDet1

LOCALIDAD

5

txtBarrioSucDet1

BARRIO

6

txtCalleSucDet1

CALLE

7

txtNumeroDet1

NUMERO

8

Presionar botón "Ordenar" y luego con los botones subir y bajar corregir la posición.

Aceptar y salir.