Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Help with Printing Program in Sapscripts

Former Member
0 Likes
467

Hi everyone!

I hope you all fine!

Please I need a lot of help 'cause I designed a SAPscript form and I also tried to program a printing program for the SAPscript I designed previously, but I'm having problems to print out all my information 'cause it only prints out 1 register, and it supposed to bring many registers, so I don't know what's wrong, If anyone could help me to solve this problem I'll really appreciate it, next I attach my code of the printing program.

Thanks for your time.

CODE OF PRINTING PROGRAM:

REPORT ZMM_PURCHORD01 .

*Tablas transparentes

TABLES: EKPO,

MEAN,

EKKO,

J_3ACOLRT,

ITCPO,

MARA.

  • KONV,

*Tabla Interna donde recibe toda la informacion

DATA: BEGIN OF IT_INFO OCCURS 0,

EBELN LIKE EKPO-EBELN, "Numero de Pedido

AEDAT LIKE EKPO-AEDAT, "Fecha compra

TXZ01 LIKE EKPO-TXZ01, "Descripcion

MATNR LIKE EKPO-MATNR, "Numero de

BUKRS LIKE EKPO-BUKRS, "Numero de

MENGE LIKE EKPO-MENGE, "Cantidad de

NETPR LIKE EKPO-NETPR, "Precio Neto por

PEINH LIKE EKPO-PEINH, "Cantidad Base

MATNRA LIKE MARA-MATNR, "Numero de

J_3APGNR LIKE MARA-J_3APGNR, "Numero

J_3ACOL LIKE MARA-J_3ACOL, "Color numero

TEXT LIKE J_3ACOLRT-TEXT, "Texto de color

MATNRB LIKE MEAN-MATNR, "Numero de

J_3AKORDX LIKE MEAN-J_3AKORDX, "Tallas

WAERS LIKE EKKO-WAERS, "Tipo de Moneda

END OF IT_INFO.

*Tabla interna de Mara

DATA: BEGIN OF IT_MARA OCCURS 0,

MATNR LIKE MARA-MATNR, "Numero de

J_3APGNR LIKE MARA-J_3APGNR, "Numero

J_3ACOL LIKE MARA-J_3ACOL, "Numero de

END OF IT_MARA.

*Tabla Interna de J_3Acolrt Colores

DATA: BEGIN OF IT_COLOR OCCURS 0,

J_3ACOL LIKE J_3ACOLRT-J_3ACOL, "Numero de

TEXT LIKE J_3ACOLRT-TEXT, "Color texo

END OF IT_COLOR.

*Tabla interna de MEAN Tallas

DATA: BEGIN OF IT_MEAN OCCURS 0,

MATNR LIKE MEAN-MATNR, "Numero de

J_3AKORDX LIKE MEAN-J_3AKORDX, "Tallas

END OF IT_MEAN.

DATA: BEGIN OF IT_EKKO OCCURS 0,

EBELN LIKE EKKO-EBELN, "Numero de Pedido

WAERS LIKE EKKO-WAERS, "Tipo de Moneda

END OF IT_EKKO.

*Tabla interna de EKPO, Posición del documento de compras

DATA: BEGIN OF IT_EKPO OCCURS 0,

EBELN LIKE EKPO-EBELN, "Numero de Pedido

AEDAT LIKE EKPO-AEDAT, "Fecha compra

TXZ01 LIKE EKPO-TXZ01, "Descripcion Material

MATNR LIKE EKPO-MATNR, "Numero de Material

BUKRS LIKE EKPO-BUKRS, "Numero de Sociedad

MENGE LIKE EKPO-MENGE, "Cantidad de pares

NETPR LIKE EKPO-NETPR, "Precio Neto por Par

PEINH LIKE EKPO-PEINH, "Cantidad Base

END OF IT_EKPO.

DATA: V_EBELN TYPE EKPO-EBELN.

  • Seleccionado campos de EKPO

SELECT EBELN AEDAT TXZ01 MATNR BUKRS MENGE NETPR PEINH

FROM EKPO INTO TABLE IT_EKPO

WHERE EBELN EQ 'V_EBELN'.

*Validacion entre it_ekpo y it_mara y seleccion de campos de Mara

IF SY-SUBRC EQ 0.

SELECT MATNR J_3APGNR J_3ACOL

FROM MARA INTO TABLE IT_MARA FOR ALL ENTRIES IN

IT_EKPO

WHERE MATNR EQ IT_EKPO-MATNR.

*Validacion entre it_J_3acolrt y it_mara y seleccion de campos J-3ACOLRT

IF SY-SUBRC EQ 0.

SELECT J_3ACOL TEXT

FROM J_3ACOLRT INTO TABLE IT_COLOR FOR ALL ENTRIES IN

IT_MARA

WHERE J_3ACOL EQ IT_MARA-J_3ACOL.

*Validacion entre it_talla y it_ekpo y seleccion de campos MEAN

IF SY-SUBRC EQ 0.

SELECT MATNR J_3AKORDX

FROM MEAN INTO TABLE IT_MEAN FOR ALL ENTRIES IN

IT_EKPO

WHERE MATNR EQ IT_EKPO-MATNR. "AND

  • J_3AKORDX NE ''.

  • WHERE MATNR EQ IT_MARA-MATNR.

IF SY-SUBRC EQ 0.

SELECT EBELN WAERS

FROM EKKO INTO TABLE IT_EKKO FOR ALL ENTRIES IN IT_EKPO

WHERE EBELN EQ IT_EKPO-EBELN.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

  • Llenado de la Tabla donde recibe toda Informacion

LOOP AT IT_EKPO.

MOVE-CORRESPONDING IT_EKPO TO IT_INFO.

LOOP AT IT_COLOR.

MOVE-CORRESPONDING IT_COLOR TO IT_INFO.

LOOP AT IT_MARA.

MOVE-CORRESPONDING IT_MARA TO IT_INFO.

LOOP AT IT_MEAN.

MOVE-CORRESPONDING IT_MEAN TO IT_INFO.

LOOP AT IT_EKKO.

MOVE-CORRESPONDING IT_EKKO TO IT_INFO.

APPEND IT_INFO.

ENDLOOP.

ENDLOOP.

ENDLOOP.

ENDLOOP.

ENDLOOP.

*Lectura de tablas_it

LOOP AT IT_INFO.

READ TABLE IT_MARA WITH KEY MATNR = IT_INFO-MATNR.

IF SY-SUBRC EQ 0.

IT_INFO-J_3ACOL = IT_MARA-J_3ACOL.

READ TABLE IT_COLOR WITH KEY J_3ACOL = IT_INFO-J_3ACOL.

IF SY-SUBRC EQ 0.

IT_INFO-TEXT = IT_COLOR-TEXT.

READ TABLE IT_MEAN WITH KEY MATNR = IT_INFO-MATNR.

IT_INFO-J_3AKORDX = IT_MEAN-J_3AKORDX.

ENDIF.

ENDIF.

ENDLOOP.

*

LOOP AT IT_INFO.

WRITE:/ IT_INFO-EBELN,

IT_INFO-AEDAT,

IT_INFO-TXZ01,

IT_INFO-MATNR,

IT_INFO-MENGE,

IT_INFO-NETPR,

IT_INFO-WAERS,

IT_INFO-PEINH,

IT_INFO-J_3APGNR,

IT_INFO-TEXT,

IT_INFO-J_3AKORDX.

ENDLOOP.

*&----


*

*& Define Parametros de Impresion

*&----


*

*&Configuracion de la Impresora

  • ITCPO-TDDEST = 'MEGA'.

ITCPO-TDCOPIES = '1'.

  • ITCPO-TDIMMED = 'X'.

ITCPO-TDNEWID = 'X'.

ITCPO-TDDELETE = 'X'.

ITCPO-TDLIFETIME = 7.

ITCPO-TDCOVER = SPACE.

*&----


*

*& OPENS FORM ZPR_PURCHOR1 WINDOW MAIN

*&----


*

**&Abre el formulario

CALL FUNCTION 'OPEN_FORM'

EXPORTING

DEVICE = 'PRINTER'

DIALOG = 'X'

FORM = 'ZPR_PURCHOR1'

LANGUAGE = 'E'

  • OPTIONS = ITCPO

  • IMPORTING

  • RESULT = ITCPP

EXCEPTIONS

OTHERS = 1.

IF SY-SUBRC <> 0.

WRITE:/ 'Error al abrir el formulario', SY-SUBRC.

STOP.

ENDIF.

  • V_SUBRC = SY-SUBRC.

*&----


*

*& Escribe información al formulario ZPR_PURCHOR1 VENTANA MAIN

*&----


*

*& Llama la funcion que abre el formulario

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'LLENAR_CUADRO_INFO'

  • TYPE = 'BODY'

WINDOW = 'MAIN'

EXCEPTIONS

ELEMENT = 1

FUNCTION = 2

TYPE = 3

UNOPENED = 4

UNSTARTED = 5

WINDOW = 6

BAD_PAGEFORMAT_FOR_PRINT = 7

OTHERS = 8.

IF SY-SUBRC <> 0.

WRITE:/ 'Error al escribir el formulario', SY-SUBRC.

STOP.

ENDIF.

*&----


*

*& Cierra el formulario Activo ZPR_PURCHOR1 VENTANA MAIN

*&----


*

*&Cierra Formulario activo

CALL FUNCTION 'CLOSE_FORM'

EXCEPTIONS

UNOPENED = 1

BAD_PAGEFORMAT_FOR_PRINT = 2

SEND_ERROR = 3

OTHERS = 4.

IF SY-SUBRC <> 0.

WRITE:/ 'Problemas con el cierre de Formulario', SY-SUBRC.

STOP.

ENDIF.

1 REPLY 1
Read only

former_member221770
Contributor
0 Likes
380

Hi Guillermo,

You need to put your WRITE_FORMS within a loop.

Let's say I have a number of PO's that I want to print, the general structure of the program would go something like this:

*get data into TBL_EKKO and TBL_EKPO

....

  • Open the SAPscript you want to use

CALL FUNCTION OPEN_FORM...

loop at tbl_ekko.

  • Start a new spool

CALL FUNCTION START_FORM

  • Write the headings, addresses, etc

CALL FUNCTION WRITE_FORM (headers, etc)

....

loop at tbl_ekpo where ebeln = tbl_ekko-ebeln.

  • write the main window contents

CALL FUNCTION WRITE_FORM (main window)

....

endloop.

  • End of the spool request

CALL FUNCTION END_FORM

endloop.

CALL FUCTION CLOSE_FORM.

If you structure your programlike this and loop through the appropriate tables it should work.

Hope this helps.

Cheers,

Pat.

PS. Kindly assign Reward Points to the posts you find helpful.