Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenos días.
Estoy tratando de hacer una informe en el que tengo un cuadro de lista con componentes y una tabla con productos en los que se usan los componentes. La idea es poder seleccionar un componente y que en la tabla se muestren todos los productos que NO lleven ese componente.
Mi intención inicial ha sido hacer un concat() del campo elemento y almacenar este dato en una variable. Clonar este campo y deducir de la variable que contiene todos las selecciones realizadas en el campo clonado (que estaría desvinculado del modelo).
Pero no he logrado hacerlo funcionar.
¿Voy muy desencaminado? , ¿Alguna idea de como hacerlo?.
Muchas gracias de antemano.
Te adjunto fichero con alguna modificación:
- El campo EXCLUIR no se relacionaba con el campo ELEMENTO, ahora sí
- Cambio la dimensión de la tabla a PRODUCTO
- Ajusto y dejo sólo la expresión relativa a la descripción
Yo creo que es lo que necesitas.
Ya me dirás.
Hola, aqui te adjunto una posible solucion.
Saludos
Juan
Ahora ya funciona !!!! no se porque estaba empeñado en desconectar el excluir el modelo para que no entorpeciese las selecciones, supongo que por la idea inicial del concat y trabajar con variables.
Muchas gracias !!!!!
Puedes desconectarlo sin problema si quieres. En el ejemplo de Juan verás que lo desconecta y simplemente en la expresión modifica la partícula set:
Only({<ELEMENTO =- EXCLUIR>}PRODUCTO_DESC)
o bien
Only({<ELEMENTO = E(EXCLUIR)>}PRODUCTO_DESC) - tal y como ha hecho Juan-
En cualquier caso, me alegro que lo hayas solucionado.
Un saludo
Los dos ejemplos que me habéis proporcionado funcionan perfectamente con el set de datos de ejemplo que había subido. Ahora bien al implementarlo con los datos reales, veo que hay un problema que hace que no funcione correctamente Lo explico con los datos de ejemplo:
para la tabla de datos:
ELEMENTO | PRODUCTO | PRODUCTO_DESC |
1 | a | PRD.A |
2 | b | PRD.B |
3 | c | PRD.C |
4 | d | PRD.D |
5 | e | PRD.E |
6 | f | PRD.F |
7 | g | PRD.G |
7 | j | PRD.J |
8 | h | PRD.H |
8 | k | PRD.K |
8 | l | PRD.L |
8 | m | PRD.M |
9 | m | PRD.M |
Si decido mostrar todos aquellos productos que no se han fabricado con el ELEMENTO 8, no deberían salir los productos H, K, L, M puesto que se fabrican con este ELEMENTO 8, sin embargo los resultados obtenidos son:
PRODUCTO | Only({<EXCLUIR =- EXCLUIR>}PRODUCTO_DESC) |
a | PRD.A |
b | PRD.B |
c | PRD.C |
d | PRD.D |
e | PRD.E |
f | PRD.F |
g | PRD.G |
j | PRD.J |
m | PRD.M |
El producto M sigue saliendo ya que también se usa el producto 9 en su fabricación.
¿Alguna idea de como solucionarlo?
¿Alguna idea?
Hola Juan,
Ayer lo miré un buen rato (y al final me lo tomé hasta como un reto personal).... sin encontrar la solución al caso que planteas, pero seguiré mirandolo cuando tenga un ratito. Mi idea va encaminada en hacer una intersección pero no tengo el resultado óptimo.
Saludos,
Hola Juanan,
Si lo que necesitas es que en el la tabla no se muestren los productos que contienen los elementos seleccionados creo que el ejemplo que te adjunto te servirá para solucionarlo.
Un saludo
La solución de Alfredo funciona muy bien, duplica el campo PRODUCTO en la tabla EXCLUIR y así facilita el filtro de los resultados en la tabla por los dos campos (EXCLUIR y PROD_EXCLUIR).
Muchas gracias por el aporte Alfredo,
un saludo
Que grande !!! muy bueno como siempre Alfredo !!! Te debo una (Bueno, una mas )