Guia para desarrollo de ventana de consulta

Inicio Foros Foro principal Desarrolladores Guia para desarrollo de ventana de consulta

  • Este debate está vacío.
Viendo 13 entradas - de la 1 a la 13 (de un total de 13)
  • Autor
    Entradas
  • #31346

    Hola, quisiera saber si alguien tiene una guía de como realizar una ventana de solo consulta de productos similar a la ventana de la clase org.openXpertya.apps.search.InfoProduct.

    Como comente en este hilo, estoy intentando realizar una ventana de acceso rápido a artículos mediante filtros similares a la ventana InfoProduct, de tal manera que el usuario que esta por ejemplo en el mostrador pueda acceder a los artículos rápidamente mediante dicha ventana.
    La versión de LY en la que estoy trabajando es la 9.10.

    Muchas Gracias
    Hermann D. Schimpf

    #34266
    Javier Ader
    Participante

    Buenas. No se si hay un guía (la armamos si queres), pero no entiendo bien porque necesitas hacer esto; la ventana infoProduct ni no me equivoco YA es accesible independientemente de si estás en una ventana o no; Ver -> Información de Articulo (o usado el shortcut Ctrl + I). Esta ventana, si no estoy loco, es además solo lectura.
    Ahora, si lo que queres es necesariamente asociarlo a una entrada del menú, me imagino que podes ver cual es el código que dispara el shortcut y crear un proceso (un formularío no lo veo necesario) que replica lo mismo; ese proceso puede tener asociada la entrada del menú. Casi seguro que el código que dispara este acceso esta en APanel o AWindow.
    Ahora, si infoProduct no es exactamente lo que necesitas (tal vez requieras ver más datos o algo por el estilo), supongo que el camino es tomar como base infoProduct y hacerle modificaciones (y después a este nuevo info product, o asociarlo a un menú via un proceso o a una de las entradas en Ver). A esto apuntas?

    #34271
    Quote:
    supongo que el camino es tomar como base infoProduct y hacerle modificaciones (y después a este nuevo info product, o asociarlo a un menú via un proceso o a una de las entradas en Ver). A esto apuntas?

    Si, apunto a ese camino.

    La información que brinda la ventana de infoProduct debe ser mas completa ya que hemos agregado unos 5 campos mas de filtrado, ademas de los campos Marca, Familia y subFamilia.
    Por eso necesito ampliar la ventana de InfoProduct pero que esta sea una ventana aparte, basándose en InfoProduct, ya que solo la utilizara la persona que este en el mostrador. Para los remitos se utiliza la ventana InfoProduct estandard.

    Les agradecería si pueden realizar una guía del funcionamiento de esta ventana (InfoProduct) para poder realizar las modificaciones necesarias y desarrollar la nueva ventana.

    Gracias
    Hermann D. Schimpf

    #34267
    Javier Ader
    Participante

    Ok, ahora que lo decís, la idea esta buena en general y podría ser de utilidad para todos (en particular los campos Marca, Submfalia y familia; agregar tus otros campos propios y su correspondientes filtrado debe ser más de lo mismo); y se podría agregar como una ventana de info de productos avanzada (o incluso reemplazar la de info actual).
    Miro un poco esa clase y veo si te puedo dar una mano; de paso rememoro un poco mis conocimientos acerca swing que hace rato que no hago una GUI usando estas librerías.

    Saludos
    Javier

    #34272

    Dale perfecto!
    Los campos de filtrado agregados son mas referentes a artículos de repuestos de vehículos (Estado: Nuevo | Usado, Modelo: 4LH | …, etc).

    Muchas gracias
    Hermann D. Schimpf

    #34273

    Porque un usar una vista del PostgresSQL y crearle una ventana simple para esa vista? Me parece mas inmediato o me estoy olvidando de algo?

    #34274
    Javier Ader
    Participante

    Apa, esa también es muy buena. Lo que si es que la ventana de info siempre resulta “más linda”. Pero esta muy interesante tu planteo; simplemente habría que definir las columnas como de tal manera que permitan filtrar por estas (no me acuerdo bien cual era el atributo en la definición de columna que permitía esto; pero existia) y usar exactamente el mismo soporte que da el framework para las busquedas.
    Ahora bien, las vista no debe ser para nada simple (fijate que por ej la venta info actual muestra cosas que estan en diversas tablas y tiene que hacer alguna forma de sumatoria para las cantidades en stock) pero supongo que se podría hacer.
    Hermann que te parece esta idea? La ventana para mostrar los productos va a ser una ventana normal en donde el filtrado no va a ser directo (e.d, el usuario tiene que hacer click en el boton buscar y ahi especificar las cosas; y ese dialogo de busqueda normal creo que no “recuerda” cual fue las ultimas opciones de búsqueda, asi que el filtrado no puede ser “progresivo”; pero no estoy seguro de esto último)

    #34276

    Bueno, les detallo los datos que debo mostrar en esa ventana de consulta. De acuerdo a eso, ustedes me dirán si se puede realizar con una vista SQL o si voy a tener que realizar la ventana similar a InfoProduct.

    Los datos a mostrar son:
    – Los datos del producto:
    – Clave de Búsqueda
    – Nombre
    – Linea, Modelo (nuevo campo), SubFamilia.
    – Precios (actualmente estos productos poseen 5 precios diferentes a parte del precio inicial que debe aparecer únicamente para algunos perfiles).
    – Disponibilidad de stock (hay 2 depósitos, cada uno en una organización diferente)
    – Pendiente para recibir (igual que el anterior, los 2 depósitos)

    Ahora, nunca trabaje con vistas así que ustedes me dirán como se puede realizar esta ventana.

    Gracias
    Hermann D. Schimpf

    #34278

    Respecto a la complejidad de la query que conformará la vista…

    Podemos mirar el SQL base de cada ventana de interés. En Herramientas => Preferencias => Valiables de Entorno => FindSQL se puede ver el SQL base de la ventana en cuestión.

    Sería cosa de mirar los SQL de las ventanas que son de interés para el caso, joinearlos y construir una vista o dos o las que hagan falta, y con esa query construir la vista final que servirá como base de la nueva ventana.

    Para el Frame es lo mismo trabajar con una vista que con una tabla, no se da cuenta de la diferencia, de manera que es transparente.

    #34268
    Javier Ader
    Participante

    bueno, el tema de que haya múltiples precios complica un poco las cosas; asumo que vos que queres que se vean los 5 precios a la vez no? lo mismo para el stock? (e.d, 5 columnas para precios y 4 mas para cada los 2 stocks). Si es así, se puede armar una vista “muy a medida” (el tema es que si agregas un 6 precio, las cosas se complican ya que las vistas y en genral casi cualquier cosa no puede tener numero de columnas variable). Lo que si tambien se puede hacer es usar una tabla auxiliar para especificar que cuales son las listas de precios a mostrar. Lo mismo para los almacenes (aunque aca si veo muy poco probable que “agregues” un nuevo almacén; pero bueno, si pasa, es el mismo tema). El tema de todo esto es que no es muy flexible.
    Lo de ocultar un precio, asumiendo la solución de vista, se puede hacer generando 2 vistas a nivel de postgress muy similares ( o que la segunda se base en la primera simplemente sacando una columna); y que les des permisos de manera especifica a cada perfil como lo haces con las ventanas normales (creo que libertya no permite crear dos tablas a nivel de metadatos asociadas a la misma tabla o vista postgress; una limitación que mucho no entiendo pero bueno…).
    Lo que tiene de bueno todo esto, es que parece posible llevarlo a cabo incluso sin tocar una linea de código.

    #34279

    Bueno, según lo que explicas es mucho mas sencillo realizar el proceso mediante una vista SQL..
    Voy a realizar la vista y asignarla a una nueva ventana normal.
    Cuando realice esta nueva ventana posteo la solución.
    Cualquier duda les realizo la consulta.

    Muchas gracias
    Hermann D. Schimpf

    #34280

    Permitanme introducir algunas variables adicionales a la discusión:
    1) Están olvidando una solucion adicional: Crear un informe Jasper que muestre todo lo que se requiera. En éste escenario hasta es factible hacer tablas crostabs que muestren dinámicamente los posibles depositos, precios, etc. Solo es cuestión de crear el Datasource correcto y hacer el informe en iReport. Tal vez un reporte con subreportes.

    2) Si se crea una ventana de solo lectura, también es posible hacerla “normalizada” es decir, con varias pestañas. En la 1era se muestra info del producto. En la 2da se muestran sus diferentes precios y en la 3era sus diferentes Stocks y cantidades pendientes de entrega/recepción.
    Este enfoque está “normalizado” y no se ve afectado por la cantiad de depositos/listas de precios. Luego, mediante permisos y algunas reglas mas o menos complejas, se puede definir quienes pueden ver que pestañas y datos en esa ventana.

    La diferencia entre hacer una Vista que tenga todo y varias vistas en diferentes pestañas es básicamente que en el 1er caso, la vista es sumamente compleja y depende de los datos (hay que “hardcodear” los depositos, listas, etc) pero muestra en una sola pantalla toda la info. En el segundo caso, es todo mas sencillo, se puede ir agregando mas info (remitos del producto, facturas, pedidos, info relacionada en gral) y no depende de los depositos / listas de precios. El lado malo es que no se ve en una sola ventana sino en varias pestañas.

    Una idea mas: Si se hace una ventana con 3 pestañas, la 2da o 3era se puede poner en la 1era como pestaña incluída. Entonces se pueden tener 2 pestañas con la info de 3.

    Por último: No olviden que se puede hacer uso y abuso de la opción de ZOOM como manera de “navegar” la aplicación. Esto también funcionará en todas las ventanas de solo lectura que se definan.

    Espero haber aportado algo a la discución.

    Saludos
    Antonio.

    #34285

    Me parece muy interesante lo que sugiere hschimpf pero no se si han avanzado algo en esto pues yo necesito lo mismo y actualmente estoy trabajando sobre la versión 14.02 y siempre viene limitada he buscado la venta infoproduct para modificar pero no se si se tiene que modificar solo por codigo. O si tiene otro nombre pues viendo el codigo me dice que puedo poner un check para que me saque solo los productos que tienen existencia, habra que hacer algo más…..???

Viendo 13 entradas - de la 1 a la 13 (de un total de 13)
  • Debes estar registrado para responder a este debate.