Necesito asesoría con este reporte de facturación

Cordial saludo, necesito asesoría con este reporte de facturación.

Necesito agregar algunos campos a nivel de linea en el reporte. trataré de explicarme con las siguientes imágenes.

Esta es la ruta del reporte en sap b1:
modulo ventas/informes de ventas
Screenshot_1

El reporte tiene un filtro el cual me pide un rango de fecha para mostrarme las facturas
Screenshot_2

Cuando selecciono solo el mes de marzo me sale esto:

Pero no tengo en el reporte el campo producto 1 y otros campos a nivel de linea que quiero agregar.

Este es el reporte en Crystal

y así se visualiza



entonces es esas columnas quiero ir agregando mas de acuerdo a las necesidades.
pero por ahora producto 1.

Al dar clic en editar comando este es el código:

y aqui tengo una lista de campos que quiero agregar al reporte.

Screenshot_11

Entonces la naturaleza de esto es, quiero saber cuantas toneladas de X producto he movilizado en marzo o cualquier mes que filtre.

Ya la columna cantidad de toneladas está y las operaciones matematicas pero me falta el producto agregado en una columna.

La columna producto la quiero agregar despues de la columna “ton”

Según lo que observo, solo debes agregar el campo HBT_PROD_DESCARGUE a tu código, después de eso agregarlo al informe arrastrando este campo a la posición que quieras en el informe.

3 Me gusta

Este es el código, como quedaría agregando el campo?

SELECT T2.CardName,T1.Dscription,T0.DocNum AS NumFact,T0.DocDate AS FechaFact,T1.Quantity,T1.Price,T1.LineTotal,
T3.Name AS TipoOP,CONVERT(NVARCHAR(30),T0.DocEntry) as D_Entry,T0.Comments,T1.Project AS Motonave,
T1.unitMsr,DATENAME(MONTH,T0.DocDate) AS MFACT,T4.DocNum AS NumPed,T4.DocDate AS FechaIniOP,T4.DocDueDate AS FechaFinOP,
DATENAME(MONTH,T4.DocDate) AS MES_OP,T5.PrcName AS LineaNeg
FROM OINV T0 INNER JOIN INV1 T1 ON T0.DocEntry=T1.DocEntry
INNER JOIN OCRD T2 ON T2.CardCode=T0.CardCode
LEFT JOIN “@HBT_TIPO_OPERACION” T3 ON T3.Code=T1.U_HBT_Tipo_Operacion
LEFT JOIN ORDR T4 ON T4.DocNum=T1.BaseRef AND T1.BaseType=17
LEFT JOIN OPRC T5 ON T5.PrcCode=T1.OcrCode2
WHERE T0.DocDate BETWEEN {?FechaIni} AND {?FechaFin} AND NOT EXISTS (SELECT * FROM RIN1 T1 WHERE T1.BaseEntry=T0.DocEntry)

1 me gusta

Si saben en que parte del código debo de agregar la columna “HBT_PROD_DESCARGUE”?

Hola.

Como en todo query, los campos a mostrar van en el “Select”

Saludos. :wink:

1 me gusta

Como dice @Gera_Mendez los campos a mostrar en el informe siempre van dentro del SELECT El orden lo decides tu.

En este caso, te dejo el campo que necesitas al final ya solo te toca posicionarlo en tu informe.

SELECT T2."CardName",T1."Dscription",T0."DocNum" AS "NumFact",T0."DocDate" AS "FechaFact",T1."Quantity",T1."Price",T1."LineTotal",
T3."Name" AS "TipoOP",CONVERT(NVARCHAR(30),T0."DocEntry") as "D_Entry",T0."Comments",T1."Project" AS "Motonave",
T1."unitMsr",DATENAME(MONTH,T0."DocDate") AS "MFACT",T4."DocNum" AS "NumPed",T4."DocDate" AS "FechaIniOP",T4."DocDueDate" AS "FechaFinOP",
DATENAME(MONTH,T4."DocDate") AS "MES_OP",T5."PrcName" AS "LineaNeg", T3."HBT_PROD_DESCARGUE"
FROM OINV T0 INNER JOIN INV1 T1 ON T0."DocEntry"=T1."DocEntry"
INNER JOIN OCRD T2 ON T2."CardCode"=T0."CardCode"
LEFT JOIN "@HBT_TIPO_OPERACION" T3 ON T3."Code"=T1."U_HBT_Tipo_Operacion"
LEFT JOIN ORDR T4 ON T4."DocNum"=T1."BaseRef" AND T1."BaseType"=17
LEFT JOIN OPRC T5 ON T5."PrcCode"=T1."OcrCode2"
WHERE T0."DocDate" BETWEEN {?FechaIni} AND {?FechaFin} AND NOT EXISTS (SELECT * FROM RIN1 T1 WHERE T1."BaseEntry"=T0."DocEntry")

Me sale este error:

Screenshot_1

Me dice que esa columna es invalida o algo así HBT_PROD_DESCARGUE

Yo revisando la columna en campos definidos por el usuario a nivel de linea en documentos de marketing, reviso esta información.

Screenshot_2

Screenshot_5

Que podría estar mal???
En el código si es T3.“HBT_PROD_DESCARGUE”?

Ademas cuando pongo el cursor sobre el campo blanco donde está el nombre del producto, ejemplo big bag de cal sale la siguiente información del sistema.
Screenshot_6

y si pongo el cursor sobre el campo gris que dice producto 1 me parece que cambia algo en la información del sistema, por ejemplo el row de 1 a 0.

Cual podría ser el error?

Que tal compañero.

Creo que este es un tema un poco más de conocimiento de creación de Querys de SQL Server, te invito a que te nutras un poco sobre cómo crear consultas Select. Comento esto porque estás trabajando con tablas y campos definidos por el usuario, es decir, que son propias de tu empresa y nadie más tiene, solo en tu empresa saben cómo relacionar las tablas de usuario con las tablas nativas del sistema.

Para ser concreto, en realidad el campo “HBT_PROD_DESCARGUE” se encuentra en la tabla INV1, es decir, tendría que ser T1 y no T3: T1.HBT_PROD_DESCARGUE.

La información del sistema siempre te dirá de qué tabla está tomando los datos:
image

Ahora bien, si el query te funciona con T1.HBT_PROD_DESCARGUE, el query lo que te mostrará será el valor “005”, ahí es donde necesitas saber cómo estructuraron en tu empresa los valores de ese campo, si vienen de una tabla o son valores válidos dentro del mismo campo.
image

Con esto solo busco que indagues un poco más sobre tu tema ya que tiene ciertas pecualiaridades.

Espero haberte ayudado a comprender un poco más sobre este tema.

Saludos.

Hola!

Al campo de usuario, debes agregarle una “U_”

cambia: T3.“HBT_PROD_DESCARGUE”

por:

T3.“U_HBT_PROD_DESCARGUE”

Bendiciones!

1 me gusta

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.