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

alv print preview problem

Former Member
0 Likes
907

Hi Experts,

i have creted one alv report.now my problem is when i try to c the print preview of my alv report it is showing the data in a improper way.alv report is absolutely correct.but problem is with wen i want to c print preview of that same data.wat could b the reason for this..

Regards,

Raman

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
772

Can you show the code , Ideally if report comes properly, Print preview should come proper.

But the problem might be with your code.

6 REPLIES 6
Read only

Former Member
0 Likes
773

Can you show the code , Ideally if report comes properly, Print preview should come proper.

But the problem might be with your code.

Read only

0 Likes
772

this is the code shown below:-

&----


*& Report ZCSTOCK

*&

&----


*&

*&

&----


REPORT ZCSTOCK NO STANDARD PAGE HEADING LINE-SIZE 300.

TYPE-POOLS : SLIS.

TABLES : MARA,MCHB,MCH1,AUSP, MAKT,MARC,MARD.

DATA: IT_MRP TYPE TABLE OF API_VALI WITH HEADER LINE .

DATA:WA_MRP TYPE API_VALI.

DATA : G_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA : TEMP(8) TYPE N,

TEMP1(10) TYPE N.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS : S_MATNR FOR MARA-MATNR ,

  • s_werks FOR mchb-werks,

S_WERKS FOR MARC-WERKS,

  • s_lgort FOR mchb-lgort,

S_LGORT FOR MARD-LGORT,

S_CHARG FOR MCHB-CHARG.

SELECTION-SCREEN : END OF BLOCK B1 .

  • Internal Table Declaration

DATA: BEGIN OF ITAB OCCURS 0,

MATNR LIKE MARA-MATNR,

WERKS LIKE MCHB-WERKS,

LGORT LIKE MCHB-LGORT,

CLABS LIKE MCHB-CLABS,

MEINS LIKE MARA-MEINS,

CHARG LIKE MCHB-CHARG,

CUOBJ_BM LIKE MCH1-CUOBJ_BM, "Internal object no.: Batch classification

VFDAT LIKE MCH1-VFDAT, "ShLife Exp.Date

HSDAT LIKE MCH1-HSDAT, "Date of Manufacture

ATWRT LIKE AUSP-ATWRT,

ATINN LIKE AUSP-ATINN, "Internal Characteristics

  • atflv like ausp-atflv, "Internal floating point from

ATFLV TYPE P DECIMALS 2,

OBJEK LIKE AUSP-OBJEK, "Internal floating point from

MAKTX LIKE MAKT-MAKTX,

END OF ITAB.

DATA WA_ITAB LIKE ITAB OCCURS 0 WITH HEADER LINE..

DATA: BEGIN OF ITAB1 OCCURS 0,

MATNR LIKE MARA-MATNR,

WERKS LIKE MCHB-WERKS,

LGORT LIKE MCHB-LGORT,

CLABS LIKE MCHB-CLABS,

MEINS LIKE MARA-MEINS,

CHARG LIKE MCHB-CHARG,

ATWRT LIKE AUSP-ATWRT,

ATINN LIKE AUSP-ATINN, "Internal Characteristics

  • atflv like ausp-atflv, "Internal floating point from

ATFLV TYPE P DECIMALS 2, "Internal floating point from

MAKTX LIKE MAKT-MAKTX,

END OF ITAB1.

DATA: BEGIN OF ITAB2 OCCURS 0,

MATNR LIKE MARA-MATNR,

WERKS LIKE MCHB-WERKS,

LGORT LIKE MCHB-LGORT,

CLABS LIKE MCHB-CLABS,

MEINS LIKE MARA-MEINS,

CHARG LIKE MCHB-CHARG,

CUOBJ_BM LIKE MCH1-CUOBJ_BM, "Internal object no.: Batch classification

ATWRT LIKE AUSP-ATWRT,

ATINN LIKE AUSP-ATINN, "Internal Characteristics

  • atflv like ausp-atflv, "Internal floating point from

ATFLV TYPE P DECIMALS 2, "Internal floating point from

OBJEK LIKE AUSP-OBJEK,

MAKTX LIKE MAKT-MAKTX,

END OF ITAB2.

DATA:CHARG1 TYPE MCH1-CHARG.

DATA:MATNR1 TYPE MARA-MATNR.

START-OF-SELECTION.

END-OF-SELECTION.

SELECT A~MATNR A~MEINS B~WERKS B~LGORT B~CLABS B~CHARG C~CUOBJ_BM C~VFDAT C~HSDAT E~MAKTX

INTO CORRESPONDING FIELDS OF TABLE ITAB

FROM MARA AS A INNER JOIN MCHB AS B ON A~MATNR = B~MATNR

INNER JOIN MCH1 AS C ON B~MATNR = C~MATNR AND B~CHARG = C~CHARG

  • INNER JOIN AUSP AS D ON CCUOBJ_BM = DOBJEK

INNER JOIN MAKT AS E ON A~MATNR = E~MATNR

WHERE A~MATNR IN S_MATNR AND

B~WERKS IN S_WERKS AND

B~CLABS > 0 AND

B~CHARG IN S_CHARG AND

B~LGORT IN S_LGORT.

  • LOOP AT ITAB.

  • SELECT SINGLE ATINN ATFLV ATWRT FROM AUSP INTO (ITAB-ATINN ,ITAB-ATFLV,ITAB-ATWRT ) WHERE OBJEK = ITAB-CUOBJ_BM.

  • MODIFY ITAB.

  • ENDLOOP.

*

  • LOOP AT ITAB.

  • IF ITAB-ATWRT = ''.

  • ITAB-ATWRT = ITAB-ATFLV.

*

  • IF ITAB-ATFLV > 1000.

  • TEMP = ITAB-ATFLV.

  • CONCATENATE TEMP6(2) '.' TEMP4(2) '.' TEMP+0(4) INTO TEMP1.

  • ITAB-ATWRT = TEMP1.

  • ENDIF.

  • MODIFY ITAB.

  • ENDIF.

  • ENDLOOP.

SORT ITAB BY MATNR.

LOOP AT ITAB INTO WA_ITAB.

  • ON CHANGE OF WA_ITAB-CHARG.

  • CHARG1 = WA_ITAB-CHARG.

  • MATNR1 = WA_ITAB-MATNR.

  • ENDON.

  • REFRESH IT_MRP.

CALL FUNCTION 'QC01_BATCH_VALUES_READ'

EXPORTING

I_VAL_MATNR = WA_ITAB-MATNR

    • I_VAL_WERKS =

I_VAL_CHARGE = WA_ITAB-CHARG

I_LANGUAGE = SY-LANGU

I_DATE = SY-DATUM

    • IMPORTING

    • E_CLASS =

    • E_CLASS_TYPE =

TABLES

T_VAL_TAB = IT_MRP

  • T_CHAR_TAB = IT_CHK

  • T_ATT_TAB =

EXCEPTIONS

NO_CLASS = 1

INTERNAL_ERROR = 2

NO_VALUES = 3

NO_CHARS = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

IF SY-SUBRC = 0.

READ TABLE IT_MRP INTO WA_MRP.

ENDIF.

IF WA_MRP-ATNAM = 'MRP'.

MOVE: WA_MRP-ATWRT TO WA_ITAB-ATWRT.

ENDIF.

MODIFY ITAB FROM WA_ITAB.

CLEAR WA_MRP.

CLEAR WA_ITAB.

ENDLOOP.

  • DELETE ITAB WHERE ATWRT NE 'CN01' AND ATWRT NE 'JBJ1' AND ATWRT NE 'JBK1'. "itab where ( ATWRT ne 'CN01 OR ATWRT NE 'JBJ1' OR ATWRT NE 'JBK1' ).

PERFORM F_BUILD_FIELDCAT USING G_FIELDCAT[].

  • Display Report.

PERFORM F_DISPLAY_REPORT TABLES ITAB

USING G_FIELDCAT[].

&----


*& Form f_build_fieldcat

&----


  • text

----


  • -->P_G_FIELDCAT[] text

----


FORM F_BUILD_FIELDCAT USING P_G_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

  • Material

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MARA'.

L_FIELDCAT-FIELDNAME = 'MATNR'.

L_FIELDCAT-SELTEXT_L = TEXT-H02.

L_FIELDCAT-OUTPUTLEN = '20'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Material Description

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MAKT'.

L_FIELDCAT-FIELDNAME = 'MAKTX'.

L_FIELDCAT-SELTEXT_L = TEXT-H11.

L_FIELDCAT-OUTPUTLEN = '40'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Plant

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MCHB'.

L_FIELDCAT-FIELDNAME = 'WERKS'.

L_FIELDCAT-SELTEXT_L = TEXT-H03.

L_FIELDCAT-OUTPUTLEN = '5'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Storage Location

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MCHB'.

L_FIELDCAT-FIELDNAME = 'LGORT'.

L_FIELDCAT-SELTEXT_L = TEXT-H04.

L_FIELDCAT-OUTPUTLEN = '5'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Quantity

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MCHB'.

L_FIELDCAT-FIELDNAME = 'CLABS'.

L_FIELDCAT-SELTEXT_L = TEXT-H05.

L_FIELDCAT-OUTPUTLEN = '18'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Unit

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MARA'.

L_FIELDCAT-FIELDNAME = 'MEINS'.

L_FIELDCAT-SELTEXT_L = TEXT-H06.

L_FIELDCAT-OUTPUTLEN = '4'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Batch

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MCHB'.

L_FIELDCAT-FIELDNAME = 'CHARG'.

L_FIELDCAT-SELTEXT_L = TEXT-H08.

L_FIELDCAT-OUTPUTLEN = '10'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Manufacturing Date

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MCH1'.

L_FIELDCAT-FIELDNAME = 'HSDAT'.

L_FIELDCAT-SELTEXT_L = TEXT-H09.

L_FIELDCAT-OUTPUTLEN = '10'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Shelf Life Expiry Date

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'MCH1'.

L_FIELDCAT-FIELDNAME = 'VFDAT'.

L_FIELDCAT-SELTEXT_L = TEXT-H10.

L_FIELDCAT-OUTPUTLEN = '10'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Internal Characteristics

CLEAR: L_FIELDCAT.

L_FIELDCAT-TABNAME = 'AUSP'.

L_FIELDCAT-FIELDNAME = 'ATWRT'.

L_FIELDCAT-SELTEXT_L = TEXT-H13.

L_FIELDCAT-OUTPUTLEN = '20'.

APPEND L_FIELDCAT TO P_G_FIELDCAT.

  • Internal Floating point

CLEAR: L_FIELDCAT.

  • L_FIELDCAT-TABNAME = 'AUSP'.

*

  • IF ITAB-ATWRT = ''.

  • L_FIELDCAT-FIELDNAME = 'ATFLV'.

  • ELSE.

  • L_FIELDCAT-FIELDNAME = 'ATWRT'.

  • ENDIF.

  • L_FIELDCAT-SELTEXT_L = TEXT-H12.

  • L_FIELDCAT-OUTPUTLEN = '30'.

  • APPEND L_FIELDCAT TO P_G_FIELDCAT.

ENDFORM. " f_build_fieldcat

&----


*& Form f_display_report

&----


  • text

----


  • -->P_ITAB text

  • -->P_G_FIELDCAT[] text

----


FORM F_DISPLAY_REPORT TABLES P_ITAB STRUCTURE ITAB " < itab #local# >

"Insert correct name for <...>

USING P_G_FIELDCAT.

DATA: L_REPORT LIKE SY-REPID.

L_REPORT = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IT_FIELDCAT = G_FIELDCAT

TABLES

T_OUTTAB = P_ITAB.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " f_display_report

Read only

0 Likes
772

Yes i saw the problem , it is related to fieldcatalog.

Modified version of the Fieldcatalog code.

When you specify the TABNAME , it should be internal table name . Not database table name.

FORM f_build_fieldcat USING p_g_fieldcat TYPE slis_t_fieldcat_alv.
  DATA: l_fieldcat TYPE slis_fieldcat_alv.


*  material
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'MATNR'.
  l_fieldcat-seltext_l = text-h02.
  l_fieldcat-outputlen = '20'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  material description
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'MAKTX'.
  l_fieldcat-seltext_l = text-h11.
  l_fieldcat-outputlen = '40'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  plant
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'WERKS'.
  l_fieldcat-seltext_l = text-h03.
  l_fieldcat-outputlen = '5'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  storage location
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'LGORT'.
  l_fieldcat-seltext_l = text-h04.
  l_fieldcat-outputlen = '5'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  quantity
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'CLABS'.
  l_fieldcat-seltext_l = text-h05.
  l_fieldcat-outputlen = '18'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  unit
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'MEINS'.
  l_fieldcat-seltext_l = text-h06.
  l_fieldcat-outputlen = '4'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  batch
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'CHARG'.
  l_fieldcat-seltext_l = text-h08.
  l_fieldcat-outputlen = '10'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  manufacturing date
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'HSDAT'.
  l_fieldcat-seltext_l = text-h09.
  l_fieldcat-outputlen = '10'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  shelf life expiry date
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'VFDAT'.
  l_fieldcat-seltext_l = text-h10.
  l_fieldcat-outputlen = '10'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  internal characteristics
  CLEAR: l_fieldcat.
  l_fieldcat-tabname = 'ITAB'.
  l_fieldcat-fieldname = 'ATWRT'.
  l_fieldcat-seltext_l = text-h13.
  l_fieldcat-outputlen = '20'.
  APPEND l_fieldcat TO p_g_fieldcat.


*  internal floating point
  CLEAR: l_fieldcat.

  l_fieldcat-tabname = 'ITAB'.
*

  IF itab-atwrt = ''.
    l_fieldcat-fieldname = 'ATFLV'.
  ELSE.
    l_fieldcat-fieldname = 'ATWRT'.
  ENDIF.
  l_fieldcat-seltext_l = text-h12.
  l_fieldcat-outputlen = '30'.
  APPEND l_fieldcat TO p_g_fieldcat.
ENDFORM. " f_build_fieldcat

Regards

Vijay Babu Dudla

Read only

0 Likes
772

This message was moderated.

Read only

Former Member
0 Likes
772

HI Raman,

if you are able to see ALV Grid then u can see Print preview also.

Regards.

Eshwar.

Read only

0 Likes
772

THANKS VIJAY....