SAP BO Imprimir facturas en un pdf con query

Buenas tardes,

Tengo una rutina muy común y es que tengo que buscar las facturas de un cliente y generar los pdf de dichas facturas, para luego unirlas en un único pdf.

Actualmente lo estoy haciendo con esta query :

SELECT 
T0.[DocNum] AS 'Nº de Factura', T0.[DocDate], T0.[CreateDate], T0.[CardCode] AS 'Código Cliente', T0.[CardName] AS 'Nombre Cliente', T0.[DocTotal]- T0.[VatSum] AS 'Base imponible', T0.[VatSum] AS 'Impuesto', T0.[DocTotal] 'Total Factura'
FROM OINV T0 WHERE T0.[CANCELED] ='N' AND T0.[CardCode] = 'C0137'

y posteriormente tengo que ir factura a factura a imprimirlas en pdf, que posteriormente tengo que unirlas todas en uno solo.

Alguien me podría ayudar, a ver de que forma puedo seleccionar todas las facturas y que me genere un solo pdf?. Utilizo SAP BO 10.0

Gracias de antemano

1 me gusta

Hola @joseramonsoli
Revisa lo siguiente:
Generar un pdf de varias facturas del mismo client - SAP Business One - Ayuda SAP (consultoria-sap.com)

1 me gusta

Gracias @andresramirez, pero no he hecho ningún informe ni domino el CR. Sabes de algún vídeo tutorial sobre pueda hacer lo que pones en tu respuesta : En alguna ocasión hice algo como lo que comentas. Con base al Layout debes crear un informe donde como parámetro muestre el listado de facturas y el cliente seleccione cuales quiere incluir. Debes crear un grupo por el DocNum y en el encabezado del grupo colocas todo lo relacionado con el encabezado de la factura. Gracias anticipadas

Hola claro que se puede, primero tienes que crear el layout en crystal, a pesar de que dices no tener conocimiento debes realizarlo, enseguida debes realizar el query para obtener todos los datos de la factura. Pero ntp eso ya lo tienes en el sistema SAP B1 seguramente alguien mas hizo el layout, solo si tienes la cuenta de manager, edita el loyout.
Primero: Ve a la opción del lápiz (diseñador de layouts)

Segundo: Clic en gestionar layout

Tercero: Elige el formato que usan y da clic en editar.

Cuarto: Una vez que abras tu layout en crytal reports ve al Explorador de campos
y clic derecho, elige la opción de asistente de base de datos…Clic derecho sobre comando y dale editar. En esa parte debes tener tu query con todo lo que se requiere para el layout de facturación, y debe de haber solo un parámetro, donde dice lista de parámetros. Intenta crear dos mas para que sea vea igual que el que te comparto: Cardcode@ ( es el código del cliente y va entre ’ ’ por que es cadena), FolioF@ (es el folio final que deseas teclear y es de tipo numérico), FolioIn@ (es el folio inicial donde quieres empezar y también es de tipo numérico.)

Agregue este fragmento para que busque primero por cliente, una vez buscando el cliente, buscara el rango de folio x1 a folio x10

where T0.Cardcode='{?CardCode@}' and T0.Docnum>= ({?FolioIn@}) and T0.DocNum<={?FolioF@}

Quinto: Debes crear un grupo en el icono de crystal
image
E ir a la pestaña de Opciones
Palomear las ultimas 3 casillas
image

Te aparecerá en tu diseño algo así:


a esa dale clic derecho en la parte izquierda donde dice encabezado de grupo y presiona donde dice ocultar, se mostrara así:

Sexto: mueve todo lo que esta en la sección Pie del informe a Pie de grupo #1a: Comando.DocNum -A y si tienes #1b también muévelo

Antes de mover todo.
image

Después de mover todo:
image

Una vez que realizaste lo anterior
Puedes actualizar
image
y te va a pedir 3 parámetros
Código del Cliente Ejemplo: c00180
Ultimo Numero de factura que deseas Ejemplo: 2000
Primer numero de factura que buscas Ejemplo: 1000
Ira de la 1000 hasta la 2000 las que encuentre de ese cliente serán seleccionadas.

En grupo nos mostrara las facturas que existen.
image

Ahí mismo puedes exportarlas de un jalón en crystal reports
En caso de que no quieras abrir el crystal y lo requieras mas facil, puedes usar el crexport.exe en cmd solo que tienes que descargartelo junto con el runtime crystal reports .

C:\crexport.exe -U usuariodetubasededatos -P PassdetuBasededatos -D TuBasededatos -S Nombredetuservidor -F D:\SAP\Ubicaciondetulayoutcrystal.rpt -O D:\SAP\Facturas\Nombredetuarchivofinal.pdf -E pdf -a "CardCode@:
00082" -a "FolioF@:26206" -a "FolioIn@:26114"

Como saber que formato usas o tienes default: Puedes abrir el visor de factura y ahi te indica que formato es. En mi caso es facturacion3.3_

2 Me gusta

Mil gracias @kriptonniano , por favor mira las imágenes. Cuando llego a ese punto me da error el crystal ¿sabes como puedo corregirlo?

Un saludo


Podrías mostrar tu query por favor

Esta es mi query :slight_smile:

FUNTAMSAP
SELECT “OCRD”.“LangCode”, “OINV”.“DocEntry”, “OINV”.“DocNum”, “INV1”.“DocDate”, “INV1”.“Dscription”, “INV1”.“Quantity”, “INV1”.“unitMsr”, “INV1”.“Price”, “INV1”.“LineTotal”, “INV1”.“VatPrcnt”, “OCTG”.“PymntGroup”, “OINV”.“NumAtCard”, “OINV”.“DocDate”, “INV1”.“BaseRef”, “OINV”.“Address”, “OCRD”.“HsBnkSwift”, “OCRD”.“HsBnkIBAN”, “OCRD”.“LicTradNum”, “OPYM”.“Descript”, “OINV”.“Address2”, “INV1”.“BaseType”, “OINV”.“Comments”, “OITM”.“ItmsGrpCod”, “OINV”.“VatSum”, “OCRD”.“CardName”, “INV1”.“VatGroup”, “INV1”.“Currency”, “INV1”.“TotalFrgn”, “OINV”.“DocCur”
FROM ((((“SBO_GREENRBCP”.“dbo”.“OINV” “OINV” LEFT OUTER JOIN “SBO_GREENRBCP”.“dbo”.“INV1” “INV1” ON “OINV”.“DocEntry”=“INV1”.“DocEntry”) INNER JOIN “SBO_GREENRBCP”.“dbo”.“OCRD” “OCRD” ON “OINV”.“CardCode”=“OCRD”.“CardCode”) LEFT OUTER JOIN “SBO_GREENRBCP”.“dbo”.“OCTG” “OCTG” ON “OINV”.“GroupNum”=“OCTG”.“GroupNum”) LEFT OUTER JOIN “SBO_GREENRBCP”.“dbo”.“OPYM” “OPYM” ON “OINV”.“PeyMethod”=“OPYM”.“PayMethCod”) INNER JOIN “SBO_GREENRBCP”.“dbo”.“OITM” “OITM” ON “INV1”.“ItemCode”=“OITM”.“ItemCode”
WHERE “OINV”.“Cardcode”=’{?CardCode@}’ and “OINV”.“Docnum”>= ({?FolioIn@}) and “OINV”.“DocNum”<={?FolioF@}

ORDER BY “INV1”.“BaseRef”

FUNTAMSAP
SELECT “OADP”.“LogoImage”
FROM “SBO_GREENRBCP”.“dbo”.“OADP” “OADP”

FUNTAMSAP
SELECT “OADM”.“CompnyName”, “OADM”.“Phone1”, “OADM”.“E_Mail”, “OADM”.“TaxIdNum”
FROM “SBO_GREENRBCP”.“dbo”.“OADM” “OADM”

FUNTAMSAP
SELECT “ADM1”.“ZipCode”, “ADM1”.“City”, “ADM1”.“County”, “ADM1”.“Street”, “ADM1”.“IntrntAdrs”
FROM “SBO_GREENRBCP”.“dbo”.“ADM1” “ADM1”

Veo que estas en hana, yo en SQL, no se que significa FUNTAMSAP (si es una función?), la otra es que pruebes directamente, tu script en el query manager de SAP, porque en teoría yo lo veo bien, el detalle es que no se como se selecciona la cadena en hana, tal vez ahí esta el detalle igual no es ’ comilla y son dobles ". Saludos.

Hola @kriptonniano, yo estoy en SQL no en HANA, a lo que te refieres se la función, no lo es, es el servidor. Gracias anticipadas por tu colaboración.

De acuerdo se me hizo raro por todas las comillas que usas con el nombre de las tablas y los campo, entonces es probable que sea el tipo de conexión a la base de datos.
Yo uso OLE DB(ADO)
image
No olvides probar todo tu query en el Query Manager o SQL Server, claro sin las variables, {?CardCode@}’, ({?FolioIn@}), {?FolioF@}cámbialas por datos reales.

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