Solicito de su apoyo con un reporte en Crystal Reports, les platico que hace el reporte y que necesito.
El reporte actualmente es una explosión de materiales, lo coloque en SAP B1 y pues el usuario ingresa los productos y las cantidades afines a cada producto y el reporte te arroja la cantidad que debes surtir o abastecer de cada producto para poder fabricarlo.
El detalle, es que en Ocasiones el producto que el usuario ingresa digamos el A001, tiene una lista de materiales formada por: compuesto1, compuesto2 y compuesto3, pero supongamos que el compuesto3 tambien tiene una lista de materiales, entonces necesito que en crystal reports tambien me desplegue lo necesaria para fabricar no solo el producto A001, sino tambien el compuesto3…
En el reporte que ya tenia coloque un subreporte y le puse una condicionante de que si es tal producto, entonces me muestre el subreporte, pero en el subreporte, pero no se como decirle a crystal que en el subreporte tome como base el Compuesto001 y me arroje una consulta con su lista de materiales.
Buenas tardes, podría compartirnos como realizó la primera condicionate? Si creas un reporte, y luego un sub reporte, pasándole ciertos valores, esto tambien debiera seguir funcionando con un subreporte de un subreporte a la larga todos son reportes que estan anidados
Te sugiero no usar subconsulta sino mas bien hacer enfasis en el query que te despliegue el arbol, para esto la clave es la recursividad, puedes usar una funcion de tabla que te devuelva los subcomponentes usando recursividad, o tambien puedes usar un inner join con la misma tabla, algo asi:
With BOM (Root,Parent,Child,Level,Quantity) As
(
Select P.Code ,convert(nvarchar(20),'') ,P.Code ,0 Level, convert(varchar(20),' ')
From OITT P
Union All
Select B.Root,c.Father,C.Code,Level+1,convert(varchar(20),C.Quantity)
From Itt1 C
Inner join BOM B on c.Father=B.Child
)
Select B.*
From BOM B
Order By B.Root,B.Level
Option (MAXRECURSION 99)
en este link explica esta ultima solucion: h_tps://www.experts-exchange.com/questions/28390445/T-SQL-Recursive-CTE-for-Bill-of-Materials.html
de acuerdo, pues lo intentare así, aunque ya se me ha ocurrido también colocar un sub reporte a manera de link, y en ese solo mostrar los subproductos, o los productos de nivel 2. Siendo abusivo de tu conocimiento, en este reporte me ha surgido un problema y es que la consulta me da a veces el resultado y a veces no,
en esa imagen, en la primera ejecución solo colocamos el puro código solo, en la segunda ejecución se coloca el mismo producto acompañado de otros productos mas, el producto padre del ejemplo es el REVE 33, este tiene un producto hijo el EM-58, por alguna razón que evidentemente desconozco, en una ejecución de SP si me trae el resultado y en otra me pone NULL.
En la siguiente imagen cambio el producto de lugar y entonces si me trae el resultado, aunque me quita otros tantos.