‎2008 Jul 28 7:57 AM
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
‎2008 Jul 28 8:01 AM
Can you show the code , Ideally if report comes properly, Print preview should come proper.
But the problem might be with your code.
‎2008 Jul 28 8:01 AM
Can you show the code , Ideally if report comes properly, Print preview should come proper.
But the problem might be with your code.
‎2008 Jul 28 8:03 AM
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
‎2008 Jul 28 8:25 AM
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_fieldcatRegards
Vijay Babu Dudla
‎2014 Mar 01 9:47 AM
‎2008 Jul 28 8:06 AM
HI Raman,
if you are able to see ALV Grid then u can see Print preview also.
Regards.
Eshwar.
‎2008 Jul 28 8:48 AM