Skip to content
szambranaetr edited this page Aug 12, 2019 · 6 revisions

3.3 comboBox en PXP

Buenos dias, tardes o noches. sea cual sea la hora en la que estes viendo esta wiki 🎲

Hoy vamos a generar comboBox en el Framework PXP, para ello tenemos que tener un sistema creado, con sus vistas y todo eso. tambien tener creada su base de datos en SQLPostgre. Por mi cuenta cree dias atras un sistemas llamado sis_almacen con el alias 'al'en el que le cree 3 tablas. estas tablas, llamadas categoria, marca y producto. La tabla producto es la que recibirá de las tablas categoria y marca, sus descripciones mediante un comboBox. estas tablas tienen que tener datos llenados para esto.

Bueno empecemos!

En esta imagen pueden observar mi pequeño sistema almacen, en el estan esas 3 tablas que mencione anteriormente.Principalmente la interfaz de producto.

en esta imagen pueden ver que me muestra este error que se debe a que no tengo el codigo del comboBox.ahi mismo lo indica. pero no se alarmen, no hay drama. eso es lo que vamos a corregir.

Bien, lo que vamos a hacer ahora es entrar al PostgreSQL y buscar el alias de schema de mi sistema este alias es el llamado 'al'.Buscamos dentro de sus funciones el producto_sel. Siendo este el que recibirá los datos de las otras dos tablas con ayuda del comboBox.

entramos en ese archivo para editar la consulta.

dentro del panel objeto en la bandeja función de PostgreSQL, presionamos en la barra donde se encuentra la flecha verde y asi la ampliamos para tener una mejor vista del código y luego buscamos por donde se encuentre la consulta

ahora bien, podemos hacer join pero es mejor copiar y pegar en el editor, es mas amigable a la hora de editar, entonces copiamos

buscamos en el menú superior Tools -> Show Sql Editor o si gustan presionan F12

pegamos la consulta que copiamos del producto_sel

bueno acá, ya agregue las líneas que son necesarias para hacer join. 1º escribimos los join (lo que esta en la parte baja de la imagen) Comenzamos escribiendo join, seguido del prefijo de nuestro SISTEMA. En mi caso, el prefijo de mi sistema es 'al' seguido de '.' y el nombre de la tabla la cual queremos hacer join a ella le bautizamos con algun nombre que hace referencia a dicha tabla (tmarca -> mar) es mejor mantenerlo igual que el alias por las dudas. seguido de 'on' el nombre con el que bautizamos a la tabla '.' para lo que sigue tenemos que tener el mismo campo en ambas tablas (tproducto ->> id_marca, tmarca ->> id_marca) seguido del id en comun con la otra tabla(id_marca) '=' el nombre con el que se bautizo la tabla producto, pueden ver que esta como 'pro' seguido del '.' e id en comun. recuperando lo que queremos con ayuda de sus id. Lo mismo para categoria.

2º declaramos los nombre arriba.

Como ya escribi antes, 'cat' hace referencia a la tabla tcategoria, asi la bautice. Al igual que 'mar' que hace referencia a la tabla tmarca. Comenzamos escribiendo el nombre con el que bautizamos a la tabla (mar) seguido del nombre del campo que queremos obtener (mi tabla tmarca tiene los datos id_marca y nombre, por ello escribo nombre que es el que nos interesa) seguido de 'as ' y descripcion de lo que vamos a recibir (desc_marca) . lo mismo para categoría.

ejecutamos esta consulta

Nos indica que todo salio bien

volvemos a la pestaña Edit y copiamos todo, desde el select hasta pro.id_marca. Todo para compilarlo en el sel_producto

vamos a reemplazar la anterior consulta, que fue la que seleccionamos en un principio.

lo que esta en recuadro vamos a seleccionar

copiamos

vamos un poco abajo buscando una pequeña consulta

reemplazamos, vamos donde dice Compile

le damos a Commit y hasta aca llego PostgreSQL, nos pasamos al Aptana

Buscamos la carpeta de nuestro sistema

Dentro de modelo, editamos en MODProducto.php

copiamos esa linea de codigo y cambiar los datos que son necesarios,estos datos tienen que ser iguales que los que escribimos en el sel_producto (desc_categoria, desc_marca)

esas dos lineas son las que tenemos que tener, luego guardamos con Ctrl+S

Ahora entramos en la vista de Producto.php para seguir editando el codigo

aca estoy marcando donde debemos cambiar o agregar datos para recibir la categoria en nuestra tabla producto

Y aca para recibir de la tabla marca

Aca ya escribi como deberia quedarles si tuviesen el mismo sistema, en la url por ejemplo escribimos la ubicación del metodo que puede mostrarnos los nombres en este caso categoria.

ahora estoy en la ubicacion exacta de donde recibo la lista de categorias registradas (sis_almacen/control/Categoria/listarCategoria)

lo que tocamos solo es el nombre, id y desc, tambien la url

Aca tambien le agregamos el desc_categoria y desc_marca. estos tienen que ser iguales a lo que escribimos en la consulta

Guardamos y nos dirigimos al framework para ver nuestro resultado

entramos a la tabla producto, nuestro comboBox ya deberia listarnos las categorias y marcas. Actualizamos

volvemos a entrar a la tabla producto

Dentro de Producto agregamos un nuevo producto

ç

Y bien nos lista las categorias

y aca nos lista las marcas

lo guardo

y lo tenemos registrado.