MODULE - 2 | LIST GENERATION TECHNIQUES ( REPORT.PDF )

REPORT NAME: REPORT Z20382363_REPORTS.

QUESTION - 01


* QUESTION - 01
SELECT BUKRSAUGBLKOARTMWSKZ FROM BSEG
  INTO TABLE @DATA(LT_BSEG).
LOOP AT LT_BSEG INTO DATA(LS_LSEG).
  AT FIRST.
    WRITE'COMPANY CODE',30 'DOCUMENT NUMBER',60 'ACCOUNT TYPE',90 'TAX CODE'.
    SKIP.
  ENDAT.
  WRITE/ LS_LSEG-BUKRS30 LS_LSEG-AUGBL60 LS_LSEG-KOART90 LS_LSEG-MWSKZ.
ENDLOOP.


QUESTION - 02


*QUESTION - 02
TYPESBEGIN OF TYPE,
       VBELN TYPE VBAP-VBELN,
       MATNR TYPE VBAP-MATNR,
       ERDAT TYPE VBAK-ERDAT,
       ERNAM TYPE VBAK-ERNAM,
       AUART TYPE VBAK-AUART,
       KONDA TYPE VBKD-KONDA,
       KDGRP TYPE VBKD-KDGRP,
       END OF TYPE.
DATA LS_MAT TYPE TYPE.
DATA LT_MAT TYPE TABLE OF TYPE.
SELECT A~VBELNA~MATNRB~ERDATB~ERNAMB~AUARTC~KONDAC~KDGRP FROM VBAP AS A
  INNER JOIN VBAK AS ON A~VBELN B~VBELN
  INNER JOIN VBKD AS C
  ON A~VBELN C~VBELN
  INTO TABLE @LT_MAT.
SORT LT_MAT STABLE BY MATNR ASCENDING.
IF SY-SUBRC 0.
  LOOP AT LT_MAT INTO LS_MAT.
    AT FIRST.
      WRITE'SALES DOCUMENT'25 'MATERIAL NUBER'50 'DATE'75 'USER NAME'100 'SALES DOCUMENT TYPE'125 'PRICE GROUP'150 'CUSTOMER GROUP'.
    ENDAT.
    WRITE/ LS_MAT-VBELN25 LS_MAT-MATNR50 LS_MAT-ERDAT75 LS_MAT-ERNAM100 LS_MAT-AUART125 LS_MAT-KONDA150 LS_MAT-KDGRP.
  ENDLOOP.
  ELSE.
    MESSAGE 'RECORD NOT FOUND' TYPE 'E'.
ENDIF.


QUESTION - 03

*QUESTION - 03
TYPESBEGIN OF BSIS_TYPE,
  MANDT TYPE BSIS-MANDT,
  BUKRS TYPE BSIS-BUKRS,
  AUGDT TYPE BSIS-AUGDT,
  AUGBL TYPE BSIS-AUGBL,
  BELNR TYPE BSIS-BELNR,
  BUDAT TYPE BSIS-BUDAT,
  END OF BSIS_TYPE.
DATA T_BSIS TYPE TABLE OF BSIS_TYPE.
DATA F_BSIS TYPE BSIS_TYPE.
SELECT MANDTBUKRSAUGDTAUGBLBELNRBUDAT FROM BSIS
  INTO TABLE @T_BSIS.
IF SY-SUBRC 0.
SORT T_BSIS STABLE BY BUKRS.
LOOP AT T_BSIS INTO F_BSIS.
  AT FIRST.
    WRITE'CLIENT'20 'COMPANY CODE'40 'CLEARING DATE'60 'DOCUMENT NUMBER'80 'ACCOUNTING DOCUMENT NUMBER'120 'POSTING DATE'.
  ENDAT.
  WRITE/ F_BSIS-MANDT20 F_BSIS-BUKRS40 F_BSIS-AUGDT60 F_BSIS-AUGBL80 F_BSIS-BELNR120 F_BSIS-BUDAT.
ENDLOOP.
ENDIF.


QUESTION - 04


*QUESTION - 04
PARAMETERS MAT TYPE MTART.
SELECT FROM MARA
  INTO TABLE @DATA(LT_MARA)
  WHERE MTART @MAT.
IF SY-SUBRC <> 0.
  MESSAGE 'RECORD NOT FOUND' TYPE 'E'.
ENDIF.
SORT LT_MARA STABLE BY BRGEW ASCENDING.
LOOP AT LT_MARA INTO DATA(LS_MARA).
  AT FIRST.
    WRITE'MATERIAL TYPE'20 'MATERIAL NUMBER'45 'UNIT OF MEASURE'65 'GROSS WEIGHT'.
  ENDAT.
  WRITE/ LS_MARA-MTART,20 LS_MARA-MATNR,45 LS_MARA-MEINS65 LS_MARA-BRGEW.
ENDLOOP.


QUESTION - 05


*QUESTION - 05
DATA LV_SEATS TYPE SFLIGHT-SEATSMAX.
SELECT CARRIDSEATSMAXSEATSOCC FROM SFLIGHT
  INTO TABLE @DATA(LT_SFLIGHT).
  IF SY-SUBRC <> 0.
    MESSAGE 'RECORD NOT FOUND' TYPE 'E'.
  ENDIF.
  LOOP AT LT_SFLIGHT INTO DATA(LS_SFLIGHT).
    AT NEW CARRID.
      ULINE.
      WRITE'RECORDS FOR'LS_SFLIGHT-CARRID.
      ULINE.
      WRITE'AIRLINE CODE',20 'MAXIMUM CAPACITY'40 'OCCUPIED SEATS'60 'AVAILABLE SEATS'.
      SKIP.
    ENDAT.
    LV_SEATS LS_SFLIGHT-SEATSMAX LS_SFLIGHT-SEATSOCC.
    WRITE/ LS_SFLIGHT-CARRID,20 LS_SFLIGHT-SEATSMAX,40 LS_SFLIGHT-SEATSOCC60 LV_SEATS.
    CLEAR LV_SEATS.
    AT END OF CARRID.
      ULINE.
      WRITE'END OF'LS_SFLIGHT-CARRID.
      ULINE.
    ENDAT.
   ENDLOOP.

QUESTION - 06


**QUESTION - 06
SELECT CARRIDFLDATEPRICECONNID FROM SFLIGHT
  INTO TABLE @DATA(LT_SFLIGHT).
  IF SY-SUBRC <> 0.
    MESSAGE 'RECORD NOT FOUND' TYPE 'E'.
  ENDIF.
  LOOP AT LT_SFLIGHT INTO DATA(LS_SFLIGHT).
    AT FIRST.
      ULINE.
      WRITE'BEFORE DELETING ENTRIES'.
      ULINE.
      WRITE'AIRLINE CODE'20 'FLIGHT DATE'40 'AIRFARE'.
      SKIP.
    ENDAT.
    WRITE/ LS_SFLIGHT-CARRID20 LS_SFLIGHT-FLDATE40 LS_SFLIGHT-PRICE.
  ENDLOOP.
  DELETE LT_SFLIGHT WHERE CARRID NE 'LH'.
  FREE LS_SFLIGHT.
  DATA LV_PRICE TYPE SFLIGHT-PRICE.
  LOOP AT LT_SFLIGHT INTO LS_SFLIGHT.
    IF LS_SFLIGHT-CARRID 'LH' AND LS_SFLIGHT-CONNID 0400.
      LV_PRICE LS_SFLIGHT-PRICE.
      LS_SFLIGHT-PRICE * LS_SFLIGHT-PRICE.
      MODIFY LT_SFLIGHT FROM LS_SFLIGHT.
      AT FIRST.
        ULINE.
        WRITE'AFTER DELETING ENTRIES'.
        ULINE.
        WRITE'AIRLINE CODE'20 'FLIGHT DATE'60 'AIRFARE BEFORE INCREMENT'90 'AIRFARE AFTER INCREMENT'.
        SKIP.
      ENDAT.
      WRITE/ LS_SFLIGHT-CARRID20 LS_SFLIGHT-FLDATE60 LV_PRICE90 LS_SFLIGHT-PRICE.
      CLEAR LV_PRICE.
      ENDIF.
    ENDLOOP.


QUESTION - 07


*QUESTION - 07
SELECT FROM VBAK
  INTO TABLE @DATA(LT_VBAK).
IF SY-SUBRC <> 0.
  MESSAGE 'RECORD NOT FOUND' TYPE 'E'.
ENDIF.
SORT LT_VBAK STABLE BY VBELN.
LOOP AT LT_VBAK INTO DATA(LS_VBAK).
  AT FIRST.
    ULINE.
    WRITE'RECORDS BEFORE MODIFY' COLOR INVERSE.
    ULINE.
    WRITE'SALES DOCUMENT'20 'SALES ORGANIZATION'40 'NET VALUE'80 'CURRENCY'.
    SKIP.
  ENDAT.
  WRITE/ LS_VBAK-VBELN20 LS_VBAK-VKORG40 LS_VBAK-NETWR80 LS_VBAK-WAERK.
  ENDLOOP.

   DESCRIBE TABLE LT_VBAK.
  SKIP 2.
  WRITE'TOTAL RECORDS: 'SY-TFILL.
  SKIP 2.

  " DELETING LINES WITH SALES ORDER LOWER THAN 50,000.

  DELETE LT_VBAK WHERE NETWR LT 50000.
  FREE LS_VBAK.
  LOOP AT LT_VBAK INTO LS_VBAK.
  AT FIRST.
    ULINE.
  WRITE'RECORDS AFTER DELETING SALES ORDER LOWER THAN 50000'.
  ULINE.
  WRITE'SALES DOCUMENT'20 'SALES ORGANIZATION'40 'NET VALUE'80 'CURRENCY'.
    SKIP.
  ENDAT.
  WRITE/ LS_VBAK-VBELN20 LS_VBAK-VKORG40 LS_VBAK-NETWR80 LS_VBAK-WAERK.
  ENDLOOP.

 DESCRIBE TABLE LT_VBAK.
  SKIP 2.
  WRITE'TOTAL RECORDS: 'SY-TFILL.

  " REMOVING ALL CONTENTS

  CLEAR LT_VBAK.
  REFRESH LT_VBAK.


QUESTION - 08


*QUESTION - 08
SELECT A~LIFNRA~NAME1B~BUKRSC~EKORG
  FROM LFA1 AS A
  INNER JOIN LFB1 AS B
  ON A~LIFNR A~LIFNR
  INNER JOIN LFM1 AS C
  ON A~LIFNR C~LIFNR
  INTO TABLE @DATA(LT_LF).
IF SY-SUBRC <> 0.
  MESSAGE 'RECORD NOT FOUND' TYPE 'E'.
ENDIF.
SORT LT_LF STABLE BY LIFNR.
LOOP AT LT_LF INTO DATA(LS_LF).
  AT FIRST.
    ULINE.
    WRITE'ALL RECORDS SORTED BY LIFNR' COLOR 3.
    ULINE.
    WRITE'ACCOUNT NUMBER'20 'COMPANY CODE'40 'PURCHASING ORGANIZATION'60 'NAME'.
  ENDAT.
  WRITE/ LS_LF-LIFNR,20 LS_LF-BUKRS,40 LS_LF-EKORG60 LS_LF-NAME1.
ENDLOOP.
CLEAR LS_LF.
LOOP AT LT_LF INTO LS_LF.
  IF LS_LF-LIFNR '0000001005'.
    LS_LF-NAME1 'TRAINEE'.
    MODIFY LT_LF FROM LS_LF TRANSPORTING NAME1.
    AT FIRST.
    ULINE.
    WRITE'ALL RECORDS AFTER MODIFYING NAME FOR LIFNR = 000001005' COLOR 3.
    ULINE.
    WRITE'ACCOUNT NUMBER'20 'COMPANY CODE'40 'PURCHASING ORGANIZATION'60 'NAME'.
  ENDAT.
  WRITE/ LS_LF-LIFNR,20 LS_LF-BUKRS,40 LS_LF-EKORG60 LS_LF-NAME1.
  ENDIF.
ENDLOOP.



QUESTION - 09


*QUESTION - 09
DATA LV_MAT TYPE MATNR.
SELECT-OPTIONS SO_MAT FOR LV_MAT.

START-OF-SELECTION.
SELECT A~WERKSA~LGORTA~MATNRB~MAKTXA~LABST
  FROM MARD AS A
  INNER JOIN MAKT AS B
  ON A~MATNR B~MATNR
  INTO TABLE @DATA(LT_MAT)
  WHERE A~MATNR IN @SO_MAT.

AT SELECTION-SCREEN.
  IF SY-SUBRC 0.
    MESSAGE 'RECORD FETCHED SUCCESSFULLY' TYPE 'S'.
  ELSE.
    MESSAGE 'RECORD NOT EXIST' TYPE 'E'.
  ENDIF.

END-OF-SELECTION.
LOOP AT LT_MAT INTO DATA(LS_MAT).
  AT NEW MATNR.
    ULINE.
    WRITE'START OF' COLOR 4LS_MAT-MATNR COLOR 4.
    WRITE'PLANT'20 'STORAGE LOCATION'40 'MATERIAL NUMBERS'60 'DESCRIPTION'80 'STOCK'.
    ULINE.
  ENDAT.
  WRITE/ LS_MAT-WERKS20 LS_MAT-LGORT40 LS_MAT-MATNR60 LS_MAT-MAKTX80 LS_MAT-LABST.
  AT END OF MATNR.
    SUM.
    ULINE.
    WRITE'GRAND TOTAL: ' COLOR 4LS_MAT-LABST COLOR 6.
    WRITE'END OF' COLOR 4LS_MAT-MATNR COLOR 4.
    ULINE.
    SKIP 2.
  ENDAT.
  ENDLOOP.

Comments