Crystal Reports en SAP B1

Estoy ahora entrando a trabajar con Crystal Reports para hacer plantillas de reportes para el SAP B1 si alguien tiene conocimientos para aclarar unas dudas que me pueda echar la mano

Coloca tus dudas puntuales y seran respondidas en la medida de lo posible.

Yo soy de SAP BO… uso más ECC pero si te puedo ayudar… yo te ayudo

Listo pues, cuanto tengas una duda solo la colocas en la seccion de consultas y te ayudaremos en lo que podamos.

Hola muchas gracias por el apoyo, ahorita tengo una duda usando el SAP B1 tengo esta consulta SQL:

SELECT sum(price*quantity) FROM IGE1 T1 WHERE T1.[BaseRef] = 54 and itemtype = 290

La cual multiplica la cantidad por el precio de los articulos de la Orden de Fabricacion 54 y solo de los articulos (290) de los gastos (180) no se consideran pero como puedo aplicarla en crystal report? lo que se me hizo mas facil es usar grupos para tener solo articulos y con ellos hacer un campo de formula y de ahi hacer un campo de totales acumulados, esto fue la forma facil pero ahora tengo que hacer una comparativa entre presupuestos y ordenes de fabricacion el problema es que ahora necesito sacar la suma de articuls primarios (162) secundarios (164) gastos (GTO) Mano de Obra ( MOD) y compararlo contra las ordenes de fabricacion los articulos es facil el mismo numero pero los gastos son GTO0001 GTO-002 y mano de obra tambien MOD-002 por eso me interesaria sacar un query directo en el cual haga la suma directa sobre el criterio que le indique

Mas que nada la idea es no tener que usar los grupos y asi hacer una suma de todos los precios por articulos de los articulos principales otra de los secundarios y asi poder compararlos contra los de las ordenes de fabricacion sin sufrir tanto

Lo siento, pero me he perdido.
No logro entender lo que quieres obtener, ni donde ni como.

Esa select es para una orden de fabricación en concreto y para un grupo de artículos.

¿Quieres un informe en crystal o quieres una select?
¿quieres que sea solo de esa orden de fabricación o de más órdenes?
¿el origen de los datos es IGE1?
¿Como quieres estructurar la información o distinguir los datos? ¿por grupos de artículos?

2 Me gusta

Ese select que puse de ejemplo es para sacar el total de precio por cantidad de los articulos de una Orden de fabricacion en concreto la numero 54, el 290 es porque son articulos el 180 son gastos como mano de ofra capacitaciones etc,

Lo que pretendo es que se pueda usar ese select directamente dentro del reporte como una variable sea calculado para ese valor usarlo en un grafico

La idea de hacerlo es para poderlo aplicar en varias ordenes y sea posible modificar el calculo para por ejemplo articulos principales, auxiliares, miscelaneos, mano de obra y gastos, aparte de usarlo para las ordenes de trabajo tambien se aplicaria en los presupuestos por proyectos, cada presupuesto puede tener varias ordenes y se comparar cada presupuesto contra lo real que se gasto

el origen de los datos esta en varias tablas una de ellas es IGE1

Se separarian por los grupos de articulos principales, auxiliares, miscelaneos, mano de obra y gastos para compararlos entre lo presupuestado y la orden seria la primer estructura o condicion el numero de la orden de fabricacion tanto en el presupuesto como en la orden y la segunda ya los articulos principales, auxiliares, miscelaneos, mano de obra y gastos para el grafico

Despues de todo este detalle espero se pueda con querys que los subgrupos son algo poco optimos

Pues nada, muy sencillo.
Cuando abres el crystal para construir el informe, le puedes decir que el origen de datos es una o varias tablas o un comando. El comando=consulta. Elaboras tu consulta en SAPB1 y pegas el código ahí y ya tienes el origen del informe

3 Me gusta

Lógicamente tienes que pasar en la consulta todos los campos de tablas que necesites o vas a necesitar en el informe.

Siempre podrás editar la conexión para añadir alguno nuevo.

La practica ideal es que elabores tu consulta en el generador de consultas o en el sql y luego la pases al crystal.

Luego por lo que cuentas, con que agregues un grupo que sea el grupo de artículos en si y le añadas el sumatorio por grupos ya tendrías esos resultados por orden.

Ten en cuenta que las variables preguntadas en SAP [%0] crystal no las entiende, tendrías que crear parámetros para la ejecución en la parte derecha donde te pone “Lista de parámetros”, por ejemplo para las fechas …

2 Me gusta

Las consultas ya las habia manejado inclusive un campo text lo converti en int, pero esto no duplica la tabla? no hay una forma directamente dentro del cristal para ahi hacer las consultas sql? lo que pasa es que serian muchas consultas articulos principales, auxiliares, miscelaneos, gastos, mano de obra de lo proyectado y la misma cantidad en las ordenes de produccion

Ya hice los querys seria uno para cada tabla lo que estoy viendo es que son complementarias no se repetiria tanta informacion solo seria tener 2 veces la tabla IGE1

SELECT t0.* FROM IGE1 T0 INNER JOIN OITM T1 ON T0.[ItemCode] = T1.[ItemCode] WHERE T1.[ItmsGrpCod] =162
162 Principales
164 Auxiliares
167 Miscelaneos

Lo mismo con IGE1 pero con un join a la tabla ORSC que es la de los gastos y Mano de obra

Gastos y Mano de Obra

SELECT T0.* FROM IGE1 T0 INNER JOIN ORSC T1 ON T0.[ItemCode] = T1.[VisResCode] WHERE T1.[ResType] = 'O’
O Gasto
L Mano de Obra

Por si a alguien le sirve la siguiente linea el cast permite cambiar un campo a otro tipo de dato en este caso a INT y replica la tabla completa

SELECT CAST(DocNum AS INT), * FROM OCLG

Tengo una nueva duda al hacer el query me sale correcto pero necesito ligarlo a lo proyectado es una tabla mas o menos asi, el problema esta que al ligar la Orden de fabricacion con los resultados me trae varias veces la orden de Fabricacioncomo puedo indicar que si se repite la Orden de fabricacion 4 o 6 solo sea una Orden que se tome osea en las opciones de vinculo como indico muchos a uno? o mas facil un query que me quite los duplicados de cada registro como el del ejemplo asi como ese son cada uno de los proyectos, puedo hacer otra tabla con solo los datos ya filtrados

Encontre una forma usando SQL (el pan nuestro de cada día) pero no me permite seleccionar todas las columnas ya que si las agrego me muestra mas informacion, lo mas que se pudo dejar fue:

SELECT DISTINCT T0.U_OF,T0.DocEntry FROM [dbo].[@PRESUPUESTO_DET] T0 where T0.U_OF>0 ORDER BY T0.DocEntry lo cual me deja la tabla recortada:

Orden de Fabricación DocEntry
4 5
7 5
4 6
6 6
1 8
5 8

Si alguien sabe alguna otra manera para tener toda la tabla pero quitando los que se repiten de las ordenes de fabricacion se lo agradeceria.

Sigo sufriendo con este problema, lo que tambien queria saber es si se puede tomar informacion de otro reporte para usarlo en el actual asi podria separar cada busqueda y traerla individualmente

No habia tenido oportunidad de leer tu post… tienes acceso al MarketPlace de SAP ?
Puedes usar la herramienta de diseño de información. Creo que esa es la herramienta que te puede servir, solo que debes de tener instalado BO.
Con esto evitar generar tantas consultas y perderte en el diccionadiro de datos, reutilizar todo. Y generar variables que necesites para toda una suite y no solo para Crystal Report. Asi Crystal será pan comido.
En la versión de crystal no la uso porque me fue más práctico y menos conflictivo usar; la herramienta de diseño de información + Crystal enterprise.

saludos.

2 Me gusta