‎2008 Apr 09 6:54 AM
Hi,
In my program, Iam getting the error that 'no open if statement'.Please correct me.
Also please let me know the functionality of hide statement in this progra,.
REPORT ZMTSHPRG7 .
TYPES:
BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
LAND1 TYPE KNA1-LAND1,
NAME1 TYPE KNA1-NAME1,
ORT01 TYPE KNA1-ORT01,
END OF TY_KNA1,
BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
AUART TYPE VBAK-AUART,
NETWR TYPE VBAK-NETWR,
END OF TY_VBAK,
BEGIN OF TY_VBAP,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ARKTX TYPE VBAP-ARKTX,
NETPR TYPE VBAP-NETPR,
NETWR TYPE VBAP-NETWR,
END OF TY_VBAP.
DATA:
ST_KNA1 TYPE TY_KNA1,
IT_KNA1 TYPE TABLE OF TY_KNA1,
ST_VBAK TYPE TY_VBAK,
IT_VBAK TYPE TABLE OF TY_VBAK,
ST_VBAP TYPE TY_VBAP,
IT_VBAP TYPE TABLE OF TY_VBAP.
SELECT-OPTIONS:
SKUNNR FOR ST_KNA1-KUNNR.
START-OF-SELECTION.
PERFORM GETCUSTDATA.
IF IT_KNA1 IS NOT INITIAL.
LOOP AT IT_KNA1 INTO ST_KNA1.
WRITE:/ SY-VLINE,1 ST_KNA1-KUNNR,SY-VLINE, 12 ST_KNA1-NAME1, SY-VLINE,42
ST_KNA1-ORT01, SY-VLINE, 62 ST_KNA1-LAND1, SY-VLINE.
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
WRITE:/ SY-VLINE,1 'CUSTOMER NUMBER',SY-VLINE, 12 'CUSTOMER NAME',
SY-VLINE, 42 'CITY',SY-VLINE, 62 'COUNTRY',SY-VLINE.
ULINE.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
WRITE:/ 'READY TO DISPLAY DETAILS'.
ENDCASE.
HIDE ST_KNA1-KUNNR.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
SELECT VBELN AUDAT AUART NETWR FROM VBAK INTO TABLE IT_VBAK
WHERE KUNNR EQ ST_KNA1-KUNNR.
IF SY-SUBRC EQ 0.
LOOP AT IT_VBAK INTO ST_VBAK.
WRITE:/ ST_VBAK-VBELN, 12 ST_VBAK-AUDAT, ST_VBAK-AUART , ST_VBAK-NETWR.
ELSE.
MESSAGE S000(0) 'WITH NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDLOOP.
ENDIF.
ENDCASE.
&----
*& Form GETCUSTDATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM GETCUSTDATA .
SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR IN SKUNNR.
ENDFORM. " GETCUSTDATA
‎2008 Apr 09 6:57 AM
Hi,
change like this.
TYPES:
BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
LAND1 TYPE KNA1-LAND1,
NAME1 TYPE KNA1-NAME1,
ORT01 TYPE KNA1-ORT01,
END OF TY_KNA1,
BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
AUART TYPE VBAK-AUART,
NETWR TYPE VBAK-NETWR,
END OF TY_VBAK,
BEGIN OF TY_VBAP,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ARKTX TYPE VBAP-ARKTX,
NETPR TYPE VBAP-NETPR,
NETWR TYPE VBAP-NETWR,
END OF TY_VBAP.
DATA:
ST_KNA1 TYPE TY_KNA1,
IT_KNA1 TYPE TABLE OF TY_KNA1,
ST_VBAK TYPE TY_VBAK,
IT_VBAK TYPE TABLE OF TY_VBAK,
ST_VBAP TYPE TY_VBAP,
IT_VBAP TYPE TABLE OF TY_VBAP.
SELECT-OPTIONS:
SKUNNR FOR ST_KNA1-KUNNR.
START-OF-SELECTION.
PERFORM GETCUSTDATA.
IF IT_KNA1 IS NOT INITIAL.
LOOP AT IT_KNA1 INTO ST_KNA1.
WRITE:/ SY-VLINE,1 ST_KNA1-KUNNR,SY-VLINE, 12 ST_KNA1-NAME1, SY-VLINE,42
ST_KNA1-ORT01, SY-VLINE, 62 ST_KNA1-LAND1, SY-VLINE.
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
WRITE:/ SY-VLINE,1 'CUSTOMER NUMBER',SY-VLINE, 12 'CUSTOMER NAME',
SY-VLINE, 42 'CITY',SY-VLINE, 62 'COUNTRY',SY-VLINE.
ULINE.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
WRITE:/ 'READY TO DISPLAY DETAILS'.
ENDCASE.
HIDE ST_KNA1-KUNNR.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
SELECT VBELN AUDAT AUART NETWR FROM VBAK INTO TABLE IT_VBAK
WHERE KUNNR EQ ST_KNA1-KUNNR.
IF SY-SUBRC EQ 0.
LOOP AT IT_VBAK INTO ST_VBAK.
WRITE:/ ST_VBAK-VBELN, 12 ST_VBAK-AUDAT, ST_VBAK-AUART , ST_VBAK-NETWR.
ENDLOOP.
ELSE.
MESSAGE S000(0) WITH 'NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDIF.
ENDCASE.
*&---------------------------------------------------------------------
**& Form GETCUSTDATA
*&---------------------------------------------------------------------
*
* * text
*
*----------------------------------------------------------------------
*
* * --> p1 text
* * <-- p2 text
*
*----------------------------------------------------------------------
FORM GETCUSTDATA .
SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR IN SKUNNR.
ENDFORM. " GETCUSTDATA
it came because of the misplacement of endloop.
rgds,
bharat.
‎2008 Apr 09 6:57 AM
Hi,
change like this.
TYPES:
BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
LAND1 TYPE KNA1-LAND1,
NAME1 TYPE KNA1-NAME1,
ORT01 TYPE KNA1-ORT01,
END OF TY_KNA1,
BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
AUART TYPE VBAK-AUART,
NETWR TYPE VBAK-NETWR,
END OF TY_VBAK,
BEGIN OF TY_VBAP,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ARKTX TYPE VBAP-ARKTX,
NETPR TYPE VBAP-NETPR,
NETWR TYPE VBAP-NETWR,
END OF TY_VBAP.
DATA:
ST_KNA1 TYPE TY_KNA1,
IT_KNA1 TYPE TABLE OF TY_KNA1,
ST_VBAK TYPE TY_VBAK,
IT_VBAK TYPE TABLE OF TY_VBAK,
ST_VBAP TYPE TY_VBAP,
IT_VBAP TYPE TABLE OF TY_VBAP.
SELECT-OPTIONS:
SKUNNR FOR ST_KNA1-KUNNR.
START-OF-SELECTION.
PERFORM GETCUSTDATA.
IF IT_KNA1 IS NOT INITIAL.
LOOP AT IT_KNA1 INTO ST_KNA1.
WRITE:/ SY-VLINE,1 ST_KNA1-KUNNR,SY-VLINE, 12 ST_KNA1-NAME1, SY-VLINE,42
ST_KNA1-ORT01, SY-VLINE, 62 ST_KNA1-LAND1, SY-VLINE.
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
WRITE:/ SY-VLINE,1 'CUSTOMER NUMBER',SY-VLINE, 12 'CUSTOMER NAME',
SY-VLINE, 42 'CITY',SY-VLINE, 62 'COUNTRY',SY-VLINE.
ULINE.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
WRITE:/ 'READY TO DISPLAY DETAILS'.
ENDCASE.
HIDE ST_KNA1-KUNNR.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
SELECT VBELN AUDAT AUART NETWR FROM VBAK INTO TABLE IT_VBAK
WHERE KUNNR EQ ST_KNA1-KUNNR.
IF SY-SUBRC EQ 0.
LOOP AT IT_VBAK INTO ST_VBAK.
WRITE:/ ST_VBAK-VBELN, 12 ST_VBAK-AUDAT, ST_VBAK-AUART , ST_VBAK-NETWR.
ENDLOOP.
ELSE.
MESSAGE S000(0) WITH 'NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDIF.
ENDCASE.
*&---------------------------------------------------------------------
**& Form GETCUSTDATA
*&---------------------------------------------------------------------
*
* * text
*
*----------------------------------------------------------------------
*
* * --> p1 text
* * <-- p2 text
*
*----------------------------------------------------------------------
FORM GETCUSTDATA .
SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR IN SKUNNR.
ENDFORM. " GETCUSTDATA
it came because of the misplacement of endloop.
rgds,
bharat.
‎2008 Apr 09 6:58 AM
‎2008 Apr 09 6:58 AM
hi,
Change the following piece of code to
IF SY-SUBRC EQ 0.
LOOP AT IT_VBAK INTO ST_VBAK.
WRITE:/ ST_VBAK-VBELN, 12 ST_VBAK-AUDAT, ST_VBAK-AUART , ST_VBAK-NETWR.
ELSE.
MESSAGE S000(0) 'WITH NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDLOOP.
ENDIF.
this
IF SY-SUBRC EQ 0.
LOOP AT IT_VBAK INTO ST_VBAK.
WRITE:/ ST_VBAK-VBELN, 12 ST_VBAK-AUDAT, ST_VBAK-AUART , ST_VBAK-NETWR.
ENDLOOP.
ELSE.
MESSAGE S000(0) 'WITH NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDIF.
Hide is used to carry value to the next list in interactive reports.
Dont forget to reward points.
Regards,
Nishant
‎2008 Apr 09 6:59 AM
try this
IF sy-subrc EQ 0.
LOOP AT it_vbak INTO st_vbak.
WRITE:/ st_vbak-vbeln, 12 st_vbak-audat, st_vbak-auart , st_vbak-netwr.
ENDLOOP.
ELSE.
MESSAGE s000(0) WITH 'NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDIF.
‎2008 Apr 09 7:00 AM
Change as follows.
AT LINE-SELECTION.
CASE sy-lsind.
WHEN 1.
SELECT vbeln audat auart netwr FROM vbak INTO TABLE it_vbak
WHERE kunnr EQ st_kna1-kunnr.
IF sy-subrc EQ 0.
LOOP AT it_vbak INTO st_vbak.
WRITE:/ st_vbak-vbeln, 12 st_vbak-audat, st_vbak-auart , st_vbak-netwr.
ENDLOOP.
ELSE.
MESSAGE s000(0) 'WITH NO ORDERS FOUND FOR THIS CUSTOMER'.
ENDIF.
ENDCASE.
‎2011 Mar 10 9:30 AM
TYPES:
BEGIN OF TY_KNA1,
KUNNR TYPE KNA1-KUNNR,
LAND1 TYPE KNA1-LAND1,
NAME1 TYPE KNA1-NAME1,
ORT01 TYPE KNA1-ORT01,
END OF TY_KNA1,
BEGIN OF TY_VBAK,
VBELN TYPE VBAK-VBELN,
AUDAT TYPE VBAK-AUDAT,
AUART TYPE VBAK-AUART,
NETWR TYPE VBAK-NETWR,
END OF TY_VBAK,
BEGIN OF TY_VBAP,
POSNR TYPE VBAP-POSNR,
MATNR TYPE VBAP-MATNR,
ARKTX TYPE VBAP-ARKTX,
NETPR TYPE VBAP-NETPR,
NETWR TYPE VBAP-NETWR,
END OF TY_VBAP.
DATA:
ST_KNA1 TYPE TY_KNA1,
IT_KNA1 TYPE TABLE OF TY_KNA1,
ST_VBAK TYPE TY_VBAK,
IT_VBAK TYPE TABLE OF TY_VBAK,
ST_VBAP TYPE TY_VBAP,
IT_VBAP TYPE TABLE OF TY_VBAP.
SELECT-OPTIONS:
SKUNNR FOR ST_KNA1-KUNNR.
START-OF-SELECTION.
PERFORM GETCUSTDATA.
IF IT_KNA1 IS NOT INITIAL.
LOOP AT IT_KNA1 INTO ST_KNA1.
WRITE:/ SY-VLINE,1 ST_KNA1-KUNNR,SY-VLINE, 12 ST_KNA1-NAME1, SY-VLINE,42
ST_KNA1-ORT01, SY-VLINE, 62 ST_KNA1-LAND1, SY-VLINE.
HIDE ST_KNA1-KUNNR.
ENDLOOP.
ENDIF.
TOP-OF-PAGE.
WRITE:/ SY-VLINE,1 'CUSTOMER NUMBER',SY-VLINE, 12 'CUSTOMER NAME',
SY-VLINE, 42 'CITY',SY-VLINE, 62 'COUNTRY',SY-VLINE.
ULINE.
AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 1.
WRITE:/ 'READY TO DISPLAY DETAILS'.
ENDCASE.
*AT LINE-SELECTION.
CASE SY-LSIND.
WHEN 2.
SELECT VBELN
AUDAT
AUART
NETWR FROM VBAK
INTO TABLE IT_VBAK
WHERE KUNNR EQ ST_KNA1-KUNNR.
IF SY-SUBRC EQ 0.
LOOP AT IT_VBAK INTO ST_VBAK.
WRITE:/ ST_VBAK-VBELN, 12 ST_VBAK-AUDAT, ST_VBAK-AUART , ST_VBAK-NETWR.
ENDLOOP.
ELSE.
MESSAGE S002(ZRMSG).
ENDIF.
ENDCASE.
&---------------------------------------------------------------------
*& Form GETCUSTDATA
&---------------------------------------------------------------------
text
----------------------------------------------------------------------
--> p1 text
<-- p2 text
----------------------------------------------------------------------
FORM GETCUSTDATA .
SELECT KUNNR LAND1 NAME1 ORT01 FROM KNA1
INTO TABLE IT_KNA1
WHERE KUNNR IN SKUNNR.
ENDFORM. " GETCUSTDATA